Loading repository data…
Loading repository data…
Juan-Guzman-Ve / repository
This repository powers the authentication backend for CourtBooker, using .NET 9 and a layered architecture. It supports local development, automated builds, testing, and Docker-based deployment. All workflows are automated via PowerShell scripts and Psake.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
This repository provides an automated environment for building, testing, and deploying a .NET 9 API, including local development configuration and Docker support. PowerShell and Psake are used as the foundation for workflow automation.
Make sure the following tools are installed before running any scripts:
| Tool | Version / Notes |
|---|---|
| Chocolatey | Package manager for Windows |
| NuGet CLI | Install via choco install nuget.commandline |
| PowerShell Core | Recommended version: latest |
| .NET SDK | 9.0.205 or higher |
| GitHub Secrets | Required to push Docker image — ask the repo owner |
| GGSHIELD | choco install ggshield -y |
⚠️ Before running any build or deployment script, run the setup script first.
In your development appsettings.json, go to the EntityFramework section and set:
"ExecuteReBuild": true
This will:
This project includes a custom PowerShell-based toolkit that uses Psake to automate common dev tasks.
.nugetUsed for restoring packages via NuGet CLI. A global nuget.config file can be included to point to private/public sources.
.env (Root Level)Used for Docker builds and local container configuration.
ASPNETCORE_ENVIRONMENT=Docker
IMAGE_IDENTIFIER=ghcr.io/username/repo-name
IMAGE_TAG=latest
CONTAINER_NAME=courtbooker-auth
AZUREKEYVAULT__KEYVAULTURI=https://your-keyvault.vault.azure.net/
AZURE_CLIENT_ID=
AZURE_CLIENT_SECRET=
AZURE_TENANT_ID=
⚠️ This file should be listed in
.gitignoreand never committed with real secrets.
Env/development.env.ps1Used by setup.ps1 to inject variables into the local development environment.
$env:NUGET_PASSWORD = ""
$env:NUGET_USERNAME = ""
$env:AUTH_DB = "Host=;Port=;Database=;Username=;Password=;"
$env:ELASTIC = "http://:"
$env:KEYVAULT = "https://XXXXX.vault.azure.net/"
$env:JWT_KEY = ""
$env:JWT_ISSUER = "http://"
$env:JWT_AUDIENCE = "http://"
$env:ASPNETCORE_ENVIRONMENT = ""
Add this file manually. Do not commit to the repository.
These PowerShell scripts live in the /build directory and must be executed after running setup.ps1.
| Script | Description |
|---|---|
setup.ps1 | - Sets environment variables for local dev - Installs dependencies - Loads toolkit and Psake |
build-solution.ps1 | Restores and builds the .NET solution |
build-image.ps1 | Builds the Docker image |
start-container.ps1 | Deploys the image to the local Docker engine |
publish-image.ps1 | Pushes the image to GitHub Container Registry |
run-tests.ps1 | Runs the test project in the solution |
# Initial setup (only needed once)
./build/setup.ps1
# Build the solution
./build/build-solution.ps1
# Run tests
./build/run-tests.ps1
# Build Docker image
./build/build-image.ps1
# Deploy locally
./build/deploy-container.ps1
# Publish image to GitHub Container Registry
./build/publish-image.ps1