Final Project

  • Total Weight: 6 points

For the final project, each student must design and implement a complete database system from scratch and deploy it using Flask and PostgreSQL, leveraging Vercel for deployment (or running locally) and Neon for serverless PostgreSQL database management.

Steps and Grading

  1. Topic Selection & Requirements Analysis (1 point)
    • Choose a real-world topic (e.g., library system, student management, e-commerce).
    • Analyze functional and non-functional requirements and document them clearly.
  2. ER Diagram Design (1 point)
    • Create a comprehensive Entity-Relationship diagram based on the requirements.
  3. ER-to-Table Conversion (1 point)
    • Map the ER diagram to relational tables with proper keys, attributes, and constraints.
  4. SQL Implementation (1 point)
    • Write SQL scripts to create tables and populate them with sample data in PostgreSQL.
  5. Web Application Development with Flask (1 point)
    • Build a web application using Flask to interact with the database.
    • Implement at least the following functionalities:
      • Insert: Add new records to the database via a web form.
      • Delete: Remove records.
      • Update: Modify existing records.
      • Query: Search and display records with filters.
    • Use psycopg2 for direct database connectivity (no ORM allowed).
    • Write raw SQL queries for all database operations.
    • Design simple HTML templates with Jinja2 for the front-end.
  6. Building a RESTful API with FastAPI and SQLModel (1 point)
    • Implement a RESTful API using FastAPI

Note: The project must be deployed on Vercel (or run locally) and include full documentation of each step.