TimeForCode
About this project
Open-source software powers a significant portion of modern software infrastructure, yet most maintainers work without any formal support from the companies that depend on their work. TimeForCode tackles that asymmetry head-on: organisations register the developer hours they are willing to donate, open-source projects list what they need, and the platform handles the matchmaking, tracking, and impact reporting.
As a software engineer, the project is interesting beyond its social mission. It is a full-stack .NET application with a realistic, distributed architecture — OAuth 2.0 authentication backed by GitHub, an ASP.NET Core API layer, a Blazor frontend, MongoDB for persistence, and Azure-hosted infrastructure described entirely in Bicep. It is a good case study for how these pieces fit together in a production-ready project.
Key features
- GitHub OAuth 2.0 login with internal JWT issuance and refresh
- Project registration: publish, list, view, and unpublish GitHub repositories
- Donation management and contribution tracking
- Blazor frontend for donors, contributors, and maintainers
- Docker Compose and Podman local development setup
- Azure App Service deployment with Bicep infrastructure-as-code
- SonarCloud integration for continuous code quality monitoring
- Architecture documented in the Arc42 format
Getting started
Clone the repository and start the full stack locally with a single script:
git clone https://github.com/wouterfennis/TimeForCode.git
cd TimeForCode
.\scripts\start-local.ps1
The script starts all services via Podman Compose. An identity-provider mock is included so you do not need a real GitHub OAuth app for local development. See the README for the full setup guide.