Skip to content

wouterfennis/TimeForCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

TimeForCode

Continuous Integration Quality Gate Status Code Smells Coverage Vulnerabilities

TimeForCode is a community platform that connects companies and individuals willing to donate developer time to open-source projects. Organizations pledge hours, open-source projects list their needs, and the platform handles matchmaking, tracking, and impact reporting.

Full documentation lives in docs/.


Table of Contents


About the Project

TimeForCode makes it easy for companies to give back to open source in a structured, transparent way. Rather than ad-hoc contributions, organizations register their available developer hours, choose open-source projects to support, and contributors log time against those donations. Projects get the help they need; companies get a transparent record of their open-source investment.

This repository contains:

  • Authorization API — OAuth 2.0 login via GitHub, JWT issuance and refresh.
  • Donation API — Project registration, donation management, and contribution tracking.
  • Website — Blazor frontend for donors, contributors, and project maintainers.
  • Infrastructure — Azure Bicep deployment templates and Docker Compose local setup.
  • Documentation — Architecture (Arc42), product requirements, and implementation guides.

Current Status

The platform is under active development. The following areas are production-ready or near-complete:

  • GitHub OAuth 2.0 authentication with internal JWT issuance and refresh.
  • User account creation and linking to external identity providers.

The following areas are in progress:

  • Project registration and the donation lifecycle.
  • Contributor hour allocation and time tracking.
  • Matchmaking between donated hours and project needs.
  • Reporting and impact dashboards.

See docs/current/capability-status.md for the full implementation status.


Tech Stack

Concern Technology
Frontend Blazor (.NET)
Backend ASP.NET Core (.NET)
Database MongoDB
Authentication OAuth 2.0 (GitHub), JWT (RSA-signed)
Containerisation Podman, Docker Compose
Infrastructure Azure App Service, Azure Bicep (IaC)
CI/CD GitHub Actions
Code quality SonarCloud
API documentation Swagger / OpenAPI

Getting Started

Prerequisites

  • Podman 4.x or later (Docker Desktop is not used in this project)
  • .NET 10 SDK (for running tests and local development outside containers)

Windows: After installing Podman, open a new terminal and initialise the Podman machine once:

podman machine init
podman machine start

Run locally

podman compose up --build
Service URL
Website http://localhost:8083
Authorization API http://localhost:8080
Donation API http://localhost:8082
Identity Provider Mock http://localhost:8081

Verify the stack

A smoke-test script checks every service and walks through the full authentication flow:

.\scripts\smoke-test.ps1

All 17 checks should report [PASS]. The script exits with code 0 on success.

See docs/current/deployment-status.md for environment details and configuration.


Contributing

Contributions are welcome. Please read CONTRIBUTING.md and the Code of Conduct before submitting a pull request.

Before submitting:

  • Ensure all automated checks and tests pass.
  • Document any new functionality or API changes in the relevant docs/ file.
  • Any architectural change must update the relevant Arc42 section.

License

Distributed under the MIT License. See LICENSE for more information.


Contact

Wouter Fennis — @wouterfennis

About

An initiative aimed at connecting companies and individuals willing to donate their time and skills to open-source projects. This repository contains the software that powers the TimeForCode platform, including the website, backend, and supporting documentation.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors