Skip to content

Latest commit

 

History

529 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo Logo

Ithaca Community Recovery

Ithaca Community Recovery is a non-profit organization working to serve as a community resource for members of 12 Step and other recovery-oriented groups. They offer safe and affordable event and meeting spaces for recoverers of addiction.

Table of Contents
  1. About The Project
  2. Documents
  3. Project Structure
  4. CI/CD & Automation
  5. Prerequisites
  6. Developers
  7. Versioning

About The Project

This project aims to develop internal tooling and automation to streamline ICR's event & meeting setup process.

Built With

  • Next.js React
  • Neon PostgreSQL Prisma
  • NextAuth Google Calendar Zoom
  • Vercel
  • Pagefind Marked
  • Playwright Jest

Documents

Documentation lives in docs/, organized by audience — see docs/README.md for the full index:

  • User Guide — for ICR board members using the platform day to day
  • Handoff — for ICR leadership and future maintainers: ownership, credentials, deployment, backups, support, contingency
  • Development — for developers working on the codebase: architecture, API reference, integration setup, testing

Project Structure

Folder structure

.
├── frontend      # Next.js App Router (leveraging server and client sided environments)
├── docs/         # Documentation (see above)
└── README.md

CI/CD & Automation

Everything under .github/ runs automatically on push/PR to master or on a schedule.

  • workflows/test.yml — lint, typecheck, unit, component, integration, Playwright e2e (see Running Tests below), and a doc-freshness job that fails if README.md / docs/03-development/project-structure.md cite a Node or Next.js major version that no longer matches frontend/package.json (via .github/scripts/check-doc-versions.sh)
  • workflows/codeql.yml — CodeQL static analysis for security vulnerabilities, on every PR plus a weekly scheduled scan
  • workflows/bump-node-version.yml — monthly check for a new Node.js Active LTS release; opens a PR bumping .nvmrc/package.json/test.yml if one exists (Vercel's supported versions still need a manual check before merging)
  • workflows/calver-bump.yml — monthly CalVer bump (see Versioning); opens a PR resetting PATCH to 0 on the 1st of each month
  • dependabot.yml + workflows/dependabot-auto-merge.yml — weekly dependency-update PRs; the safe-updates group (patch- and minor-level bumps, prod or dev) auto-merges once CI is green — major bumps and all GitHub Actions bumps are left for manual review, since those are the ones most likely to carry breaking changes CI doesn't always catch

Prerequisites

  • Node.js 24.x (see frontend/.nvmrc)
  • Yarn
  • A Neon Postgres project (or any Postgres instance) for DATABASE_URL

Quickstart

cd frontend
yarn install
# add a .env file — see docs/03-development/environment-variables.md for every variable needed
yarn dev

Opens at http://localhost:3000. See docs/03-development/local-setup.md for a full guided walkthrough (env vars, running the test suite, making a first change), or docs/03-development/project-structure.md and docs/03-development/integration-guides.md for architecture and per-service setup (Postgres, Google OAuth, Google Calendar, Zoom).

Running Tests

yarn lint                # ESLint (part of test:all below)
yarn lint:css             # stylelint — separate from yarn lint (part of test:all below)
yarn typecheck           # tsc --noEmit — full cross-file type-checking (part of test:all below)
yarn test:unit           # pure functions, seconds, no setup
yarn test:component      # individual components in isolation, seconds, no setup
yarn test:integration    # route handlers against an embedded Postgres instance
yarn test:e2e            # full Playwright E2E suite (needs `yarn playwright install --with-deps chromium` once)
yarn test:all            # lint + lint:css + typecheck + unit + component + integration + e2e, in that order

See docs/03-development/testing/README.md for how the suite and CI work.

Developers

Summer 2025 – Summer 2026 Developers
  • Sophie L Wang & Tuni Le
Spring 2025 Developers
  • Tech Leads: Sophie L Wang & Tuni Le
  • David Valarezo
  • Leane Ying
  • Grace Matsuoka
  • Samantha Cruz
  • Nathan Dang
  • Sheki Okwayo
  • Tanya Aravind
  • Victoria Yu
Fall 2024 Developers
  • Tech Leads: Owen Chen & Tuni Le
  • Sophie L Wang
  • Leane Ying
  • Phoebe Qian
  • Brandon Lerit
  • Alisha Varma
  • Tanvi Mavani
  • Sophie Strausberg
Spring 2024 Developers
  • Tech Lead: Joseph Ugarte
  • Mohammad Islam
  • Sophie L Wang
  • Sneha Rajaraman
  • Sanya Mahajan
  • Srija Ghosh

Versioning

This project uses CalVer (YYYY.MM.PATCH). For a detailed history of changes about across versions, please refer to our release notes.

About

Scheduling and calendar-sync app for Ithaca Community Recovery

Resources

Stars

13 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages