Overview

Project Module Specifications:

Timeline:

  • Wednesday March 17: Submit 5 questions about your project module specification as an issue on GitHub
  • Wednesday March 24: Mentor Meeting Status Check
  • Wednesday March 31: Mentor Meeting Status Check
  • Monday April 5: Phase 1 Preliminary Demo
    • By this date you should have major portions of your project complete and should be able to demonstrate how to interact with the working system.
    • As part of the demo you will also have a chance to ask your mentor more clarifying questions about your component requirements.
  • Monday April 12: Phase 1 DUE
    • You phase 1 must be fully complete by this day!
  • Friday April 16: Phase 2 Teams assigned
  • Final Deadline: You will need to sign up for a demo with us between Monday May 3rd and Tuesday May 11th.

Phase 2 Project Types

You will be working on one of these two types of projects:

Type 1 Builder:

  • Implement REGS or APPS component (whichever you were assigned)
    • APPS: No PhD apps or Sys Admin role required
    • REGS: No user creation, no PhD students, no Sys Admin required
    • If the spec for your component talks about extra features to add in phase 2 (such as more reports for REGS), you do not need to complete them.

Type 2 Integration:

  • Combine the components implemented by your teammates in phase 1 (do not build any new components from scratch)
  • Check the spec for your component and include any extra features specified there (such as more reports for REGS)
  • 2 person integration teams are not required to support PhD students, but otherwise should support the full specs of the components they are combining

Both Types:

  • We expect you to create a better looking and more usable website compared to phase 1
  • A portion of your grade will be based on any “extra features” you complete that go beyond the spec
  • The most impressive projects will be added to this website’s Hall of Fame.

Project Report

You must submit a short written report about your project containing the following sections:

  • Project Pitch: ~2 paragraphs describing your overall project to someone who knows nothing about it. Include a representative screenshot (or animated gif) of your site.
  • Special Features: ~2 sentences describing each extra feature you added beyond the spec
  • DB Schema: Show schema for 2-3 tables and justify your design. You should focus on the most important/interesting aspects (2-3 paragraphs)
  • Work Breakdown: List teammates and specify the aspects of the project they worked on

Your report should be submitted as a file named report.md in your repository.

Your report is due by 3pm Tuesday May 11th (earlier if possible!). If you submit your report after you do your demo, you must create an issue and tag @twood02 to notify us for grading.

Phase 2 Grading

Each team will need to schedule a grading appointment between May 4 - May 11th. Not all teams will be able to delay until the 11th!

During your appointment we will walk through a script to test your application similar to phase 1. We will also be asking you deeper questions about your project’s design and implementation. After we test your basic functionality you will have a chance to show off any extra features you added.

You will also need to submit a short report about your project’s design. Details will be added here soon.

Approximate Grading Rubric: This is not the final grading rubric, but it gives you an idea what to expect:

  • 30% - Evidence that you are making progress each week and contributing your share of the project (see below)
  • 10% - Project report
  • 40% - Complete functionality
  • 10% - Overall usability / look and feel
  • 10% - Extra features of your choice (judged based on difficulty and innovativeness)

Note that not all teammates are guaranteed to get the same grade. Your grade will be adjusted based on your contribution to the project as measured by git commits, mentor status checks, team member surveys, and your ability to answer questions about your project.


AWS / Python / SQL Tips


Help Using AWS / VS Code

Feeling Behind in Python / Flask / SQL?

Watch these videos to catch up. You will need to log into LinkedIn using your GW account to get access. The videos are quite well done and a pretty efficient way to learn these technolgoies.

Flask / SQL Examples

Here are some python examples to help with features in Python, Flask, and SQL.

TODO: (Submit a link in #engage to your solution. Solutions should not be directly related to the HW/project)

  • Multi-file Flask app - show how to break a flask web app with routes stored in different files. The app should show how to share some app configuration data so it can be accessed from routes in both files
  • SQLite create table example - submit a sqlite Repl with a script to 1) create two tables which include foreign keys, 2) insert some data, 3) select some data using a join
  • If you have an idea for a useful example that would help current and future students (without giving away solutions), then message me to suggest it.