Skip to content

About

A robust and scalable RESTful Web API built with C# ASP.NET Core and MySQL to power the Smart Mall Guide system.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚙️ Smart Mall Guide — Backend API

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.

🏗️ Architecture

The backend follows a Layered Architecture approach to provide clear separation of concerns, maintainability, scalability, and secure business logic management.

🏗️ Project Structure

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

🔑 Key Features

🛡️ Authentication & Security

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.

🗄️ Database & Entity Framework Core

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.

⚡ Performance Optimization

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.

📡 API Modules

Users

User registration.

Secure login.

JWT token generation.

Profile management.

User authentication and authorization.

Stores

Create, read, update, and delete stores.

Store information and descriptions.

Operating hours.

Mall floor and location information.

Store category association.

Categories

Create and manage store categories.

Organize stores by type and sector.

Support categories such as Fashion, Dining, and Electronics.

Favorites

Add stores to favorites.

Remove stores from favorites.

Retrieve user-specific favorite stores.

🛠️ Tech Stack

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

🧪 Testing & Quality Assurance

The backend was tested using multiple approaches to ensure reliability and correctness.

White-Box Testing

Business logic verification.

Database query testing.

Exception handling.

Authentication and authorization logic.

ORM and data access validation.

API Functional Testing

API endpoints were tested for:

HTTP status codes.

Request and response payloads.

JWT authentication.

Authorization rules.

Validation and error handling.

API response behavior.

🔗 Integration

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 Information

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


💡 Author

Abdulrahman Alhomaidi
GitHub: https://github.com/Alhomaidi3
LinkedIn: https://www.linkedin.com/in/Alhomaidi3

About

A robust and scalable RESTful Web API built with C# ASP.NET Core and MySQL to power the Smart Mall Guide system.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages