Unit 17 Nosql Homework: Workout Tracker
Defines a homework assignment to build a workout tracker using MongoDB, Mongoose, and Express with provided front-end code.
What this file does
Defines a homework assignment to build a workout tracker using MongoDB, Mongoose, and Express with provided front-end code.
When to use it
- You need a specification for a MongoDB-based workout tracker project
- You are creating a homework or tutorial for NoSQL and Express routing
- You want to deploy a MongoDB app to Heroku with Atlas
Assumes this stack
Unit 17 Nosql Homework: Workout Tracker
For this assignment, you'll create a workout tracker. You have already been provided with the front end code in the Develop folder. This assignment will require you to create Mongo database with a Mongoose schema and handle routes with Express.
User Story
- As a user, I want to be able to view create and track daily workouts. I want to be able to log multiple exercises in a workout on a given day. I should also be able to track the name, type, weight, sets, reps, and duration of exercise. If the exercise is a cardio exercise, I should be able to track my distance traveled.
Business Context
A consumer will reach their fitness goals more quickly when they track their workout progress.
Acceptance Criteria
When the user loads the page, they should be given the option to create a new workout or continue with their last workout.
The user should be able to:
-
Add exercises to a previous workout plan.
-
Add new exercises to a new workout plan.
-
View the combined weight of multiple exercises on the
statspage.
To deploy an application with a MongoDB database to Heroku, you'll need to set up a MongoDB Atlas account and connect a database from there to your application. Be sure to use the following guides for support:
Commit Early and Often
One of the most important skills to master as a web developer is version control. Building the habit of committing via Git is important for the following two reasons:
-
Your commit history is a signal to employers that you are actively working on projects and learning new skills.
-
Your commit history allows you to revert your codebase in the event that you need to return to a previous state.
Follow these guidelines for committing:
-
Make single-purpose commits for related changes to ensure a clean, manageable history. If you are fixing two issues, make two commits.
-
Write descriptive, meaningful commit messages so that you and anyone else looking at your repository can easily understand its history.
-
Don't commit half-done work, for the sake of your collaborators (and your future self!).
-
Test your application before you commit to ensure functionality at every step in the development process.
We want you to have well over 200 commits by graduation, so commit early and often!
Submission on BCS
You are required to submit the following:
-
The URL to the deployed application
-
The URL to the GitHub repository
What's inside
User story, business context, acceptance criteria, deployment guides, and commit guidelines, 6 sections total.
Change this for your project
- Replace
Developfolder references with your own front-end code path - Replace
../04-Supplemental/MongoAtlas-Setup.mdwith your actual setup guide path - Replace
../04-Supplemental/MongoAtlas-Deploy.mdwith your actual deploy guide path
Where it goes
Keep in docs/ or alongside the feature. Agents read it to implement against a defined contract.
Worth borrowing
- Separating user story, acceptance criteria, and deployment steps into distinct sections
- Including specific commit guidelines to encourage version control habits
Related Documents
Community AI Agent Skills Discovery Sources
Catalogs 50+ platforms, repositories, directories, and communities for discovering and sharing AI agent skills across multiple coding tools.
GPU Selection Guide for Large Language Models (LLMs)
Guides GPU selection for LLM inference, fine-tuning, and training by mapping model sizes, precision levels, and budgets to VRAM requirements.
ReleaseKit - Technical Requirements Document
Specifies a Go library and CLI for release automation with conventional commit parsing, validation checks, and workflow orchestration.
Python Development Environment Setup with Ruff
Defines a complete Python development environment using Ruff for linting and formatting, with pytest, mypy, pre-commit hooks, and VSCode configuration.