Skip to main content
The Consolidated School & Youth Development Plan is a Next.js App Router application that principals and authorized District 79 staff use to write, copy, compare, review, and submit plans for each academic year.

Quickstart

Run the app locally with MongoDB, Google OAuth, and a seeded user.

School-year workflow

Copy 2025-2026 answers into a 2026-2027 draft, then archive last year.

API reference

Session-authenticated REST routes for forms, users, and Super Admin tools.

Audit logs

Filter, search, and export the Super Admin audit table and the users roster.

System health

Super Admin snapshot of API, MongoDB size, Redis, and env checklist.

School catalog

Super Admin list of schools for new plans and user dropdowns.

Data models

Mongoose schemas for users, schools, plans, question bank, comments, and audit logs.

Troubleshooting

401/403/429, OAuth bounce, Redis, and role-preview FAQ.

What this system does

  • Stores one school plan per school per academic year (YYYY-YYYY).
  • Super Admins maintain a school catalog used by new-plan and user dropdowns.
  • Renders plan sections from a published question bank (FormTemplate), with src/data/formQuestions.json as fallback.
  • Copies all answers when duplicating a plan into the next year. Reviews, comments, and sharing are not copied.
  • Locks archived years as read-only after district rollover.
  • Restricts sign-in to pre-registered @schools.nyc.gov accounts via Google OAuth.
  • Gives Super Admins a System page (/admin/system) for API, MongoDB, and Redis health.

Stack

Non-negotiable data contract

Answers are always stored at:
Do not rename question IDs, delete questions that already have answers, or rewrite formData during question-bank edits. Existing plans keep the questionBankVersion they were created with.
Super Admin (level 5) is the only role that can publish the question bank, run year rollover, manage the school catalog, manage district-wide submissions/goals, add review comments, and open System health.