Term Project
This course has a project that you will work on through the term. You will choose 1 team mate. Teams will only be adjusted if need-be (as determined by the instructor). Refer to the Vision Document for more information.
Individual Team Member Evaluation
Everyone on your team will receive a team grade based on the overall performance of the team. Individual adjustments to the team grade will be made based on the level of participation of each team member. Your instructor will assess individual team member participation using the following evidence:
- Trello sprint planning board logs
- Team Discord presence with meaningful contributions
- GitHub contributions
- Commits performed
- Issues opened/closed
- Pull requests issued/reviewed
Inception Phase / Sprint 0
“As the first of the four phases in the project lifecycle, Inception is about understanding the project scope and objectives and getting enough information to confirm that the project should proceed - or to convince you that it should not.”
All of the information you need about the project for Sprint 0 is in the Vision document.
Project Activities
- Project submissions
- Other grading dimensions
- Individual team member visibility in Discord workspace
- Team activity on Gitlab and Trello
- Each team member has completed DB1 and DB2
Submission Instructions
- Create a consolidated Domain model that incorporates the best elements from each student’s domain model. Submit your team’s domain model as a PDF file in a directory called ‘domain model’ at the root of your repo.
- Create your Product Backlog by populating your Trello planning board with a consolidated set of User and Spike Stories, and Epics following the instructions here. Your instructor will look at your planning activity directly in your Trello board.
- Your instructor will look at your team communications participation directly in your Discord workspace channels.
Elaboration Phase / Sprint 1
“This is the second of four phases in the project lifecycle, when architecturally significant risks are addressed.”
Project Activities
- Project submissions
- Sprint 1 release
- Add more stories based on the vision document Vision document. You should create at least 1 more story per MVP feature (e.g., user management, task management, etc)
- Format the stories correctly, adding accpetance criteria, acceptance tests, and solution tasks
- Application implementation
- Basic Functionality - some basic REST routes and a basic DB schema (for example, create a basic schema for tasks and a route to create/read the tasks in the db)
- Adherence to Model View View-Model (MVVM) Architecture (just follow course instructions)
- Other dimensions
- Planning and managing of activities in Trello board throughout and in support of Sprint 1
- Gitlab use for version control
- Slack/Discord workspace use for team communication
- Individual team member visibility in Trello board, Slack workspace, and Gitlab activities
- Each team member completes their individual assignments and shows competency in the programming required by the project
Team Exercises
Submission Instructions
- Create a Sprint 1 release using the instructions for creating a Gitlab code release provided here.
- Create the Sprint 2 Done list in Trello. Put it to the left of the Sprint 1 Done list.
- Your instructor will observe your demo to gauge the functionality of the product, and may also do independent testing of it for the Functionality dimension. The instructor will do this privately, you will not be making presentations. Make sure you have a working prototype (i.e., make sure it works on Gitlab’s pipeline)
- Your instructor will review your code to determine how well you are adhering to the architecture and design principles that were covered in class.
- Your instructor will look at your planning activity directly in your Trello planning board. Your planning activity should show consistent updating of the story cards as stories progress through the sprint activities.
- Your instructor will look at your version control use, and team communications directly in your Gitlab repository, and Slack workspace, respectively.
- Your instructor will determine individual contributions to the project directly from the evidence provided in your team’s Trello board, Gitlab repository, and Slack workspace.
Construction Phase / Sprint 2
“As the third of the four phases in the project lifecycle, Construction focuses on design, implementation, and testing of functions to develop a complete system.”
Project Activities (7.5% in final grade)
- Project submissions
- Sprint 2 release
- Design documentation - Updated Domain Model, a Readme.md that describes how to install and run your project, any other design artifacts you have created (like ER Diagram)
- Application implementation
- Basic Functionality – Code needs to work on Gitlab, code should be tested, you should be using Continuous Integration
- You are keeping track of code coverage. Submit this by zipping the output (make sure it shows everything) from the Coverage tool and adding it to the documentation directory in your project repository.
- Your server implementation (rest routes) should be mostly complete by this point, and your focus should be leaning toward the web interface
- Other dimensions
- Planning activities in Trello board
- GitHub use for version control
- Slack/Discord workspace use for team communication
- Individual team member visibility in Trello board, Slack/Discord workspace, and GitHub activities
Submission Instructions
- Create a Sprint 2 release using the instructions for creating a GitHub code release provided here.
- Create the Sprint 3 Done list in Trello. Put it to the left of the Sprint 2 Done list.
- Your instructor will observe your demo (ON GITLAB AND/OR LOCAL MACHINE) to gauge the functionality of the product, and may also do independent testing of it for the Functionality dimension.
- Make sure your README is at the root of the repo and your updated domain model is in the domain model directory
- Your team should submit code coverate statistics (if it shows in the CI, that’s fine. Otherwise, you can add it as part of your commit).
- Your instructor will evaluate your Planning Activities and Version Control Activities directly in your Trello planning board and GitLab repository, respectively.
- Your instructor will determine individual contributions to the project directly from the evidence provided in your team’s Trello board, GitHub repository, and Slack workspace.
Construction Phase / Sprint 3
“As the third of the four phases in the project lifecycle, Construction focuses on design, implementation, and testing of functions to develop a complete system.”
Project Activities
- Project submissions
- Sprint 3 release
- Application implementation
- Basic Functionality – Code needs to work on Gitlab, code should be tested, you should be using Continuous Integration
- A finalized prototype – The implemention of core functionality should be mostly done by the end of Sprint 3, minus a few bugs or small features. You can still be working on it for Sprint 4, but you want to be sure you can get it deployed by the end of Sprint 4!
- Unit tests and code coverage
- Adherence to prescribed architecture and design principles
- Code reviews (in your Gitlab instance)
- Code communication (through Slack/Discord)
- Code Metric(s), of your choosing, through a static or dynamic analysis tool (of your choosing). This can be anything except the code coverage tool.
- Code Documentation – Your code should have some basic documentation (can be improved for Sprint 4). In particular, your functions should have some comments, you should have a README at the root of your project that describes how to install/use your project
- Other dimensions
- Planning activities in Trello board
- GitHub use for version control
- Slack/Discord workspace use for team communication
- Individual team member visibility in Trello board, Slack workspace, and GitHub activities
Transition Phase / Sprint 4
“Fourth and final phase in the project lifecycle, Transition focuses on deploying software to users and ensuring that their expectations about the software were met.”
Project Activities (5% in final grade)
- Project submissions
- Final Gitlab release labeled ‘Sprint 4 release’
- All requirements for prior sprints (0, 1, 2, 3) should be complete
- All required core functionality has been implmented
- 10% additional functionality has been fully implemented
- Code is documented – non-trivial Functions are commented, there is a README discussing how to install and run your project in the root of your gitlab repository
- Other dimensions