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.
- π§ 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
| 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 |
βββ GymManagementPL # Presentation Layer (MVC Controllers & Views)
βββ GymManagementBLL # Business Logic Layer (Services, ViewModels)
βββ GymManagementDAL # Data Access Layer (Repositories, Entities, Context)
βββ GymManagementSystem.sln # Main Solution File
| 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. |
git clone https://github.com/Michael-Moris/TrainMate.git
cd TrainMateOpen TrainMate.sln in Visual Studio and set GymManagementPL as the startup project.
Update the connection string inside appsettings.json if needed:
"ConnectionStrings": {
"DefaultConnection": "Server=.;Database=TrainMateDB;Trusted_Connection=True;TrustServerCertificate=True;"
}update-databasePress F5 or click Run β the app will open automatically
| Role | Password | |
|---|---|---|
| SuperAdmin | michaelmorisdev@gmail.com |
P@ssw0rd |
| Admin | markspector@gmail.com |
P@ssw0rd |
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!