A personal mobile app to track gym visits, exercises, and workout notes.
https://liftsync-tracker.vercel.app/login
- Frontend: React Native + Expo (TypeScript)
- Backend/Database: MongoDB
- State Management: Zustand or React Context
- Node.js 18+ installed
- npm or yarn
- Expo Go app on your phone (for testing)
# Install Expo CLI globally
npm install -g expo-cli
# Create the Expo app
npx create-expo-app@latest . --template expo-template-blank-typescript
# Install dependencies
npm install# Start development server
npx expo startScan the QR code with Expo Go (Android) or Camera app (iOS).
{
_id: ObjectId,
userId: string,
date: Date,
duration: number, // minutes
notes: string,
exercises: [
{
name: string,
sets: [
{ reps: number, weight: number, unit: "kg" | "lbs" }
],
notes: string
}
],
createdAt: Date,
updatedAt: Date
}{
_id: ObjectId,
name: string,
category: "chest" | "back" | "legs" | "shoulders" | "arms" | "core" | "cardio",
muscleGroups: string[],
description: string
}gym-tracker-app/
├── app/ # App screens (Expo Router)
│ ├── (tabs)/ # Tab navigation
│ │ ├── index.tsx # Home/Dashboard
│ │ ├── workouts.tsx # Workout history
│ │ └── profile.tsx # User settings
│ ├── workout/
│ │ ├── new.tsx # Log new workout
│ │ └── [id].tsx # View/Edit workout
│ └── _layout.tsx # Root layout
├── components/ # Reusable components
├── hooks/ # Custom hooks
├── services/ # API/MongoDB services
├── types/ # TypeScript types
├── utils/ # Helper functions
└── constants/ # App constants
- User authentication
- Log daily workouts
- Track exercises with sets/reps/weight
- Add notes to workouts
- View workout history
- Exercise library
- Progress charts/statistics
- Calendar view of gym days
Personal project - MIT License