final project checkpoint 3:

Change of plans: Due to the switch to online instruction / extra week of spring break, this assignment is due on Monday, March 30th, at 23:59 pm Chicago time.

This checkpoint is due March 16, 2020, 23:59 CDT.

As discussed in class, this checkpoint will focus on two things: making your app readily deployable by other groups, and “double jeopardy” on the first round of CRUD functionality tests. If you’ve got your CRUD functionality working, you’re highly encouraged to continue building out your feature set once you’ve got deployability streamlined.

Because this superceded the SPOOKY SECURITY ASSIGNMENT, the new timeline is:

  1. Monday March 16th: Deployment checkpoint
  2. Monday April 6th: Checkpoint 4 deliverables due. If you ran into any snags (feature X was way harder than you expected at the beginning), you can make your case for changing final deliverables.
  3. Monday April 20th: Final deliverable due.
  4. Week 15: SPOOKY SECURITY ASSIGNMENT. Note that the entire project is a security assignment if you go for the extra credit by posting and fixing security issues with each others’ projects.

Deliverable 1: deployability

This will be graded manually. You can assume that the person who is attempting to deploy your app has:

  • Cloud platform accounts:
    • AWS
    • GCP
    • Azure
  • Access to a linux virtual machine with sudo access, node 12, Docker, and Docker compose installed.
  • Ability to receive connections on a globally routable IP address.

For full credit, you can expect the deployer to:

  • Generate API keys within a cloud platform account, or some other specialized API
  • Store those keys in a .env file in the root of your repository, or otherwise add them to a service that explicitly exists to store deployment secrets (e.g. GitHub or Travis CI)

Note that you cannot ask the deployer to install specific software, so use of a Docker container to control your environment (software, libraries, etc) is highly encouraged.

Because we’re only dealing with absolute basics, for this assignment running everything through localhost is ok. My pro-tip is that you should probably start planning for a remote https-based deployment sooner rather than later, and now when focusing on deployment would be a great time to do that.

This deliverable will be 65% of the checkpoint grade. Partial credit will only be given for VERY simple custom configurations/bugfixing during deployment. If you would like us to try your deploy before the deadline, we can give you a “it worked” / “it didn’t work I got error (pasted error)” response within 24 hours.

Please ask questions about this assignment on Piazza ASAP if you are unclear on how to get your app to “deployable” state.

Deliverable 2: pass your tests

This is simply to get your CRUD tests from homework 3 to pass. If you already did them, pat yourself on the back and keep on truckin’. These will be worth 15% of your checkpoint grade.

Deliverable 3: come up with yet more tests

Write out specific deliverables for checkpoint 4. These will be worth 20% of your checkpoint grade. They should both be described in your README.md file, as well as via English descriptions of tests that your app will be passing. In your readme, please list which tests in which files within your repository are the checkpoint 4 tests.

Submitting your code

Your final commit to master before the deadline will be graded. 10 bonus points will be given if you create a “checkpoint 3” tag pointed at that commit to make our lives easier.