This project explores an existing legacy, sometimes referred to as brownfield, codebase. We will be using the open source crate project. Crate is a platform, similar to Stitch Fix, that allows users to setup monthly subscriptions to receive trendy clothes and accessories. We will be exploring the codebase in order to add test coverage, fix bugs, and extend the current functionality.
The goals of our exploration will be to:
- Learn and apply strategies for understanding how to analyze a larger, existing code base
- Apply strategies for reading and evaluating documentation
- Explore and implement new concepts, patterns, or libraries that have not been explicitly taught while at Turing
- Practice a professional git workflow
- Each team will be assigned a track to explore that has associated full-stack bugs and features to fix and implement.
- All project work will be tracked using GitHub Projects
- All code committed will follow a git rebase workflow
Instructors will serve as the project managers for each team. Students are responsible for facilitating the check-in with instructors. Please be prepared to share each of the deliverables for that check-in and make sure that your project board is up to date.
The teams are expected to present the following to their project manager at each check-in:
- Progress on the deliverables due at that check-in. Highlighting work that is complete and address any issues for incomplete work
- Difficulties, roadblocks, and bugs
- Stories on board for what the next phase will be and what the team is committing to by the next check-in
- Review of git commits and PRs
Check-In 1 Deliverables
- Project Setup. Instructions are here
- Team DTR
- Familiarize yourself with the platform and code specific to your assigned track
- Create project board with chores for environment setup, code annotations, and test additions
Check-In 2 Deliverables
- Code annotations for the code specific to your track. Please follow these directions for submission
- Map out data flow through the app as it applies to the specific features you are working on
- Create wireframes for user-facing portions of features associated with your track
- Create detailed user stories and chores defining implementation details for the functionality you will add
Check-In 3 Deliverables
- Add tests for new code, focusing on areas of the code that relate directly to the features in your track
- User story implementation in progress
- Optional extension - implement CI/CD (continuous integration and deployment) and deploy to Heroku. Deployment guide is here.
Every team is expected to adhere to a code freeze at least 24 hours prior to their scheduled evaluation time - noted on the calendar. Once the code freeze is in effect, any new code pertaining to feature development, refactoring, or other chores can no longer be merged into main. Teams should instead focus their attention on manually testing their completed features, fixing any lingering bugs related to those features and preparing for their presentation.
For your evaluation, your team is expected to come prepared with a 15-minute demo walking through:
- the features developed
- the git workflow utilized
- the process used to analyze the code base
You can find more details about the evaluation here
Teams should use the rubric as a guideline for what needs to be covered.
Teams - it’s your responsibility to ensure you are on track to meet the expectations of the rubric, which can be found here.