TimeKeeper is a time keeping application built using Blazor
The purpose of the application is to provide a learning resource including how the below elements are handled within a Blazor project.
- Application State Management
- Authentication and authorization
- Blazor Client Side (WASM) or Server Side
- Database Model
- Dependency Injection
- Documentation
- Hosting and Continuous Integration/Deployment (CI/CD)
- Logging
- ORM Selection
- Project Architecture
- Testing
- User Stories
We are hoping to make the project accessible to all levels of developer and anyone is welcome to contribute to the project.
The project was started by members of the Practial ASP.NET community run by Jon Hilton and we would encourage you to check out his blog and courses and in particular Blazor By Example.
The project is currently in it's infancy and you can check out the current discussions and issues to see the areas we are currently tackling.
To drive the requirements of the application we created a fictional scenario which can be viewed in our Wiki
See GitHub Docs for details on cloning repositories.
In order to run the application you will need to create the TimeKeeper database on your local SQL Server or a SQL Server you have access to.
To do this publish the TimeKeeper.Database project by right cliking on TimeKeeper.Database within Visual Studio and select Publish.
You will be presented with the below screen.
Select browse and choose the required SQL Server
Enter TimeKeeper as the database name and click on Publish. Your database will now be created.
The database connection string can be found in the file appsettings.json within the TimeKeeper.Api project and is set to use the SQL Server (localdb)\mssqllocaldb and the database TimeKeeper.
If your SQL Server is different you should follow the below steps.
Create a new configuration file called appsettings.Development.json
Paste the below text in changing localhost with the name of your SQL Server.
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=TimeKeeper;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
Note that appsettings.Development.json is not tracked in the repository so you should only need to do the above once.