Skip to content

Michael-Moris/TrainMate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

68 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‹οΈβ€β™‚οΈ TrainMate – Gym Management System

TrainMate is a full-featured Gym Management System built with ASP.NET Core MVC, following Clean Architecture and industry best practices. It enables gym administrators to efficiently manage members, trainers, sessions, bookings, and attendance β€” all within one streamlined platform.


πŸš€ Key Features

  • 🧍 Manage Members, Trainers, and Membership Plans
  • πŸ“… Create & Manage Training Sessions with live slot tracking
  • πŸ“ Book sessions and manage Attendance easily
  • πŸ” Secure Role-Based Authentication (SuperAdmin / Admin)
  • 🧱 Built with Layered Clean Architecture for long-term maintainability
  • πŸ’» Modern responsive UI using Bootstrap 5

βš™οΈ Tech Stack

Category Technology
πŸ’» Backend ASP.NET Core 9 MVC
🧩 ORM Entity Framework Core
πŸ—ƒοΈ Database Microsoft SQL Server
🧠 Mapping AutoMapper
🧱 Architecture Repository & Unit of Work
πŸ’‰ Dependency Injection Built-in ASP.NET Core DI
πŸ” Authentication ASP.NET Identity (Role-based)
🎨 Frontend Bootstrap 5, jQuery, Font Awesome

🧩 Solution Structure

β”œβ”€β”€ GymManagementPL # Presentation Layer (MVC Controllers & Views)
β”œβ”€β”€ GymManagementBLL # Business Logic Layer (Services, ViewModels)
β”œβ”€β”€ GymManagementDAL # Data Access Layer (Repositories, Entities, Context)
β”œβ”€β”€ GymManagementSystem.sln # Main Solution File

🧱 Design Patterns Used

Pattern Description
πŸ’‰ Dependency Injection (DI) Provides loose coupling between classes and promotes testability.
πŸ—‚οΈ Repository Pattern Centralizes data access logic and keeps EF Core usage consistent.
πŸ” Unit of Work Pattern Ensures all database operations within a transaction are atomic.
🧠 Service Layer Pattern Encapsulates business logic and keeps controllers lightweight.
πŸ”„ AutoMapper Automatically maps between Entities and ViewModels.
πŸ“Ž Utility & Attachment Services Handles reusable logic such as file uploads and shared helpers.

🧭 Getting Started

1️⃣ Clone the repository

git clone https://github.com/Michael-Moris/TrainMate.git
cd TrainMate

2️⃣ Open the project

Open TrainMate.sln in Visual Studio and set GymManagementPL as the startup project.

3️⃣ Configure the database connection

Update the connection string inside appsettings.json if needed:

"ConnectionStrings": {
  "DefaultConnection": "Server=.;Database=TrainMateDB;Trusted_Connection=True;TrustServerCertificate=True;"
}

4️⃣ Apply database migrations

update-database

5️⃣ Run the project

Press F5 or click Run β€” the app will open automatically


πŸ‘₯ Login Accounts

Role Email Password
SuperAdmin michaelmorisdev@gmail.com P@ssw0rd
Admin markspector@gmail.com P@ssw0rd

🀝 Contributing

Contributions, issues, and feature requests are always welcome!
If you’d like to improve TrainMate, feel free to fork the repository, make your changes, and submit a pull request.

⭐ Don’t forget to give the project a star if you find it helpful!


About

πŸ‹πŸ»β€β™‚οΈ TrainMate is a Gym Management System built with ASP.NET Core MVC & EF Core. It helps manage members, trainers, sessions, bookings, and subscription plans. πŸ’ͺ🏻

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors