Sigyma is an innovative fitness application blending modern technology with advanced workout planning. Designed for fitness enthusiasts of all levels, Sigyma empowers users to plan, track, and analyze their training sessions while discovering and reviewing gyms.
Sigyma offers a wide range of features to support physical development and foster a fitness community:
- 📋 Advanced Workout Plans: Create and edit personalized training plans split by days of the week and specific sets.
- 🏋️ Exercise Database: Build your own custom exercise list with descriptions, measurement units, and support for video/image attachments.
- 📈 Progress Tracking:
- Log workout sessions (weight, reps).
- Automatic tracking of Personal Bests for every exercise.
- Weekly Streaks to monitor training consistency and discipline.
- 🗺️ Gym Map & Reviews:
- Interactive map locating gyms (powered by Mapbox/Leaflet).
- Detailed rating system across 4 categories: Comfort, Cleanliness, Equipment, Atmosphere.
- 🎯 Goals & Challenges: Set weight and repetition goals for specific exercises with visual progress tracking.
- 👥 Community: Compete with friends on leaderboards and track their activity.
The project is built on a modern web stack ensuring high performance and scalability.
- Framework: Next.js 14
- Language: TypeScript
- Styling: Tailwind CSS +
tailwindcss-animate - UI Components: Shadcn/UI (based on
@radix-ui) - Animations: Framer Motion
- Maps: React Leaflet / Mapbox GL / MapLibre
- State Management: Zustand + TanStack Query
- Database: PostgreSQL (Neon Database / ElectricSQL)
- ORM: Drizzle ORM
- API: Hono (integrated with Next.js)
- Validation: Zod
- Authentication: Clerk
- Forms: React Hook Form + Resolvers
- Drag & Drop:
@dnd-kit&react-beautiful-dnd
The system relies on a relational database managed by Drizzle ORM. Key tables include:
users- User data linked with Clerk.markers- Gym locations (geolocation).reviews- Gym reviews linked to markers.trainingPlans&trainingPlanExercises- Structure of workout routines.workoutSession&workoutResults- History of completed workouts.exerciseBest- Tracking personal records.weekStreak- Gamification and consistency tracking.
To run the project locally:
-
Clone the repository:
git clone [https://github.com/your-username/sigyma.git](https://github.com/your-username/sigyma.git) cd sigyma -
Install dependencies:
npm install
-
Configure Environment Variables: Create a
.envfile and fill it with necessary API keys (Database URL, Clerk Keys, Uploadthing, etc.). -
Generate and Migrate Database:
npm run db:generate npm run db:migrate
-
Run the development server:
npm run dev
