Welcome and thank you for your interest in ChipSoft!
This repository contains a sample Blazor (Server + WebAssembly) application used for assessment purposes.
ChipSoft.Assessment.Presentation- Host app, server for API and static hosting of client.ChipSoft.Assessment.Presentation.Client- Blazor WebAssembly client.ChipSoft.Assessment.Application- Application services, DTOs, validators.ChipSoft.Assessment.Domain- Domain entities and enums.ChipSoft.Assessment.Infrastructure- EF Core persistence (SQLite).ChipSoft.Assessment.Tests- Unit tests.
- .NET 10 SDK
- Optional: Visual Studio 2022/2023, or VS Code with C# extensions
ApiSettings:BaseAddressmust be configured for the Blazor client to communicate with the server. For local development you can set this tohttps://localhost:7149/(adjust port to what the server uses).- Use
appsettings.Development.jsonfor local overrides. Do not commit secrets. - Use
dotnet user-secretsor environment variables for sensitive values.
-
Build the solution:
dotnet build
-
Run the server (Presentation project). From solution root:
dotnet run --project ChipSoft.Assessment.Presentation/ChipSoft.Assessment.Presentation.csproj
-
In another terminal, run the WASM client if running standalone (optional):
dotnet run --project ChipSoft.Assessment.Presentation/ChipSoft.Assessment.Presentation.Client/ChipSoft.Assessment.Presentation.Client.csproj
-
Open the browser and navigate to the server address. The client is hosted as static assets by the server when using the integrated hosting model.
- Run unit tests:
dotnet test
.editorconfigadded to enforce consistent formatting and C# conventions..gitattributesadded to normalize line endings and treat binary files correctly..gitignoreupdated to exclude build artifacts, IDE files, local SQLite files (temp.db), and other local-only files.- Do not commit local database files or secrets. Add any local-only test data to
.gitignoreif necessary.
- Add a GitHub Actions workflow that runs
dotnet restore,dotnet build, anddotnet teston push/PR. - Protect
mainbranch and require the CI checks to pass before merging.
- Create feature branches and open PRs against
main. - Add unit tests for new functionality.
- Run
dotnet formatbefore committing to enforce.editorconfigrules.
- For deployment, configure a production database and set production configuration values via environment variables or a secrets store.
- Ensure
ApiSettings:BaseAddressused by the client points to the deployed server.