Context: Issues derived from the AI‑Powered Student Success Analytics PRD.
Use: This file is machine‑parsable by Cursor and easy to convert into gh issue create commands.
Convention: Each issue block is delimited by --- and includes keys: Title, Labels, Estimate, and Body (GitHub‑flavored Markdown).
Priority levels: P0 (Must‑Have), P1 (Nice‑to‑Have), P2 (Stretch)
You can script creation like:
# Example: create first issue block manually
gh issue create --title "MVP data schema & seed AR/PDP sample" --body "$(awk '/^---/{f++} f==1{print}' hackathon_github_issues.md | sed '1,4d')" --label "priority:P0" --label "area:data" --label "type:feature" --label "hackathon"(Or let Cursor generate a script to iterate over blocks.)
Title: MVP data schema & seed AR/PDP sample in Supabase Labels: ["priority:P0","area:data","type:feature","hackathon","mvp"] Estimate: 2h Body:
Define a minimal relational schema in Supabase to hold PDP/AR-like data (students, terms, courses, enrollments, outcomes/DFWI). Seed with a small synthetic sample for each institution.
Unblocks every downstream feature (dashboards, NLQ, baseline ML). Supabase provides instant REST/GraphQL APIs.
- Tables created in Supabase for:
students,terms,courses,enrollments,outcomes_dfwi. - Sample rows loaded for KCTCS, Bishop State, Akron.
- README shows Supabase setup & connection details.
- Create Supabase project and SQL migrations.
- Write a loader script to insert sample CSVs.
- Provide ERD diagram (exported PNG).
Full PDP spec parity.
Title: ETL loader for CSV (local) → Supabase Labels: ["priority:P0","area:data","type:feature","hackathon","etl"] Estimate: 2h Body:
Minimal Python ETL script that loads local CSV into Supabase from /data/*.csv using Supabase client library.
Consistent repeatable load to refresh the prototype quickly during the hackathon.
make loadorpython scripts/load_csv.pyingests all CSVs to Supabase.- Logs rows upserted per table.
- Idempotent (can re-run without dupes).
- Implement CSV reader + UPSERTs using Supabase Python client.
- Store Supabase credentials in
.env. - Document in README.
Title: PDP pre‑submission validator (lightweight) Labels: ["priority:P0","area:data","type:tooling","hackathon"] Estimate: 1.5h Body:
Python validator that checks common PDP formatting issues (required columns present, types OK, no nulls in keys).
Addresses PRD callout for reducing latency from PDP rejections.
- CLI:
python tools/pdp_validate.py path/to/file.csv-> clear pass/fail + line counts. - Unit tests for 3 common error cases.
- Define minimal rules (YAML) and validator.
- Add sample bad file in
/fixtures.
Title: Supabase API setup & custom Edge Functions Labels: ["priority:P0","area:backend","type:feature","hackathon","api"] Estimate: 2h Body:
Configure Supabase auto-generated REST API and create custom Edge Functions for complex queries:
/metrics/retention?term=.../metrics/gateway_completion?course_id=.../students/at_risk?limit=...
Supabase provides instant CRUD APIs; Edge Functions handle custom business logic for dashboard and NLQ layer.
- Supabase REST API configured with RLS policies.
- Custom Edge Functions deployed for complex metrics.
- Returns JSON from Supabase queries.
- Configure Supabase API settings & auth.
- Implement Edge Functions for custom metrics.
- Test API endpoints with Postman/curl.
Title: React dashboard (MVP) with 3 core widgets Labels: ["priority:P0","area:frontend","type:feature","hackathon","ui"] Estimate: 3h Body:
A simple React (Vite) dashboard that calls the Supabase API and shows:
- Retention % by cohort/term
- Gateway course completion %
- DFWI by course
Visual proof of value for judges; matches PRD core KPIs.
- Local dev:
npm run devworks. - Charts render from Supabase API, not hard-coded.
- Institution switcher (dropdown) filters data.
- Supabase JS client integrated.
- Set up project with Tailwind + Supabase client.
- Charting lib (Recharts).
- Minimal routing + error states.
Title: NLQ stub: natural‑language → SQL (rule‑based) Labels: ["priority:P0","area:ai","type:feature","hackathon","nlq"] Estimate: 2h Body:
Implement a rule‑based mapper (Supabase Edge Function or Python service) for whitelisted queries (e.g., "retention last term", "DFWI for COURSE101"). Avoids full LLM dependency for MVP.
Demonstrates AI‑assisted experience in 24h.
- Edge Function or endpoint
/nlq?q=...returns JSON with the matched metric + underlying query used. - Support 5–7 canonical phrasings.
- Leverages Supabase queries for data fetching.
- Define patterns → Supabase query templates.
- Reuse existing metrics queries.
Free‑form arbitrary SQL generation.
Title: Baseline at‑risk score (heuristic) Labels: ["priority:P0","area:ml","type:feature","hackathon","mvp"] Estimate: 2h Body:
Compute a naive "at‑risk" score per student using simple features: prior D/F/W/I counts, gateway completion, credits completed.
Delivers predictive flavor without long model training.
- Supabase view or Edge Function for
/students/at_riskreturns top N with score & reasons. - Document formula in README.
- Create Supabase SQL view or stored function to compute score.
- Expose via Edge Function or direct RPC call.
Title: Weekly refresh job (cron) — simulated Labels: ["priority:P0","area:platform","type:chore","hackathon","ops"] Estimate: 1h Body:
Add a containerized cron (or watch) that re-runs ETL loader on a schedule (simulate “weekly” as every 5 minutes in dev).
Matches PRD “weekly refresh” expectation.
- Job logs visible in
docker compose logs. - Re-loads CSVs without downtime.
- Add lightweight scheduler container.
- Document how to toggle frequency.
Title: Supabase Auth setup (optional for MVP) Labels: ["priority:P1","area:security","type:feature","hackathon"] Estimate: 1.5h Body:
Set up basic Supabase authentication with email/password or magic link for demo purposes.
Demonstrates security best practices and leverages Supabase's built-in auth.
- Supabase Auth configured with at least one provider.
- Login/logout flow in React UI.
- RLS policies protect sensitive data.
- Enable Supabase Auth in project settings.
- Implement login UI component.
- Configure basic RLS policies.
Title: Role‑based views (very light) Labels: ["priority:P0","area:security","type:feature","hackathon","mvp"] Estimate: 1h Body:
UI visibility toggles for 2 roles: Advisor (show at‑risk list) and Leadership (show ROI/retention charts). Leverage Supabase Auth user metadata for roles or use .env ROLE=advisor|leadership for MVP.
Demonstrates accessibility angle with minimal IAM setup.
- Role-based widget visibility (from Supabase Auth or
.env). - Document behavior.
Title: FERPA/PII hygiene pass (MVP) Labels: ["priority:P0","area:compliance","type:chore","hackathon"] Estimate: 1h Body:
Ensure sample data is synthetic. Mask or suppress direct identifiers in UI/API by default (use internal IDs).
Aligns with compliance best practices.
- No student names/SSNs exposed.
- UI shows anonymized IDs only.
- README lists data provenance.
Title: Demo script & screenshots Labels: ["priority:P0","area:docs","type:documentation","hackathon"] Estimate: 1h Body:
Short script for a 5–7 minute demo + 4 screenshots of key widgets.
Ensures a tight, rehearsed final presentation.
DEMO.mdwith talk track + commands./shots/*.pngadded.
Title: One‑page ROI summary per institution Labels: ["priority:P1","area:docs","type:documentation","hackathon"] Estimate: 1h Body:
Brief write‑ups mapping dashboard value to each institution (KCTCS, Bishop State, Akron) and their use cases.
docs/roi_kctcs.md,docs/roi_bishop_state.md,docs/roi_akron.md
Title: Course sequence insight (DFWI by combo) — static query Labels: ["priority:P1","area:data","type:feature","hackathon"] Estimate: 1.5h Body:
Provide a precomputed Supabase view for DFWI by common course combinations (top 10 combos) and expose via API.
- Supabase SQL view + accessible via REST API + UI table widget.
Title: Email export (CSV) of at‑risk list Labels: ["priority:P1","area:frontend","type:feature","hackathon","export"] Estimate: 1h Body:
Button on Advisor view to export current at‑risk table as CSV.
- Downloads CSV reflecting current filters.
Title: Health & diagnostics page Labels: ["priority:P1","area:platform","type:chore","hackathon","ops"] Estimate: 1h Body:
Small UI page that checks Supabase connection status and displays last ETL refresh timestamp.
- Green/Red indicators with timestamps.
- Shows Supabase API connectivity status.
Title: LLM‑backed NLQ (behind a flag) Labels: ["priority:P2","area:ai","type:feature","hackathon","nlq"] Estimate: 3h Body:
Swap the rule‑based NLQ with an LLM call if ENABLE_LLM=1. Keep same query whitelist.
- Feature flag respected.
- Logs prompt + chosen SQL safely.
Title: Simple retention baseline model (logistic regression) Labels: ["priority:P2","area:ml","type:feature","hackathon"] Estimate: 3h Body:
Train a fast sklearn logistic regression on sample historical features from Supabase to classify "retained next term" (for demo).
- Training script with saved coefficients.
- Edge Function or batch job to compute predictions and store back in Supabase.
Title: PowerBI/Embedding spike (notes only) Labels: ["priority:P2","area:integration","type:spike","hackathon"] Estimate: 1h Body:
Investigate feasibility of embedding Supabase API data into PowerBI/Looker equivalents; capture notes and blockers for post‑hackathon.
spikes/powerbi_embed.mdcommitted.- Document Supabase REST API → PowerBI connector options.
Title: Packaging & one‑command bootstrap Labels: ["priority:P1","area:devex","type:chore","hackathon"] Estimate: 1h Body:
Single command (make dev or ./bootstrap.sh) to set up environment and start the UI (Supabase is cloud-hosted).
- Works on clean machine with Node + Python preinstalled.
- Configures
.envwith Supabase credentials. - README updated.
Title: README (root) with setup & architecture Labels: ["priority:P0","area:docs","type:documentation","hackathon","mvp"] Estimate: 1h Body:
Clear, concise README: architecture diagram showing Supabase integration, services, how to run, and demo flow.
- Architecture diagram image (showing Supabase as backend/DB).
- Copy‑paste commands for local run.
- Supabase setup instructions.
- Link to DEMO.md.