ExerciseRoutine is a modern full-stack web application for creating, organizing, and discovering fitness exercises.
Users can build their own exercise library, organize exercises into custom categories, save favourites, and browse detailed exercise information through a responsive interface. The application also includes a dedicated administration panel for managing users, exercises, and categories.
Built with React, Laravel, and MySQL/SQLite, the project demonstrates modern full-stack development through RESTful APIs, secure authentication, role-based authorization, and responsive UI design.
- User registration and authentication
- Secure login with Laravel Sanctum
- Personal dashboard with exercise statistics
- Create, edit, and delete exercises
- Upload exercise images
- Organize exercises using custom categories
- Save favourite exercises
- Search exercises by title
- Filter exercises by category
- Detailed exercise pages
- Responsive interface for desktop and mobile
- Admin dashboard
- User management
- Exercise management
- Category management
- Search and filtering
- Pagination
- Role-based access control
| Category | Technologies |
|---|---|
| Frontend | React 19, Vite |
| Backend | Laravel 12 |
| Language | PHP 8.2, JavaScript |
| Styling | Tailwind CSS v4, DaisyUI |
| API | REST API |
| Authentication | Laravel Sanctum |
| Data Fetching | TanStack Query |
| HTTP Client | Axios |
| Routing | React Router |
| Database | SQLite / MySQL |
| Development | Composer, npm |
This project demonstrates several software engineering concepts, including:
- Full-stack architecture
- RESTful API design
- Authentication and authorization
- Role-based access control
- CRUD operations
- Many-to-many database relationships
- Responsive UI design
- Component-based React architecture
- State management using TanStack Query
- Image upload handling
- Search, filtering, and pagination
- Clean project organization
Overview of personal exercises, favourites, and categories.
Browse exercises with search and category filters.
Detailed exercise information including categories, difficulty, equipment, and instructions.
Manage your personal exercise collection.
Create new exercises with images, categories, equipment, and instructions.
Update existing exercises and uploaded images.
Quick access to saved exercises.
Create and manage custom exercise categories.
Dedicated administration interface.
Entity relationship diagram illustrating the application's relational database structure.
- PHP 8.2+
- Composer
- Node.js
- npm
- SQLite or MySQL
git clone https://github.com/hassan-afifi/ExerciseRoutine.gitcd server
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate --seed
php artisan storage:link
php artisan servecd client
npm install
npm run devExerciseRoutine/
├── client/
│ ├── src/
│ ├── public/
│ └── ...
│
├── server/
│ ├── app/
│ ├── routes/
│ ├── database/
│ ├── resources/
│ └── ...
│
└── README.md
This project is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.