A simple single page react application with .net core backend to manage one domain entity while sharing changes on the database simultaneously using signalr
This porject is build on asp.net boilerplate project. https://aspnetboilerplate.com/
The back-end is build on .net core. And the related solution is under aspnet-core folder.
In order to be able to use the system, an ef-core Update-Database command
should be used using the package manager console.
For the "default project" ProductManager.EntityFrameworkCore should be selected
with startup project set as the web host project.
This operation will generate database to your local db. Connection string can be edit
within appsettings.json
Database tables should look like below after the operation
All back-end api is presented over swagger when the .netcore project is run.
You need to login to the system to use it.
Default user is:
username: admin
password: 123qwe
The front-end is build on react. And should be compile using npm.
```sh
cd reactjs
npm install
```
And then start
```
npm start
```
Endpoints should be configured within the project environment variables.
All validation is managed with aspect oriented approach, so all dto's contains
their own validation pattern.
Localized labels are managed and presented by the back-end. The files are within
\aspnet-core\src\ProductManager.Core\Localization\SourceFiles directory. And can be managed
for different languages.
Unit tests are written for the product application service for some business rules.
All products within product page can be downloaded as excel
SignalR is integrated for real time sharing between users. When some product is created/edited/deleted,
other users see it in a reasonable time period.
Photo upload is managed with a specific api to upload photos and the reference is saved for the product.
Each different photo get's uploaded to the public folder and can be accessible within the network.
Photos without any reference from a product is deleted each minute using a background worker.
A confirmation pop-ups each time a product's price is too high. Confirmation box is localized.
Each audit detail is visible(and managable) for the products. Each information get's updated with
the related operations. Also, each produt get's deleted softly, database record stays.