In this lesson you will create a "bartering" system for use by Mines students. How will this work? It's up to your team to design. Some ideas to consider:
NOTE: Feel free to design a different type of system, as long as it is similar in complexity/functionality (e.g., you might have a card-swapping game of some sort). See rubric details under Option 2. If you want to do something else, create a rubric and send the rubric + description to me via email for approval.
This is an open-ended project, with only 3 weeks to complete it, so it's important for the project to be challenging but feasible. There are two options:
All teams must meet the Basic Requirements plus the requirements for either Option 1 or Option 2. Your first task is to read the descriptions below, discuss with your teammates, and pick an option. You may also want to read the weekly requirements, which are different for each option. Let me know if you have any questions.
Regardless of option, all programs should meet the basic requirements, which are worth 55 points.
Required program functionality, most items intentionally vague, so you can design as you want:
Deployment and testing requirements:
Next, the page should include a paragraph that describes why you think others should vote for your project. Did you put in extra effort to make it aesthetically pleasing? Was there a difficult feature you managed to get working? Is it a cool idea for an app? (i.e., something more than a simple bartering system)
Finally, specify whether your team chose option 1 or 2. For teams who chose option 1, list the technology you learned (and how it's used, if it's not obvious). For option 2, include the list of features from your rubric (see Option 2 below for info about rubric). Point values are not needed, but it will be important for testers to know what functionality is included. For example, if the rubric states that barters will be listed by date or by person who offered, that functionality must be tested.
For this option, your team will create a fairly minimal application that mostly just meets the basic requirements, but you will learn at least one new capability on your own. Since you will be using technology that I don't know, it will be important for the team to work together to learn it. Some ideas:
For this option, you will apply what you've learned about node, express and responsive design to a larger application. Since you don't need to learn new technology, your design must include some requirements that are different from prior assignments (i.e., something beyond simple CRUD). For example, an auction feature where multiple bids can be accepted for an item would have additional routes and database documents. Note that, even with no login, it's likely your program will need some way to track users.
Teams who choose option 1 will earn 30 points for learning the new technology. To ensure the requirements for option 2 are equitable, you need to create a "rubric" to justify 30 points. Example rubric:
10 points. Program will have the ability for multiple users to "bid" on an item. It will be possible to see an item with all the bids. Items will remain active until the poster "accepts" a bid. At that point, all other bids will be removed. Item will no longer show on the "Offered" page. 10 points. Users will have the ability to post questions about an item offered for barter. Questions will be anonymous (since no logon). Original poster may answer. 5 points. There is no login for this system. To ensure only the original poster can accept a bid or answer questions, the id of the poster will not be displayed in the listing, but will be requested when "Accept" or "Answer question" buttons are pressed. 5 points.Program will have a page to display lists of prior barters with 2 sort options: by date and by person who offered the barter.
Your rubric will be submitted and approved (or modifications requested) during week 1.