mealBlock
Overview:
The goal of this project is to design a website where Freshman can offer excess meal blocks to Upperclassmen. Ideally, we want this website to be as painless as possible for the Freshman, as I assume that the number of Upperclassmen willing to receive a free block is greater then the number of freshmen willing to give one away.
Roles:
Front-end Developer, web-app developer
Teammates: 1 developer, 1 UX designer
Platform: Django, oauth, ngrok
Language: html, css, phyton, javascript, ajax
Time: 5 Week
This is the basic logic and interaction mapping of our primary webpages:
Home page
● Basic homepage, with a description of what the MealShare service does, and how to use it.
● Should have a link to both the login page, and a register page in the top right.
Login page
● It should be the basic CMU login page, done through OAuth.
● After logging in, the student will be redirected to the selection page.
● There should also be a hyperlink back to the Home page, so the student can return to that page if need be.
Register page
● Ask the student to provide some basic information, first/lastname, profile picture, and an CMU Email address to associate with the account.
● They will then have to verify that they own the specified Email address by logging in, after which, they will be redirected to the selection page.
● There should also be a hyperlink back to the Home page, so the student can return to that page if need be.
All of the following pages will have the following, and require a session token:
● There should also be a logout button, a profile button, and a home button in the top right.
● The logout button will log out the user, and return them to the Home page.
● The profile button will direct them to the profile page, where they can update their first/last name, and profile picture.
● The home button, contrary to its name, will return the client to the selection page
Selection page
● Students will be asked to choose if they are giving meal blocks, or receiving meal blocks. There should be a simple hyperlink to both the giver main page and the receiver main page, with a short description of each option underneath.
Profile page
● Very similar to Social Network, can fill in a new first/last name, and a new profile picture, and update those values.
Giver main page
● The giver will be presented with a list of dining locations. They can check any number of dining locations at which they would be willing to give away a meal block.
● Beneath this table, there would be a “search” button, which will redirect them to the results page, with the relevant information
Giver results page
● There should be a results table, which contains the list of all the students which are looking to receive a meal in the location(s) specified by the client.
● Each of these results should be selectable. Selecting a student will direct the client to the Giver waiting page
● Below the results table, there should be a “Search again” button, that returns the client to the Giver main page
Giver waiting page
● Will initially display a simple message to the effect of “Waiting for *Person name* to confirm…” ● If the receiver confirms in a timely manner: ○ The Client will see a message to the effect of “*Person name* has confirmed. Their exact location is ____. Thank you for your help!”
● If the receiver fails to confirm their location in a timely manner: ○ The Client name will see a message to the effect of “*Person name* has failed to confirm their location, and has been removed from the queue. We apologize for the inconvenience.” ○ Underneath the message will be a button labeled “Return” which will return them to the results page, appropriately updated.
Receiver main page
● The receiver will be asked to specify the dining location at which they would like to receive a meal block, through some kind of form.
● Additionally, they’ll be asked to provide an additional comment, wherein they will be asked to specify their exact location within the dining location that they will be waiting.
● Beneath this there will be a button labeled “submit” which will add them to the list of selectable students.
Receiver waiting page
● There will be a simple message, to the effect of “You are currently in the queue. An alert will pop up asking you to confirm your location when someone has a meal block to give”
● A button labeled “Back” that will return the client to the Receiver main page.
● In the background there will be a keepalive probe, so that if the receiver closes the browser, the server will remove them from the selectable list in a timely manner.
● When a giver selects the receiver, an alert will pop, asking the client to confirm. ○ If they fail to confirm within a reasonable amount of time, they will be kicked to the Receiver main page. ○ If they do confirm, the message will change to “ *Personname* is on the way! Please remain in the location that you previously specified.”