Clean Architecture Application Design from Scratch using Dotnet Core 5 WebApi and Angular 11 FrontEnd
- ASP.NET Core 5
- NHibernate
- Angular 11
- Angular CLI 11
- Clean Architecture
- Swashbuckle.AspNetCore.Swagger
- Design Pattern: Command Query Responsibility Segregation (CQRS)
- Fluent Validation
- WebAPI Global Exception Middleware
- Login, Logout and Forgot Password using JWT tokens
- Microsoft Sql Server and Postgresql supported
- AWS Postgres RDS
- AWS Lambda
- AWS Systems Manager
- AWS Simple Storage Service (S3)
- Docker
- .Net core 5 SDK
- Visual studio 2019 OR VSCode with C# extension
- NodeJs (Latest LTS)
- Microsoft SQL Server (Optional: If MS SQL server required instead of Sqlite during development)
- POSTGRESQL
- Clone the repo: git clone https://github.com/sunilkumarmedium/CleanArchitectureApp.git
- Execute the sql scripts available in the folder
/sql/
- MSSQL use CleanArchitectureDB.sql
- POSTGRES use CleanArchitectureDB-Postgres
- Change the database connectionstring in appsettings.json
- Path : CleanArchitectureApp.WebApi/appsettings.Development.json or appsettings.json
"DBProvider": "MSSQL" ,
UseMSSQL
to connect to Microsoft SqlServer OrPOSTGRES
to connect to PostgreSQL database"ConnectionStrings": { "MSSQLConnection": "Data Source=DESKTOP-SUNILBO;Initial Catalog=CleanArchitectureDB;User ID=sa;Password=xxx;MultipleActiveResultSets=True", "PostgresConnection": "Server=127.0.0.1;Port=5432;Database=CleanArchitectureDB;User Id=postgres;Password=xxx;Timeout=30;TimeZone=UTC" }'
- cd to folder CleanArchitectureApp\CleanArchitectureApp.UserInterface.AngularWeb\ClientApp
npm install
- open the CleanArchitectureApp.sln
- Visual Studio 2019 IDE
- opening the solution will restore the nuget and npm packages build the solution
- Multiple Projects Startup
CleanArchitectureApp.WebApi
andCleanArchitectureApp.UserInterface.AngularWeb
- Visual Studio Code
- Visual Studio 2019 IDE
- Application URL's
- Test User to Login
Username: system
Password: admin@123
AWS Lambda Deployment, AWS RDS Instance Creation and Managing the database connectionstring using AWS Systems Manager
Read the below articles to get some understanding on the AWS RDS , Lambda and Systems Manager.
Change the settings in appsettings.json IsCloudDeployment
Region
CloudSSMConnectionString
"IsCloudDeployment": "true",
"Region": "ap-south-1",
"DBProvider": "POSTGRES" ,
"ConnectionStrings": {
"MSSQLConnection": "Data Source=DESKTOP-SUNILBO;Initial Catalog=CleanArchitectureDB;User ID=sa;Password=admin@123;MultipleActiveResultSets=True",
"PostgresConnection": "Server=127.0.0.1;Port=5432;Database=CleanArchitectureDB;User Id=postgres;Password=admin@123;Timeout=30;TimeZone=UTC",
"CloudSSMConnectionString": "/CleanArchitectureAppWebApi/postgresconnection"
},
Follow these steps to get your development environment: (Before Run Start the Docker Desktop)
- Clone the repository
- Once Docker for Windows is installed, go to the Settings > Advanced option, from the Docker icon in the system tray, to configure the minimum amount of memory and CPU like so:
- Memory: 4 GB
- CPU: 2
- At the root directory which include docker-compose.yml files, run below command:
docker-compose -f docker-compose.yml -f docker-compose.override.yml up -d
- CleanArchitectureApp API -> http://localhost:5001/swagger/index.html
- Portainer -> http://localhost:9000 -- admin/admin@123