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

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy