Skip to content

Restaurants APIs is a comprehensive API project designed to manage restaurant operations. Built using ASP.NET Core 8 and following Clean Architecture principles, this API is engineered for scalability, maintainability, and security.

Notifications You must be signed in to change notification settings

alnaimi-github/Restaurants

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Restaurants APIs

.NET Core 8 Azure Clean Architecture Swagger


Overview

Restaurants APIs is a comprehensive API project designed to manage restaurant operations. Built using ASP.NET Core 8 and following Clean Architecture principles, this API is engineered for scalability, maintainability, and security. It integrates with Azure Services for cloud storage and database management, providing a robust and cloud-ready solution.


Key Features

  • Cross-Platform Development: Developed with ASP.NET Core 8, suitable for integration with web, mobile, and desktop applications.

  • Clean Architecture: Ensures a well-organized, maintainable, and easily testable codebase.

  • image

  • image

  • Database Management: Utilizes Microsoft SQL Server with Entity Framework Core for efficient data operations.

  • image

  • Authentication & Authorization: Implements ASP.NET Core Identity with role-based access control, JWT authentication, and custom claims.

  • image

  • API Documentation: Automated documentation via Swagger for clear API exploration.

  • image

  • image

  • image

  • image

  • Logging & Monitoring: Integrated with Serilog for comprehensive logging and monitoring.

  • image

  • image

  • Azure Integration: Deployed on Azure, leveraging Azure App Services and Azure SQL for high availability and scalability.

image image image image image image image image image image


Technical Highlights

  • DTO Mapping & Validation: Employs Data Transfer Objects (DTOs) and FluentValidation to ensure data integrity.
  • CQRS with MediatR: Implements Command Query Responsibility Segregation (CQRS) using MediatR for enhanced scalability and separation of concerns.
  • Sub-Entity Management: Efficiently manages nested resources within main entities, adhering to RESTful principles.
  • Paging & Sorting: Incorporates paging and sorting mechanisms for handling large datasets effectively.
  • image

Design Patterns Used

  • Mediator Design Pattern: Mediator Interface: Declares methods used by components to communicate. Concrete Mediator: Implements the mediator interface and coordinates communication between components. Colleague Components: The objects that interact with each other via the mediator. MediatR in C# MediatR is a popular library that implements this pattern in .NET, commonly used with CQRS (Command Query Responsibility Segregation). It provides a way to decouple the request handlers and their invokers using simple, consistent interfaces.

Key Concepts in MediatR: Requests/Commands/Queries: Define what action to perform. Handlers: Implement the logic to handle requests/commands/queries. MediatR Interface: IMediator is used to send requests and invoke the corresponding handlers.

  • Singleton Pattern: Ensures a single instance of critical services, such as the database context, for consistency and reduced overhead.

Project Structure

The project is organized according to Clean Architecture principles:

  • Core: Contains business logic and domain entities, independent of external dependencies.
  • Infrastructure: Manages data access, external services, and infrastructure concerns.
  • API: Handles HTTP requests, routing, and user interface interactions.

Deployment & CI/CD

  • Azure Deployment: The application is deployed on Azure using Azure App Services and Azure SQL to ensure high availability and scalability.
  • CI/CD: GitHub Actions is utilized for automating build, test, and deployment processes, ensuring efficient and reliable updates.

image


Documentation & Testing

  • API Documentation: Detailed API documentation is generated with Swagger and Postman, providing clear instructions on API usage.

  • image image image image

  • Testing Coverage: Includes unit and integration tests to ensure reliability and correctness, with automated pipelines for high code quality.

  • image


Final Presentation

This project exemplifies advanced software engineering principles by integrating modern frameworks, clean architecture, and cloud services into a professional-grade API solution. The application of design patterns, clean code practices, and cloud integration highlights a high level of expertise in cross-platform application development.


Additional Resources

About

Restaurants APIs is a comprehensive API project designed to manage restaurant operations. Built using ASP.NET Core 8 and following Clean Architecture principles, this API is engineered for scalability, maintainability, and security.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages