The main idea of application is to display sales statistics in the form of an interactive graph. The application consists of the following 2 parts:
- Server-side application built on .NET Core 3.1;
- Client-side application built on Angular 9.
Server-side application provides API for managing sales (simple CRUD operations) and for calculating sales statistics (number and amount of sales). Client-side application provide UI with interactive graph to contol sale statistics.
To configure application, edit the following appsettings.json
file in the ./ServerSideApp/src/Web
directory:
{
"ConnectionStrings": {
"DefaultConnection": "Server=127.0.0.1,1433;Database=SalesDb;User Id=sa;Password=reallyStrongPwd123",
"DockerConnection": "Server=sql_server;Database=SalesDb;User Id=sa;Password=reallyStrongPwd123;"
},
"InitialDbSeedEnable": true,
"AllowedHosts": "*"
}
Database seeding with initial data is ENABLED by default. To disable database seeding, set InitialDbSeedEnable
to false
in appsettings.json
.
To run the server-side application, type the following commands from the ./ServerSideApp
directory:
> docker-compose build
> docker-compose up
For macOs or Linux systems, use sudo
for commands above.
To know more about docker-compose, please visit docker official site.
To install required packages and run the application, type the following commands from the ./ClientSideApp
directory:
> npm install
> npm start
- ASP.NET Core 3.1;
- Clean architecture;
- REST API with Swagger;
- CRUD;
- Docker;
- Entity Framework Core for SQL Server;
- CQRS with Fluent Validation,
- Automapper;
- Health check;
- Logging with Serilog;
- Unit tests with xUnit, Moq and Shouldly;
- Angular;
- Chart.js with chartjs-plugin-zoom.
Yury Aslamov - Software Developer, Ph.D.
This project is under the MIT License - see the LICENSE.md file for details.