A simple Todo app that is taken to great lengths.
It's basically my playground to try out new technologies and techniques.
- ASP.NET Core Web API
- Entity Framework Core
- Microsoft ASP.NET Core Identity
- Swagger support
- .NET MAUI
- Angular
- TailwindCSS
- daisyUI
- Capacitor (for native iOS and Android apps)
- Docker
- Functional programming in C#
- CQRS
- Unit testing
- OneOf
- FluentValidation
- MediatR
- Moq
- Newtonsoft.Json
- NSwag
- xunit
Feel free to give it a spin. Giving a star to the repository would be appreciated.
Here are the installation steps
There is one secret that needs to be prepared. Go to the root of the repository. Initialize the user secrets if not already.
dotnet user-secrets init
After that, create the secret below.
dotnet user-secrets set "JwtBearerAuthenticationIssuerSigningKey" "<generate_a_long_string_here>" --project "Fatihdgn.Todo.API"
You can use this site for generating this secret.
Then run the command below.
docker compose up
Look into "Fatihdgn.Todo.API/appsettings.json" file and replace the connection string there.
{
"ConnectionStrings": {
"TodoDB": "<your_connection_string>"
},
...
}
You can run the API using the command below
dotnet run --project Fatihdgn.Todo.API -c Release environment=Production
After that, note the host address that you can find inside the logs of the command above in case it's changed. It starts with "Now listening on: https://<your_address>"
Change the files in "Fatihdgn.Todo.Web/src/environments/environment.ts" and "Fatihdgn.Todo.Web/src/environments/environment.prod.ts" to use the host address that you noted above.
export const environment = {
production: false,
apiBaseUrl: "https://<your_address>"
};
Now go to "Fatihdgn.Todo.Web" directory and run the app.
cd Fatihdgn.Todo.Web
npm start
That's it!