Apply Now View Instructions View Rubric
Exam
Please build the back-end for a question-and-answer app (Destkop UI mockup below)
- Must use Firebase for back-end.
Desktop UI
Requirements
- Must have an extremely simple front-end to test your back-end functions.
- Can be HTML/CSS.
- No need to use any fancy frameworks for front-end placeholder. You will not be graded on front-end.
- Must host your back-end on Firebase.
- This is a not a front-end exam. Client side should only be to test your back-end functions.
Reminders
- Develop a few features well is better than many features poorly.
- Please upload your code to GitHub/GitLab.
- At 2.5-hour:
- Please submit what you’ve completed, regardless of whether you’ve finished or not.
- Launch to host your live site.
- Submit demo site URL.
- Make sure to complete this Exam Submission Form.
Features Rubric
Score | Feature |
---|---|
90 | Sending Email (mandatory) |
45 | Question DB |
70 | Query DB |
35 | Google OAuth and User DB |
60 | Track User Answer and Accuracy |
Features List
Choose any of the following features to implement. There is no required ordering.
1. Sending Email (mandatory)
- This question is required for all full-stack and back-end test takers.
- Please develop a simple send email message function, so that users can fill out a form on the webpage and send the text message in the text fields to
- Use Node Mailer or SMTP JS
- Develop a simple form that allows users to fill out some messages.
- 2 user-input text fields: subject and body (refer to the topic and content fields of a similiar front-end sample image).
- A simple send message button.
- The front-end UI is simple. The design does not count, because it is a full-stack/back-end exam; it only has to be functional.
- Our test-passing criterion is whether the message written by user will be successfully emailed to .
2. Question DB
- Populate Firebase DB with Google Sheet
- Store and display
question_text
for each question. - Store and display
question_title
for each question. - Store and display all
hashtags
for each question. - Store and use
/problem/<question_id>
in routing URL.
3. Query DB
- Use Firebase Queries to query Question DB using hashtags.
- Build very simple front-end selection boxes to build filter/search URL.
- Map search URL to Firebase Query.
- Return problems that match any hashtags in our search URL.
- Display total number of questions that satisfy filter conditions, out of total possible available questions in DB.
4. Google OAuth and User DB
- Implement Google OAuth and user database in Firebase.
- Store and display user name and email in a separate simple webpage.
- Use
/user/<user_id>
in routing URL.
5. Track User Answer and Accuracy
- Create simple input box for user to input answer to each question.
- Use the
answer
column to determine if question answered correctly. - Update the following metrics for each user and display in client side.
- Accuracy. Number of problems correct divided by number of problems completed.
- Completed. Total number of problems completed.
- Correct. Total number of problems correct.