Skip to content

Patrykbarc/gymster-app

Folders and files

NameName
Last commit message
Last commit date
Sep 3, 2024
Feb 4, 2025
Sep 25, 2024
Nov 1, 2024
Sep 2, 2024
Jan 17, 2025
Nov 1, 2024
Jan 15, 2025
Nov 19, 2024
Feb 4, 2025
Feb 4, 2025
Jan 15, 2025
Sep 2, 2024
Sep 2, 2024
Sep 5, 2024

Repository files navigation

Gymster App

A modern workout tracking application built with React, TypeScript, and Vite. Track your workouts, monitor progress, and achieve your fitness goals.

Features

  • πŸ‹οΈβ€β™‚οΈ Create and manage workouts
  • πŸ“Š Track exercise sets, reps, and weights
  • πŸ“± Responsive design
  • πŸ” User authentication with Supabase
  • πŸ’Ύ Real-time data persistence
  • πŸ“ˆ Progress monitoring
  • πŸ“… Workout calendar (coming soon)

TODO

Features

  • Implement workout calendar functionality
  • Add progress tracking charts and analytics
  • Create workout templates/presets
  • Add social features (sharing workouts, following users)
  • Implement workout reminders and notifications
  • Add exercise library with proper form guides
  • Add a form with user details after registration

Technical Improvements

  • Set up unit testing
  • Add E2E
  • Implement proper error boundaries
  • Add PWA support
  • Optimize bundle size and loading performance
  • Add offline support
  • Implement proper data caching strategy
  • Add comprehensive API documentation
  • Set up CI/CD pipeline

UI/UX Improvements

  • Add i18n support
  • Add dark mode support
  • Implement skeleton loading states
  • Add proper form validation feedback
  • Improve mobile responsiveness
  • Add proper error states and empty states
  • Implement proper loading indicators
  • Add proper toast notifications
  • Improve accessibility (ARIA labels, keyboard navigation)
  • Add kilograms or pounds conversion

Documentation

  • Add API documentation
  • Create component documentation with Storybook
  • Add proper JSDoc comments
  • Create user documentation/guide
  • Add contributing guidelines
  • Add code of conduct
  • Create changelog

Tech Stack

  • React 19 (RC)
  • TypeScript
  • Vite
  • Redux Toolkit
  • Styled Components
  • Supabase
  • React Hook Form
  • Zod
  • React Router DOM

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v18 or higher)
  • pnpm (v8 or higher)
  • Git

Getting Started

  1. Clone the repository:

    git clone https://github.com/yourusername/gymster-app.git
    cd gymster-app
  2. Install dependencies:

    pnpm install
  3. Create a .env.local file in the root directory with your Supabase credentials:

    VITE_SUPABASE_API_URL="your-supabase-url"
    VITE_SUPABASE_API_KEY="your-supabase-anon-key"
  4. Generate Supabase types:

    pnpm generate-types
  5. Prepare Husky:

    pnpm husky:prepare
  6. Start the development server:

    pnpm dev

Available Scripts

  • pnpm dev - Start development server
  • pnpm build - Build for production
  • pnpm preview - Preview production build
  • pnpm lint - Run ESLint
  • pnpm lint:fix - Fix linting issues
  • pnpm generate-types - Generate Supabase types
  • pnpm husky:prepare - Prepare Husky

Project Structure

src/
β”œβ”€β”€ api/            # API integration and Supabase client
β”œβ”€β”€ lib/            # Shared utilities and configurations
β”œβ”€β”€ routes/         # Route components and configurations
β”œβ”€β”€ styles/         # Global styles and theme
β”œβ”€β”€ ui/             # UI components and views
β”‚   β”œβ”€β”€ components/ # Reusable components
β”‚   └── views/      # Page-specific components
β”œβ”€β”€ utils/          # Helper functions and hooks
└── types/          # TypeScript type definitions

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Releases

No releases published

Packages

No packages published

Languages