- .NET Core 3.0 for the API and controllers
- EntityFrameworkCore as a code first ORM (object-relational mapping)
- SQLite as a database provider
- MediatR for CQRS (Command and queries responsibility segregation)
- ASP Middlewares for error handling
- FluentValidation for data validation
- User-secrets for secret storage
- Cloudinary for image cloud storage.
- Microsoft SignalR for realtime WebSocket updates
- React for the SPA (single page application)
- TypeScript for code logic
- Axios for http requests
- MobX for state management
- React Hooks for state mangement
- React Semantic UI for styling
- React Router for navigation routing
- React Toastify to show toasts
- React Widgets for UI controls
- React Final Form for forms
- Date-Fns for date handling
- Revalidate for data validation
- Uuid for id generations
- React Cropper for image cropping
- React Dropzone for file upload
- Microsoft SignalR for realtime WebSocket updates
- React Infinite Scroller for infinite scrolling
- Security Headers to check security grade of the web app.
- React Facebook Login to login with Facebook.
-
For development purposes an SQLite database was used.
-
For testing purposes, a MySQL server (community) was used.
-
Install MySQL server Community.
-
Create a user
appuser
.
-
-
Start the backend API:
cd API
thendotnet run
. -
Start the web client:
cd client-app
thennpm start
.
-
Build the web client:
cd client-app
thennpm run build
. -
This will create an optimized webapp and move it to the
wwwroot
folder of the API.