For the next two weeks, you and your team will ideate and implement a working software system. You will have the opportunity to apply the skills that you have learned to solve an interesting problem or contribute a meaningful tool that improves our lives.
- 12/4 @anthonydmays Updated technical requirement for number of PRs submitted per teammate.
- 12/2 @anthonydmays Published initial version
Your project submission must include the following elements:
- All work must be submitted in your team's assigned GitHub repository. Your team must track issues, bugs, pull requests, and features. See Lesson 05 for a refresh.
- Each team member must contribute at least two submitted pull requests containing working code and tests. See Lesson 15 for a refresh.
- Write unit tests achieving 70% code coverage (using JaCoCo for Java or Jest for Typescript).
- Must have a working front-end that interacts with a back-end web service to retrieve and persist data.
- Your app must be publicly accessible. It is recommended that you use Vercel or Fly.io to deploy your apps.
- The system must incorporate one third-party API.
- Your repo must include a README with the following elements:
- The team
- Screenshot
- A description of the app
- Demo link
- Installation instructions
- Known issues
- Roadmap features
- Credits
- It is HIGHLY recommended that you maintain a clean
Main
branch and only merge changes via pull requests (we've been using squashed merges for the main repo to simplify commit history). Don't forget to use Conventional Commits.
To ensure the timely completion of your project, you will need to complete the following milestone tasks.
Milestone | Date |
---|---|
Submit user stories to your repo as GitHub issues | Tue, Dec 3 |
Update your meeting notes document | Daily |
Obtain project sign-off from instructor/TAs Schedule a review meeting here |
Wed, Dec 4 |
Begin implementing your designs | Wed, Dec 4 |
Practice presentation sessions | Wed-Thurs, Dec 11-12 |
Presentations due | Thurs, Dec 12, EOD |
Final presentations | Fri, Dec 13 |
Here are some links to tools and templates that can help you work together effectively.
- TODO App (fullstack NextJS app in TypeScript)
- TODO App (fullstack React + Java Spring app in TypeScript/Java)
- v0 (chatbot for generating UI and web applications)
- A Short Guide to Effective Daily Standups (Nave)
- Team Meeting Notes template (Google Docs)
- Crafting Effective User Stories: A Guide to Good and Bad Versions (Visual Paradigm)
- Third-party APIs (MDN)
- GitHub Flow (GitHub.com)
- The Software Engineer's Guidebook, Chapter 10, "Tools of the Productive Software Engineer."
For your presentation, you will be given up to 20 minutes to feature your project. Each person on the team should have a speaking role. Here's what your presentation will contain:
- Up to four slides of content, then a live demo walkthrough.
- Your presentation should cover the following items, in order:
- Introduce team members and their roles
- State the problem your attempting to solve
- State how your app is designed to solve the problem
- Show your demo
- Discuss how you'd like to enhance in the future
- Lastly, talk through technical challenges and features.
- You will be given 5 minutes for Q&A and take questions from the audience.
Please refer to the Academic Integrity section of the syllabus regarding the use of third-party code and resources that you have used for your project. Give credit to where credit is due!