Skip to content
youngo-consitutencyPublic

About

Open-source coordination tools for YOUNGO: membership, working groups, events, and shared work.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

293 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

YOUNGO Hub

A shared space for YOUNGO members to find groups, attend events, share resources and work on proposals, decisions and elections.

What is here

  • Public information about YOUNGO, its working groups, youth conferences and resources.
  • Member accounts, induction, group workspaces, opportunities and policy contributions.
  • Decision-making processes, voting, elections and operational requests, with access based on membership and assigned responsibilities.
  • Review tools for membership and content teams. There is no admin UI — staff operations run through the Payload local API (terminal scripts) or direct database access.

The resource collection is part of the Hub. Existing source credits and review records remain attached to imported material.

How it is built

React draws the member interface in src/member/, routed through the Next.js App Router. Next.js runs the website and server. Payload manages accounts, content and access checks — deliberately without its admin panel; staff work happens through terminal scripts (payload local API) or the database. PostgreSQL stores the records. Server code and access checks are in src/.

The separate content service lets authorised assistant tools use the Hub’s API. It does not receive database credentials.

Run locally

Use Node.js 22.13 or later in the Node 22 series, or Node 24, and PostgreSQL.

git clone https://github.com/youngo-consitutency/hub.git
cd hub
npm ci
docker run -d --name youngo-pg -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=youngo_dev -p 5433:5432 postgres:16
export DATABASE_URL='postgres://postgres:postgres@localhost:5433/youngo_dev'
export PAYLOAD_SECRET="$(openssl rand -hex 32)"
npm run migrate
npm run dev

Open http://localhost:3000. Keep PAYLOAD_SECRET stable between sessions and private. Use a separate development database; do not run migrations against an existing member database without a tested migration plan.

npm run check
npm test

check runs lint and a production build, including type checks. Tests need the matching database and server; they create their own accounts. Set TEST_BASE_URL to use a different local port. See local development.

Optional environment variables:

  • SENTRY_DSN / NEXT_PUBLIC_SENTRY_DSN — error tracking (server and browser). Events are scrubbed of credentials and member-identifying fields before leaving the process.
  • CRON_SECRET — bearer token for GET /api/cron/notifications-drain, the scheduled notification-queue backstop (wired in vercel.json; Vercel sends the secret automatically).
  • SMTP_URL or SMTP_HOST/SMTP_PORT/SMTP_USER/SMTP_PASS + EMAIL_FROM — outbound email; broadcasts are queued in notification_outbox and delivered asynchronously with retries.
  • VAPID_PUBLIC_KEY/VAPID_PRIVATE_KEY/VAPID_SUBJECT — web push delivery.

Demo data

The hosted demo uses the existing youngo-hub Vercel project and a separate database of fictional accounts and content. The interface always loads records through the normal API; there are no bundled fictional listings or sign-in shortcuts. See demo environments for setup, delivery controls and account handling.

Licence

GPL-3.0. Third-party notices still apply. The package’s inherited MIT label remains unresolved.

About

Open-source coordination tools for YOUNGO: membership, working groups, events, and shared work.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages