Skip to content
benharvey1985Public

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Cadence

Self-hosted running training platform. Runners can create training plans, log workouts, track progress, and connect with running clubs -- all self-hosted, all private, and free.

Cadence is an open-source alternative to commercial running apps. Deploy it on your own server, keep your data under your control, and run without subscriptions, ads, or tracking.

Badges

License: MIT Node

Features

  • Training plans with periodized schedules for 5K, 10K, Half Marathon, Marathon, and custom distances
  • Workout logging with planned vs. actual comparison, perceived effort, and notes
  • Weekly calendar view with inline done/skip controls
  • Dashboard with mileage charts, pace trends, streak tracking, and personal records
  • Mobile apps for iOS and Android built with React Native (Expo)
  • Offline-first mobile experience with local database and background sync
  • Social features: clubs, friends, activity feed, comments, and direct messaging
  • Admin panel for user management, server health monitoring, database backups, and logs
  • Web dashboard with auth-protected routes, login page, and admin pages
  • Docker Compose deployment for simple self-hosting

Quick Start

# Clone the repository
git clone https://github.com/benharvey1985/Cadence.git
cd Cadence

# Copy environment template and edit configuration
cp .env.example .env

# Start all services with Docker Compose
docker compose up -d

# Run database migrations
docker compose exec backend npx drizzle-kit migrate

# Access the application at http://localhost:3000

Tech Stack

Layer Technology
Backend Express 5, TypeScript, Drizzle ORM
Database PostgreSQL 17
Web App React 19, Vite 8, react-router-dom 7, Recharts
Mobile App React Native (Expo SDK 55+), Victory Native, WatermelonDB
Deployment Docker Compose

Project Structure

Cadence/
├── packages/
│   ├── backend/        # Express API server (TypeScript)
│   │   ├── src/
│   │   │   ├── db/     # Drizzle schema, migrations, seed
│   │   │   ├── routes/ # REST API route handlers
│   │   │   └── server.ts
│   │   └── ...
│   ├── web/            # React web dashboard (Vite)
│   │   ├── src/
│   │   │   ├── components/  # Shared UI components
│   │   │   ├── contexts/    # AuthContext (login/session)
│   │   │   ├── pages/       # Route pages + admin pages
│   │   │   └── App.tsx      # Root with auth-protected routes
│   │   └── ...
│   └── mobile/         # React Native app (Expo)
│       ├── app/        # Expo Router screens
│       ├── components/
│       └── ...
├── docker-compose.yml  # Production stack (PostgreSQL + backend + web)
├── Dockerfile          # Backend container build
├── Dockerfile.web      # Web dev container build (Vite dev server)
├── .env.example        # Environment variable template
└── package.json        # Workspace root

License

MIT -- free to use, modify, and distribute.

Documentation

See the docs/ directory for detailed guides on architecture, development setup, testing, and deployment.

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages