{"id":30265015,"url":"https://github.com/rubelw/osss","last_synced_at":"2026-02-11T15:31:45.927Z","repository":{"id":312354637,"uuid":"1046247997","full_name":"rubelw/OSSS","owner":"rubelw","description":"Open Student Support System (K-12 SIS) — FastAPI + Keycloak + SQLAlchemy + Datalake + Ollama (AI); governance + student info.","archived":false,"fork":false,"pushed_at":"2025-12-29T18:58:18.000Z","size":959794,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-30T09:32:49.095Z","etag":null,"topics":["education","fastapi","governance","k12","keycloak","nextjs","school-management-system","sis","sqlalchemy","student-information-system"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rubelw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2025-08-28T12:07:08.000Z","updated_at":"2025-12-29T18:58:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"0fabe840-785d-4972-b2d7-8d6e84ee1d8a","html_url":"https://github.com/rubelw/OSSS","commit_stats":null,"previous_names":["rubelw/osss"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/rubelw/OSSS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubelw%2FOSSS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubelw%2FOSSS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubelw%2FOSSS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubelw%2FOSSS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rubelw","download_url":"https://codeload.github.com/rubelw/OSSS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubelw%2FOSSS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29336868,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T14:34:07.188Z","status":"ssl_error","status_checked_at":"2026-02-11T14:34:06.809Z","response_time":97,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["education","fastapi","governance","k12","keycloak","nextjs","school-management-system","sis","sqlalchemy","student-information-system"],"created_at":"2025-08-15T22:26:12.722Z","updated_at":"2026-02-11T15:31:45.889Z","avatar_url":"https://github.com/rubelw.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# (Currently in Development) Open Source School Software\n\nA community-driven, modular suite of applications for K‑12 districts. This repo is a **polyglot monorepo** that hosts multiple apps (each independently deployable) plus shared packages and infra. Use the provided templates to spin up new apps quickly.\n\n## **More Than Free — It’s a Path to the Future**\n\nThis software doesn’t just save money—it brings public schools into the modern era.  \nBuilt with the latest, most efficient development techniques, it keeps technology current while lowering long-term maintenance costs.\n\n### **Key Advantages**\n- **Cut Costs Without Compromise**  \n  100% free to use, helping schools save budget for other critical needs.\n\n- **Modernize with Confidence**  \n  Developed using the latest software engineering practices to ensure performance, security, and long-term stability.\n\n- **Fully Open-Source**  \n  Accessible to students, parents, administrators, and developers worldwide for review, improvement, and customization.\n\n- **Empowered by AI**  \n  Even non-programmers can:\n  - Generate code snippets  \n  - Add new features  \n  - Customize the system  \n  …all without advanced technical skills.\n\n- **Secure by Design**  \n  Every contribution is automatically scanned for malicious code and vulnerabilities before integration.\n\n- **Test Before You Commit**  \n  Users can run and evaluate updated software locally to ensure it meets their needs before adoption.\n\n- **Collaborative \u0026 Evolving**  \n  A global community works together to continuously improve and adapt the platform to meet changing school requirements.\n\n\n\u003e **Highlight:** This repository includes an application called **School Board Management Software** (agendas, packets, policies, minutes, votes, and a public portal). See below for details.\n\n---\n\n## Contents\n\n* [Goals](#goals)\n* [Repository Layout](#repository-layout)\n* [App Catalog](#app-catalog)\n* [Getting Started (Dev)](#getting-started-dev)\n* [App Template](#app-template)\n* [School Board Management Software](#school-board-management-software)\n* [Quality, Security \u0026 Compliance](#quality-security--compliance)\n* [Contributing](#contributing)\n* [Releases \u0026 Versioning](#releases--versioning)\n* [License](#license)\n* [Acknowledgements](#acknowledgements)\n\n---\n\n## Goals\n\n* **Open standards first:** accessible, interoperable, export-friendly.\n* **District reality:** support public meetings/open records, records retention, FERPA‑aware data handling.\n* **Composable:** each app should be useful alone, but better together via shared packages.\n* **Operationally sane:** containerized, IaC‑ready, observable.\n\n---\n\n## Repository Layout\n\n```\nopen-source-school-software/\n├─ apps/\n│  ├─ school-board-management/          # featured app (see below)\n│  ├─ student-information-system/       # template (placeholder)\n│  ├─ facilities-booking/               # template (placeholder)\n│  └─ communications-portal/            # template (placeholder)\n├─ packages/\n│  ├─ ui/                               # shared UI components (optional)\n│  └─ shared/                           # shared libs (types, utils)\n├─ infra/\n│  ├─ docker/                           # docker-compose.*.yml for local dev\n│  └─ terraform/                        # VPC, DB, object storage (baseline)\n├─ .github/                              # workflows, issue templates, CODEOWNERS\n├─ CODE_OF_CONDUCT.md\n├─ SECURITY.md\n├─ LICENSE\n└─ README.md (this file)\n```\n\n\u003e This repo embraces **polyglot** development (e.g., TypeScript, Python, Go). Each app documents its own stack and requirements.\n\n---\n\n## App Catalog\n\n| App                                   | Path                               | Status   | Primary Tech                               | What it does                                              |\n| ------------------------------------- | ---------------------------------- | -------- | ------------------------------------------ | --------------------------------------------------------- |\n| **School Board Management Software**  | `apps/school-board-management/`    | **MVP**  | React/TypeScript, FastAPI/Python, Postgres | Agendas, packets, votes, policies, minutes, public portal |\n| Student Information System (template) | `apps/student-information-system/` | Template | *(choose)*                                 | Enrollment, attendance, grades, transcripts               |\n| Facilities Booking (template)         | `apps/facilities-booking/`         | Template | *(choose)*                                 | Room/field scheduling, approvals, fee schedules           |\n| Communications Portal (template)      | `apps/communications-portal/`      | Template | *(choose)*                                 | Posts, alerts, newsletters, translation workflows         |\n\n---\n\n## Getting Started (Dev)\n\n### Prereqs\n\n* Git, Docker (or Podman), Docker Compose\n* For app stacks: Node LTS (if web UI), Python 3.12+ (if FastAPI), or as specified\n\n### Quick start\n\n```bash\n# clone\ngit clone https://github.com/\u003cyour-org\u003e/open-source-school-software.git\ncd open-source-school-software\n\n# copy env templates (root + app-specific)\ncp .env.example .env || true\ncp apps/school-board-management/.env.example apps/school-board-management/.env || true\n\n# run local stack (database, API, web)\ndocker compose -f infra/docker/docker-compose.dev.yml up --build\n```\n\n\u003e Visit each app's README for detailed commands, migrations, and seed data.\n\n---\n\n## App Template\n\nCreate new apps under `apps/\u003cyour-app\u003e/`. Use this **copy‑paste template** inside your app's `README.md` and fill in the blanks.\n\n````markdown\n# \u003cApp Name\u003e\n\n## Overview\nShort paragraph on what the app does and the problem it solves.\n\n## Features\n- [ ] Core feature 1\n- [ ] Core feature 2\n- [ ] Accessibility (WCAG 2.2 AA)\n\n## Architecture\n- **Frontend:** \u003ce.g., React + Vite + Tailwind\u003e\n- **Backend:** \u003ce.g., FastAPI + SQLAlchemy\u003e\n- **Data:** \u003ce.g., Postgres\u003e\n- **Storage \u0026 Search:** \u003ce.g., S3-compatible, OpenSearch\u003e\n\n## Domain Model\n_Describe key entities and relationships, or include an ERD._\n\n## API\nLink to `/docs` or describe main endpoints.\n\n## Setup\n```bash\n# local\ncp .env.example .env\nmake up  # or docker compose up\n````\n\n## Configuration\n\n| Variable       | Example            | Purpose               |\n| -------------- | ------------------ | --------------------- |\n| `DATABASE_URL` | `postgresql://...` | Primary DB connection |\n| `API_SECRET`   | `devsecret`        | Local auth/dev key    |\n\n## Testing\n\n```bash\nmake test\n```\n\n## Security \u0026 Compliance\n\n* Data classification: Public / Internal / Confidential / Regulated\n* PII handling: redaction, logging policy\n* AuthN/Z: SSO (OIDC/SAML) support (planned/implemented)\n\n## Deployment\n\n* Docker image(s): `\u003cregistry\u003e/\u003capp\u003e:\u003ctag\u003e`\n* Terraform module(s): `infra/terraform/*`\n\n## Roadmap\n\n* [ ] Item A\n* [ ] Item B\n\n## License\n\nInherits repository license unless overridden.\n\n````\n\n---\n\n## School Board Management Software\n**Path:** `apps/school-board-management/`\n\n### Scope (MVP)\n- **Meetings:** agenda builder, attachments, consent calendar, packet PDF, minutes generation\n- **Motions \u0026 Votes:** roll‑call capture, tallies, export\n- **Policies:** library, versions, redline, adoption workflow, public search\n- **Public Portal:** ADA‑compliant website for agendas, minutes, policies\n\n### Suggested Stack\n- **Frontend:** React + TypeScript + Vite + Tailwind\n- **Backend:** FastAPI (Python) + SQLAlchemy + Alembic\n- **DB:** PostgreSQL; **Files:** S3‑compatible storage (versioned)\n- **Search:** OpenSearch/Elasticsearch (optional in MVP)\n- **Auth:** Local dev JWT; ready for Keycloak/Entra/Google SSO\n\n### Local Dev (example)\n```bash\ncd apps/school-board-management\ncp .env.example .env\ndocker compose up --build\n# API → http://localhost:8000/docs\n# Web → http://localhost:5173\n````\n\n### Initial Entities (example)\n\n* `Meeting(id, title, start_at, location, status)`\n* `AgendaItem(id, meeting_id, parent_id, order_no, consent, executive_session)`\n* `Motion(id, meeting_id, agenda_item_id, text, status)`\n* `Vote(id, motion_id, voter_user_id, choice, timestamp)`\n* `Policy(id, code, title, status, category)`\n* `PolicyVersion(id, policy_id, version_no, body_md, adopted_on, effective_on)`\n\n\u003e A prebuilt FastAPI/React scaffold is available in this app folder; extend as needed.\n\n---\n\n## Quality, Security \u0026 Compliance\n\n* **Accessibility:** target WCAG 2.2 AA for public pages and PDFs.\n* **Security:** OWASP ASVS‑inspired checklists, SAST/DAST in CI, dependency scans.\n* **Privacy:** follow least‑privilege, data minimization, and provide export tooling for records requests.\n* **Observability:** structured logs, traces, metrics; dashboards included in `packages/`.\n* **Backups \u0026 DR:** document RPO/RTO per app; use versioned object storage for published records.\n\n### Issue Labels (suggested)\n\n`good first issue`, `help wanted`, `a11y`, `security`, `infra`, `api`, `frontend`, `backend`, `docs`.\n\n---\n\n## Contributing\n\n1. Read the [CODE\\_OF\\_CONDUCT.md](./CODE_OF_CONDUCT.md) and [SECURITY.md](./SECURITY.md).\n2. Create a feature branch: `feat/\u003carea\u003e-\u003cshort-desc\u003e`.\n3. Use **Conventional Commits** (`feat:`, `fix:`, `docs:`…).\n4. Add/Update tests and docs.\n5. Open a PR with a clear description and screenshots where helpful.\n\nWe use ADRs (Architecture Decision Records). New decisions go under `docs/adrs/`.\n\n---\n\n## Releases \u0026 Versioning\n\n* **Semantic Versioning** per app (e.g., `school-board-management@v0.3.0`).\n* GitHub Releases include changelogs and migration notes.\n\n---\n\n## License\n\nThis repository is designed to work with either **Apache‑2.0** (permissive) **or** **AGPL‑3.0** (strong copyleft) depending on your goals. By default, we recommend **Apache‑2.0** for maximum adoption.\n\n\u003e Ensure you keep the `LICENSE` file at the repo root updated and include notices in downstream distributions. If you plan to dual‑license (e.g., AGPL + Commercial), add a `LICENSE-ENTERPRISE` file and a `NOTICE` file.\n\n---\n\n## Acknowledgements\n\nInspired by the needs of public school districts for transparent governance and modern, accessible software. Thanks to all contributors and the civic‑tech community.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubelw%2Fosss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frubelw%2Fosss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubelw%2Fosss/lists"}