CSCI 446 Unit #12

Preparation:

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.

Basic Requirements

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:

Option 1 - New Technology

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:

Option 2 - Full responsive design

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.