A comprehensive pregnancy fitness application designed to help expectant mothers maintain their health and wellness throughout their pregnancy journey. LoraFit provides safe, guided exercises tailored specifically for pregnant women.
- Pregnancy-Safe Exercises: Curated collection of exercises designed specifically for pregnant women
- Personalized Workouts: Customizable workout sessions based on pregnancy week and fitness level
- Progress Tracking: Monitor your fitness journey with streak tracking and workout history
- Exercise Categories:
- Breathing exercises for relaxation and stress relief
- Stretching routines to improve flexibility
- Strength training adapted for pregnancy
- Relaxation poses for rest and recovery
- Timer-Based Sessions: Guided workout sessions with built-in timers
- Mobile-First Design: Responsive interface optimized for mobile devices
- User Profiles: Track pregnancy week, daily goals, and personal progress
- React 18 with TypeScript
- Vite for fast development and building
- Tailwind CSS for styling
- Radix UI for accessible component library
- Framer Motion for animations
- Wouter for client-side routing
- TanStack Query for data fetching and caching
- React Hook Form for form management
- Express.js with TypeScript
- Drizzle ORM for database operations
- SQLite for local development (easily configurable for PostgreSQL)
- Express Session for user session management
- TypeScript for type safety
- ESBuild for production builds
- Drizzle Kit for database migrations
- TSX for TypeScript execution
- Node.js (v18 or higher)
- npm or yarn
-
Clone the repository
git clone <repository-url> cd LoraFit
-
Install dependencies
npm install
-
Set up the database
# Set the database URL environment variable export DATABASE_URL="sqlite://./dev.db" # Create and seed the database npm run db:push
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5000to view the application.
LoraFit/
βββ client/ # Frontend React application
β βββ src/
β β βββ components/ # Reusable UI components
β β β βββ ui/ # Base UI components (Radix UI)
β β β βββ exercise-card.tsx
β β β βββ exercise-timer.tsx
β β β βββ ...
β β βββ pages/ # Application pages
β β β βββ home.tsx
β β β βββ exercises.tsx
β β β βββ workout-session.tsx
β β β βββ ...
β β βββ hooks/ # Custom React hooks
β β βββ lib/ # Utility functions
β β βββ main.tsx # Application entry point
βββ server/ # Backend Express application
β βββ index.ts # Server entry point
β βββ routes.ts # API route definitions
β βββ db.ts # Database configuration
β βββ seed.ts # Database seeding
βββ shared/ # Shared code between frontend and backend
β βββ schema.ts # Database schema definitions
βββ attached_assets/ # Exercise images and assets
βββ package.json # Project dependencies and scripts
The application uses the following main entities:
- Personal information and pregnancy tracking
- Streak counters and daily goals
- Workout history
- Exercise details (name, description, instructions)
- Duration and difficulty levels
- Category classification (breathing, stretching, strength, relaxation)
- Pregnancy safety indicators
- User workout history
- Session duration and completion tracking
- Exercise completion counts
- Individual exercise tracking within sessions
- Time spent and completion status
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run db:push- Push database schema changesnpm run check- TypeScript type checking
- Grounding Yourself: Meditation pose for centering and baby connection
- Focus on deep breathing and mindfulness
- Cat and Cow: Spinal movement for back tension relief
- Hip Stretch: Gentle hip opening for pelvic tension relief
- Windmill: Side stretch for flexibility improvement
- Lunges: Modified lunges for leg strength and balance
- Squats: Pregnancy-safe squats for labor preparation
- Child Pose: Restful pose for body and mind relaxation
DATABASE_URL: Database connection stringNODE_ENV: Environment (development/production)PORT: Server port (default: 5000)
The application supports both SQLite (default) and PostgreSQL:
SQLite (Development)
export DATABASE_URL="sqlite://./dev.db"PostgreSQL (Production)
export DATABASE_URL="postgresql://user:password@localhost:5432/lorafit"The application uses a comprehensive set of UI components built on Radix UI:
- Navigation: Bottom navigation, breadcrumbs
- Forms: Input fields, selectors, checkboxes
- Feedback: Alerts, toasts, progress indicators
- Layout: Cards, sheets, dialogs, accordions
- Data Display: Tables, charts, badges
LoraFit is designed with a mobile-first approach:
- Responsive design that works on all screen sizes
- Touch-friendly interface elements
- Optimized for one-handed use
- Fast loading and smooth animations
-
Build the application
npm run build
-
Start production server
npm run start
Ensure you have the following environment variables set in production:
DATABASE_URL: Your production database URLNODE_ENV=productionPORT: Your desired port (default: 5000)
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Exercise routines designed with pregnancy safety in mind
- UI components powered by Radix UI
- Built with modern web technologies for optimal performance
For support or questions, please open an issue in the repository or contact the development team.
LoraFit - Supporting your pregnancy fitness journey, one workout at a time. πͺπ€±