GymMe is a web application designed for health and fitness enthusiasts to browse and purchase supplements, with features for admins to manage products and orders. Built with ASP.NET using Domain-Driven Design (DDD), this project layers responsibilities to create a scalable and maintainable architecture.
GymMe allows users to browse, order, and manage health supplements. Admins can manage inventory, handle orders, and view transaction reports. This project is a simplified version designed to showcase and test web development skills.
The application is divided into six key layers, each handling a distinct responsibility:
- View – Manages the user interface and user interactions.
- Controller – Validates and processes inputs from the View layer.
- Handler – Encapsulates business logic, delegating database operations to the Repository.
- Repository – Interfaces with the database, providing data manipulation methods.
- Factory – Encapsulates complex object creation.
- Model – Represents business data, using Entity Framework for database integration.
Role | Permissions |
---|---|
Admin | Manage products, handle orders, view customer data, access transaction reports. |
Customer | Browse and order supplements, view order history, manage profile. |
Guest | Register and log in. |
- View Customers
- Insert, Update, Delete Supplements
- View and Handle Orders
- Update Profile
- View Reports
- Browse and Order Supplements
- Manage Cart (Add, Clear, Checkout)
- View Order History
- Update Profile
- Register
- Log in
- Accessible only to guests.
- Validates username and password.
- Includes "Remember Me" checkbox for auto-login.
- Allows guests to create accounts.
- Validates personal details (e.g., username, email, password).
- Displays current user role.
- Shows customer data (for admin users).
- Displays supplement details for customers.
- Allows ordering and managing the cart.
- Editable user profile information and password update.
- Shows all customer transactions, with order detail view for each.
- Admin-only access.
- Options to add, update, and delete products.
- Admin-only access.
- Displays all transaction details with total income and subtotals.
Dynamic navigation based on user role:
- Customer: Order Supplement, History, Profile, Logout.
- Admin: Home, Manage Supplements, Order Queue, Profile, Transaction Report, Logout.
- Framework: ASP.NET
- Design Methodology: Domain-Driven Design
- Database Access: Entity Framework (optional web services)
- Clone the repository:
git clone https://github.com/Kuurianse/GymMe.git