Timesheet entries
Change a row and press Update, or add a new one at the bottom. Hours must be between 0.25 and 12; dates can't be in the future.
Three front ends, one core
The same application layer (models, repository, services, validation) in Timesheet.Core, used by three different UIs:
-
MVC Classicyou are here Controllers and Razor views, full page posts. Also has Microsoft Entra ID sign-in.
-
Blazor Server Interactive components over a SignalR connection, no page reloads.
-
MVC + Razor Components MVC pages hosting Blazor components (abandoned experiment).
How it's built
- C# .NET, on Azure App Service.
- Each front end has its own Azure DevOps pipeline that runs the unit tests, then deploys.
- Data is held in memory, so changes last only while the app is running.
- Git repository on Azure DevOps
Microsoft Entra ID: sign in and roles
Use the links in the bar at the top: sign in and out, try the admin-only and user-only pages, and list every claim Entra sends in My roles.
Basic user
timesheetuser@jonesstevelive.onmicrosoft.com (password: 4Candles)
Can open the user page, not the admin page.
timesheetuser@jonesstevelive.onmicrosoft.com (password: 4Candles)
Can open the user page, not the admin page.
Admin user
timesheetadmin@jonesstevelive.onmicrosoft.com (password: Fork_Handles)
Can open both pages (admins also have the user role).
timesheetadmin@jonesstevelive.onmicrosoft.com (password: Fork_Handles)
Can open both pages (admins also have the user role).