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

  1. Must have an extremely simple front-end to test your back-end functions.
  2. Can be HTML/CSS.
  3. No need to use any fancy frameworks for front-end placeholder. You will not be graded on front-end.
  4. Must host your back-end on Firebase.
  5. 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.

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

View Exam Rubric

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.