MesBaX is an advanced e-commerce platform that provides powerful sales and business analytics solutions, optimized by the power of media integration. The project is built on Clean Architecture combined with the CQRS pattern, using .NET Core 6 for the backend, Angular 16 for the frontend, and SQL Server/Oracle for the database.
- 🖥️ Modern UI/UX: Intuitive and responsive design powered by Angular.
- ⚙️ Scalable Backend: ASP.NET Core for high-performance and reliability.
- 🗄️ Database Flexibility: Supports SQL Server and Oracle Database.
- 📦 Comprehensive Management: Inventory, orders, customers, and payments in one place.
- 💳 Secure Payment Gateway: Integration with industry-standard payment systems.
- 📈 Advanced Reporting: Generate real-time insights for business decision-making.
git clone <https://github.com/phamtiendungcw/MesBaX>
cd MesBaX
- Open the MesBaX.sln solution in Visual Studio.
- Restore NuGet packages:
dotnet restore
- Configure database connection strings in
appsettings.json
. - Open the Package Manager Console and run the following command to update the database:
dotnet ef database update
- Set MBX.Server as the startup project. Then, press F5 or click the Start button (with the green play icon) to run the project.
- Navigate to the Angular frontend folder:
cd src/MBX.UI
- Install dependencies:
npm install
- Start the Angular development server:
ng serve
MesBaX/
├── src/
│ ├── MBX.Application/ # Application logic
│ ├── MBX.Domain/ # Core domain models
│ ├── MBX.Infrastructure/ # Infrastructure services
│ ├── MBX.Persistence/ # Database migrations and access
│ ├── MBX.Server/ # ASP.NET Core Web API
│ ├── MBX.UI/ # Angular frontend application
├── docs/ # Project documentation
├── tests/ # Project testing
├── LICENSE # License file
├── README.md # Project overview
├── CONTRIBUTING.md # Contribute to the project
└── MesBaX.sln # Solution file
Mesbax aims to provide medium and large businesses with a comprehensive tool to:
- ✅ Efficiently manage products and orders.
- 📊 Perform in-depth analysis of sales data and customer behavior.
- 📈 Optimize business strategies based on real-time data.
- 🚀 Enhance operational efficiency through robust media integrations.
The project applies Clean Architecture to ensure flexibility, maintainability, and scalability. The project structure is divided into independent layers:
- Domain: 🏛️ Contains core business entities (e.g., Product, Order, Customer), value objects (e.g., Address, Money), domain services (e.g., OrderCalculationService), and domain events (e.g., OrderCreatedEvent). It's independent of any specific frameworks or technologies.
- Application: ⚙️ Contains use cases, implementing the CQRS pattern to separate read (Queries) and write (Commands) operations.
- Infrastructure: 🛠️ Contains specific implementations for database, caching, logging, external services, etc.
- Presentation: 🌐 Contains the Web API controllers (backend) and Angular components (frontend), responsible for interacting with the user and the Application layer.
CQRS (Command Query Responsibility Segregation):
CQRS is used to segregate responsibilities between read and write operations, optimizing the performance and scalability of the system.
- Backend: .NET Core 6, ASP.NET Core, Entity Framework Core
- Frontend: Angular 16, TypeScript, RxJS, HTML5, CSS3
- Database: SQL Server / Oracle
- API: RESTful API
- Authentication/Authorization: JWT (JSON Web Tokens)
- Caching: Redis / Memcached (optional)
- Logging: Serilog
- Testing: xUnit / NUnit / MSTest (backend), Jasmine / Karma (frontend)
- CI/CD: GitHub Actions
This project is licensed under the Apache 2.0 License.
We welcome contributions!
Feel free to submit pull requests, report issues, or suggest new features. Please follow our contribution guidelines.
For inquiries, please contact the development team at mesbaxdev@gmail.com.