Skip to content

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, program detail, apply flow; management surfaces live in LFX Self Serve
  • Deployment: Kubernetes (LFX v2 cluster), Helm charts, ArgoCD GitOps
  • Auth: Auth0 (OAuth2 PKCE for users, M2M for services), validated in-service today

Authorization is expected to move to the platform's Heimdall/OpenFGA edge — see linuxfoundation/lfx-mentorship#119.

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; staging and prod pin 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

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages