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.
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][lesson-05] for a refresh.
- Each team member must contribute at least one submitted pull request containing working code and tests. See [Lesson 15][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.
- The system must incorporate one third-party API.
- All code must be kept in a public GitHub repository.
- 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][conventional-commits-link].
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.
- 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][academic-integrity-link] 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! [conventional-commits-link]: https://www.conventionalcommits.org/en/v1.0.0/ [academic-integrity-link]: /syllabus/README.md#academic-integrity [lesson-05]: /lesson_05/README.md [lesson-15]: /lesson_15/README.md