A robust and scalable RESTful Web API built with C# ASP.NET Core and MySQL to power the Smart Mall Guide system.
The backend manages user authentication, store and category data, ratings, favorites, indoor navigation information, and administrative operations.
The backend follows a Layered Architecture approach to provide clear separation of concerns, maintainability, scalability, and secure business logic management.
| Directory / File | Description |
|---|---|
Controllers/ |
API controllers and request routing |
UsersController.cs |
User registration, authentication, and profile management |
StoresController.cs |
Store management and information |
CategoriesController.cs |
Store category management |
RatingsController.cs |
Ratings and reviews |
FavoritesController.cs |
User favorite stores |
Services/ |
Business logic, validation, authentication, and authorization |
Data/ |
Database context and data access |
AppDbContext.cs |
Entity Framework Core database context |
Migrations/ |
Entity Framework Core database migrations |
Models/ |
Database entities and domain models |
DTOs/ |
Request and response data transfer objects |
Middlewares/ |
Global exception handling and request processing |
Helpers/ |
JWT utilities, security helpers, and pagination extensions |
JWT-based authentication.
Secure password hashing using BCrypt.
Role-Based Access Control (RBAC).
Separate permissions for User and Admin roles.
Protected API endpoints.
Centralized authentication and authorization handling.
MySQL relational database.
Entity Framework Core for database operations.
Fluent API for entity configuration.
One-to-Many and Many-to-Many relationships.
Database migrations.
Referential integrity and cascading delete where appropriate.
AsNoTracking() for read-only queries.
Server-side pagination for large datasets.
Asynchronous database operations using async/await.
Efficient API request and response processing.
Concurrent operations using Task.WhenAll where appropriate.
User registration.
Secure login.
JWT token generation.
Profile management.
User authentication and authorization.
Create, read, update, and delete stores.
Store information and descriptions.
Operating hours.
Mall floor and location information.
Store category association.
Create and manage store categories.
Organize stores by type and sector.
Support categories such as Fashion, Dining, and Electronics.
Add stores to favorites.
Remove stores from favorites.
Retrieve user-specific favorite stores.
| Technology | Purpose |
|---|---|
| C# | Backend programming language |
| ASP.NET Core | RESTful Web API framework |
| MySQL | Relational database |
| Entity Framework Core | ORM and data access |
| Pomelo.EntityFrameworkCore.MySql | MySQL provider for EF Core |
| JWT Bearer Authentication | Authentication and authorization |
| BCrypt.Net-Next | Secure password hashing |
The backend was tested using multiple approaches to ensure reliability and correctness.
Business logic verification.
Database query testing.
Exception handling.
Authentication and authorization logic.
ORM and data access validation.
API endpoints were tested for:
HTTP status codes.
Request and response payloads.
JWT authentication.
Authorization rules.
Validation and error handling.
API response behavior.
The backend API is designed to communicate with the Smart Mall Guide Flutter mobile application, providing the data and services required for:
Authentication.
Store discovery.
Categories.
Indoor navigation data.
Ratings and reviews.
Favorites.
Administrative management.
Project: Smart Mall Guide System
Component: Backend API
Type: Graduation Project
Developer: Abdulrahman Alhomaidi
Institution: Arab Open University (AOU)
Supervisor: Dr. Khaled Mansour
Duration: February 2026 – May 2026
Final Grade: Excellent
Abdulrahman Alhomaidi
GitHub: https://github.com/Alhomaidi3
LinkedIn: https://www.linkedin.com/in/Alhomaidi3