Skip to main content

Project 4: Back-end Database and Server

Due Dates
  • Checkpoint: Tuesday, April 15, 11:59am EST
  • Deadline: Tuesday, April 22, 11:59am EST

Overview

Learning Goals

By the end of this lab you will learn how to plan a large-scale project and develop the back-end database and server code base for your project.

Requirements

By the checkpoint, you should have:

  • An updated "Timeline" Google Doc in your team's Google Drive folder that reflects your current progress and plans. Below are the remaining due dates for the project:
    • two weeks for the back-end server and database (due 4/22)
    • one week to deploy your project (due 4/29)
    • one week to finalize your code base and prepare for the final presentation (due 5/6)
  • A visual representation of your database schema that includes:
    • The tables and their relationships (e.g., one-to-many, many-to-many) in your database. You can use a tool like dbdiagram.io to create the visual representation of your database schema.
    • Relevant fields for each table, including data types and constraints (e.g., primary key, not null, etc.).
    • Foreign key relationships between tables. Refer to slides from Week 6 and this overview of foreign keys in SQL.
  • A codebase that contains:
    • Relevant models (in models.py) that represent tables in your database, along with constraints (primary key, not null, etc.) and foreign key relationships to other tables.
    • A controller (app.py) that specifies the URL routes for your application. Your codebase should be able to handle relevant GET/POST/PUT/DELETE requests to the server, and make necessary calls to the database.

Note: If you are developing an application using something other than Flask/HTML/JS/CSS or using a database other than SQLite, please let me know. You can overwrite the repository with your own structure but your intstructions need to be explicit on how to install all of the requirements to your application.

By the deadline, you should have:

  • A fully functional back-end server and database that meets the requirements of your project.

Submission

  • By the end of the lab session, discuss your timeline with me.
  • By the checkpoint, push your code to GitHub.
  • By the due date, push your code to GitHub.

Rubric

CategoryNeeds Improvement (1)Good (2)Excellent (3)
MVP Requirements MetSeveral requirements are missing or non-functional.Most requirements are met, but some minor aspects are missing or incomplete.All requirements are fully implemented and functional.
FunctionalityWebsite functionality is limited to certain features or actions, and/or most features do not work as expected.Website is mostly functional but some features or actions do not work as expected.Website is fully functional and has a consistent layout and styling.
Database SetupDatabase tables have fields with incorrect data types and necessary foreign key relationships are missing.Database tables may have some fields with appropriate data types but not all, and foreign key relationships are missing or underspecified.Database tables have multiple fields with appropriate data types and foreign key relationships.
Code QualityCode lacks informative comments, is unorganized, or is difficult to read.Code is functional but may have inconsistent formatting or have overly verbose comments.Code is well-structured, readable, and well-commented, including concise function descriptions, appropriate function, and variable names.