Skip to content

About

LFX Mentorship monorepo (UI + backend)

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

LFX Mentorship

The LFX Mentorship platform — a rewrite of the legacy CommunityBridge Mentorship system (jobspring + lfx-mentorship-upgrade), following the architecture proven by the Crowdfunding rewrite.

Status

In implementation. The architecture proposal is approved and the backend and public site are being built:

Architecture

  • Backend: Go (Chi), PostgreSQL on the shared LFX v2 RDS, layered domain/service/handler/infrastructure design
  • Frontend: Nuxt 4 (Vue 3) SSR public site — discovery and program detail; applying and all management live in LFX Self Serve
  • Deployment: Kubernetes (LFX v2 cluster), Helm charts, ArgoCD GitOps
  • Auth: behind the LFX v2 gateway — Heimdall authorizes each route against OpenFGA, and the backend accepts only Heimdall-issued JWTs. Users sign in with Auth0 through Self Serve.

Authorization design: docs/rewrite/04-authorization-model.md and docs/rewrite/05-heimdall-gateway.md; rollout status: docs/heimdall-fga-implementation.md.

Local development

Start a local Postgres first (from the repo root) — it listens on 5433 to avoid clashing with a system Postgres on 5432:

docker compose up -d     # Postgres only; `down -v` wipes the volume

Then, from backend/ — with DATABASE_DSN in backend/.env pointing at it:

make db-migrate   # apply migrations (refuses any non-localhost DATABASE_DSN)
make run          # start the API on :8080
make test         # unit tests
make lint

Running cmd/program-funding-stats-sync against this database populates the program funding stats table locally.

Frontend (from frontend/) — requires Node 22+ and pnpm:

pnpm install
pnpm dev          # http://localhost:3000
pnpm lint
pnpm format:check

Deployment

Both services ship as container images and Helm charts:

Component Image Chart
Backend ghcr.io/linuxfoundation/lfx-mentorship-backend backend/charts/lfx-mentorship-backend
Frontend ghcr.io/linuxfoundation/lfx-mentorship-frontend frontend/charts/lfx-mentorship-frontend

A push to main publishes images tagged development, which the dev environment tracks automatically. A v*.*.* tag publishes semver-tagged images plus signed OCI charts; prod pins those chart versions, so promoting a release is a version-bump PR in lfx-v2-argocd.

Database migrations run automatically as a Helm pre-install/pre-upgrade hook (cmd/migrate), so schema changes land before new pods serve traffic.

License

This project is licensed under the MIT License.

About

LFX Mentorship monorepo (UI + backend)

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages