Welcome to the E-Commerce Backend repository! This project implements the backend of an e-commerce website using C# and the .NET Core. The software architecture follows the Onion Architecture principles.
- Onion Architecture
- User Authentication and Authorization
- JWT,Access and Refresh token
- RESTful API
- Seperated Entity Configuration with EF Core
- Data generation with Bogus library
- Code First Approach
- Repository pattern(seperated read and write repositories)
- Unit of Work pattern
- CQRS and Mediator(with MediatR library) patterns
- Custom mapping library(with the help of AutoMapper)
- Global Exception handling(via custom middleware)
- Validation with Fluent Validation
- Pipeline Behaviors
- Seperated business logic with Base Rules
- Caching with Redis
- Language: C#
- Framework: .NET Core
- ORM: Entity Framework Core
- Architecture: Onion Architecture
- Database: Postgres SQL
- Version Control: Git
- Hosting: GitHub
- IDE: Rider
- Domain Layer: Contains the core business logic and domain entities.
- Application Layer: Responsible for application logic and mediates between the domain layer and the presentation layer.
- Infrastructure Layer: Deals with database access, external services, and other infrastructure concerns.
- Presentation Layer: Exposes the API endpoints to the outside world.
To get a local copy up and running, follow these steps.
- .NET Core SDK
- Postgres SQL
git clone https://github.com/your-username/e-commerce-backend.git
cd e-commerce-backend
- Configure your database connection string in
appsettings.json
.
dotnet build
dotnet run
- Access the API at
http://localhost:{your custom port-generally is 5000}/api
.
Contributions are what make the open-source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- Murad Mammadzada
- Email: mammadzade03@gmail.com