Generative AI tools may be used for this assignment.
The group as a whole will deliver:
- The strategy.town website extended with your new features, deployed to a suitable cloud service
- The code and tests for your website
- A flier advertising your new features
In addition, the group as a whole will produce a project report, and each group member will submit a personal reflection; these are described separately.
Submission Instructions
Code, Documentation, and Deployment
The README.md file must include a link to your cloud-deployed website at the very beginning. This website must remain up from the final project deadline until the grading deadline (2pm on June 26, 2025). Minor changes are allowed as long as any changes to the website are deployed from, and reflected in, the main
branch of your project repository.
Course staff must be able to preview the website locally in as a developer, and your README.md file must also include clear instructions for how to do this.
To submit on Canvas: Push code, tests, testing plans, and documentation to your team’s GitHub repository, create a release on GitHub, and apply the tag version final-submission
. After your release is created, you’ll find that there is now a .zip
file that can be downloaded from GitHub that contains a snapshot of your entire repository. Download this zip file, unpack it, and follow the instructions that you provided in your README.md file to double-check that the course staff will be able to run your project (this step is handy to make sure that you didn’t forget to include some key files in git). If needed, you can delete the release, make some changes, and re-release up until the deadline. Submit this zip file to Canvas under the assignment “Project: Code Submission”
Project Flier
Each team will submit a single-sided 8.5x11 color PDF that contains the following:
- Team name
- Team members
- Link to cloud-deployed website
- Short description of the project (OK to reuse text from the project plan/report)
- Link to public demo site, link to source repo (OK to make the repo public now, or OK to leave as private)
- Short description of the technology stack and overall design decisions
- Screenshots demonstrating the main functionality that you implemented
- Short “what’s next” section describing future work that could build on your project (optional)
Past semesters have had a “project poster” which you can see from the spring 2025 showcase. The “flier” concept is both to encourage pithy, effective, and visual communication and so that it’s possible for course staff to actually print out the artifact.
Submit on Gradescope.
Grading
The final deliverables count for 40% of your final project grade. This will be broken down as follows:
Minimum Viable Product (20%)
Additional Desirable Features (10%)
Features must be deployed to a publicly-accessible URL (or on NU’s private cloud) as outlined in the in-class activity, and should not raise any ESLint warnings or contain eslint-disable or ts-ignore flags. Changing the eslint settings for tests is allowed, changing the eslint settings for other code should be discussed with your TA.
Satisfactory completion meets these conditions:
- Implemented features satisfy the conditions of satisfaction as proposed by the team and as agreed by the course staff. If technical difficulties resulted in features being dropped, the project may still earn full marks on “delivered features,” but these difficulties must have been with the course staff as you encountered them during development and must be documented in the final report.
Minimally acceptable completion meets these conditions:
- Implemented features largely satisfy acceptance criteria as proposed by the team, but may not meet the course staff’s interpretation of those criteria.
- Implementation may have obvious flaws, but largely should work without crashing.
Testing (10%)
The project must include some evidence of testing. On the backend, this should take the form of some suitable Vitest tests, and on the frontend these can take a variety of forms:
- Vitest test for suitably testable features
- Automated tests using Cypress, Storybook, or similar tools
- QA plan describing steps for walking through features and screenshots and detailed descriptions of expected outcomes
Minimally acceptable testing covers at least some of the frontend and some of the backend features, and satisfactory testing covers all major implemented features on both the frontend and backend.