Skip to content

NSWSESMembers/seslogin

SES Activity

SES Activity is a web app for tracking volunteer attendance with as little friction as possible. Members check in and out at a kiosk, sessions are recorded with activity categories, and reports are available for coordinators.

Features:

  • Fast check-in/out — designed for kiosk use
  • Activity categories (training, rescue, combat roles, etc.)
  • Detailed reporting
  • Automatic member import from the SES headquarters API
  • Runs on AWS Lambda + DynamoDB — scales to zero when idle

Stack: Rust (GraphQL API) · React + Relay (frontend) · AWS (Lambda, DynamoDB, SQS, CloudFront)


Getting started

Prerequisites

  • Rust (stable, via rustup)
  • Node.js >= 22
  • AWS credentials configured (for DynamoDB)

1. Configure secrets

Non-secret config lives in .env at the repo root (checked in). Create .env.secret for secrets (gitignored):

JWT_SECRET=...
SES_API_BASE_URL=...
SES_API_KEY=...

2. Configure the frontend

Copy the example env file and fill it in:

cp web/.env.local.example web/.env.local
Variable Description
VITE_BEACON_URL Base URL for the Beacon system, used to link NITC event IDs. For deployed builds, set the BEACON_URL repo variable in GitHub Actions Settings → Variables.

3. Run locally

make dev

This starts the API server, Relay compiler (watch mode), and the Vite dev server together. Or run them individually:

cd api && RUST_LOG=info cargo run --bin poem -- --enable-mutations  # API on port 8000
cd web && npm run relay -- --watch                                   # Relay compiler
cd web && npm run dev                                                 # Web dev server

Project structure

api/    Rust GraphQL backend + all Lambda binaries
web/    React/Relay frontend
infra/  Terraform for AWS infrastructure

Note: infra/ is published as a reference for the canonical seslogin.com deployment — it hardcodes the production AWS account, DNS zone, and ACM records, so terraform apply from a fork will not work without adapting bucket names, domains, and IAM resources. Use it as a worked example, not a turnkey deploy.

See SCHEMA.md for the data model and MANUAL.md for operator documentation.


Contributing

Contributions are welcome — bug fixes, improvements, or new features. See CONTRIBUTING.md for how to submit a PR and run the checks.


License

MIT

About

SES Activity is a web app for tracking volunteer attendance with as little friction as possible. Members check in and out at a kiosk, sessions are recorded with activity categories, and reports are available for coordinators.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors