Rebuilt from scratch for CIS 486 - Spring 2026 to meet the full-stack MVC SPA requirements. The project ships a web-based routine planner that stores data in MongoDB, exposes a RESTful Express API, and renders a Bootstrap + jQuery single-page experience.
styles/main.css, single-page interactions powered by AJAX.src/controllers orchestrate CRUD operations.src/models with validation rules.MONGODB_URI)./health and structured error handling. npm install
.env.example to .env and fill in:
PORT=3000
MONGODB_URI=mongodb://127.0.0.1:27017/allaroundathlete_dev
docker run --name mongo -p 27017:27017 -d mongo:7
npm run dev
npm start
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/routines |
List routines |
| POST | /api/routines |
Create routine |
| PUT | /api/routines/:id |
Update routine |
| DELETE | /api/routines/:id |
Delete routine |
Payload example:
{
"title": "Upper Push Flow",
"focusArea": "Chest",
"equipment": "Dumbbells",
"intensity": "Steady",
"sessionsPerWeek": 3,
"notes": "Slow tempo and breathe."
}
npm test runs Node’s native test runner over files in tests/ (see tests/health.test.js)..github/workflows/ci.yml installs dependencies, runs lint placeholder + tests on pushes/PRs targeting main.| Target | Location | Notes |
|---|---|---|
| Dev | render.yaml |
Deploy via Render web service (Node). |
| Prod | Dockerfile, infra/gcp-deployment.md |
Container for Cloud Run / GCE with static IP + domain mapping instructions. |
npm install and start command npm run start (already captured in render.yaml).MONGODB_URI as an environment variable.gcloud run deploy ... using the reserved static IP detailed in infra/gcp-deployment.md.spa.yourdomain.com through Cloud DNS to the static IP.src/
app.js Express config + SPA fallback
server.js Entry point with Mongo connection
config/db.js Mongoose connection helper
controllers/ MVC controller layer
models/ Mongoose schemas
routes/ REST routers
middleware/ Error + notFound handlers
public/
index.html Bootstrap + jQuery SPA
scripts/app.js Front-end logic with CRUD calls
styles/main.css Custom theme layered on Bootstrap
render.yaml Render PaaS definition
Dockerfile Production container (GCP)
infra/gcp-deployment.md Static IP + DNS guide
package.json).Questions, issues, or grading clarifications? Open an issue or leave PR feedback on GitHub.