Logo Lanfrica

HeavenlyGlowJourneys/penny-teacher

Domain:

educationnatural language processing

Record type:

softwaretools
Creator:
Hea
Host:
Penny — AI teaching assistant for South African classrooms (TanStack Start, Supabase, Cloudflare) # Penny **AI teaching assistant for South African classrooms.** Penny helps teachers capture marks by voice, draft report comments, and send parent messages — built for real classroom workflows, CAPS-aligned contexts, and POPIA-aware data handling. **Live app:** app.pennyteacher.co.za --- ## Screenshot --- ## Features - **Voice mark capture** — record marks hands-free during lessons - **Report comments** — AI-assisted, teacher-controlled comment drafting - **Parent messaging** — transactional email for school–home communication - **Billing** — PayFast subscriptions for South African payments - **Prep Check** — AI curriculum planning checker (modular tool) - **Oral Assessment** — voice viva assessments that verify authentic understanding --- ## Tech stack | Layer | Technology | |-------|------------| | Framework | TanStack Start + React 19 | | Routing / data | TanStack Router, TanStack Query | | Styling | Tailwind CSS 4, Radix UI, shadcn-style components | | Backend / DB | Supabase (Auth, Postgres, RLS, Storage) | | Deploy | Cloudflare Workers via Nitro | | AI | Google Gemini | | Email | Resend | | Payments | PayFast | | Package manager | Bun | --- ## Getting started ### Prerequisites - Bun (recommended) or Node.js 20+ - A Supabase project - API keys for Gemini, Resend, and PayFast (as needed) ### Setup ```bash # Clone git clone github.com cd penny-teacher # Install bun install # Configure environment cp .env.example .env # Fill in Supabase, Gemini, Resend, PayFast, and CRON_SECRET values # Run locally bun run dev ``` Open the local URL printed by Vite (usually `localhost`). ### Scripts | Command | Purpose | |---------|---------| | `bun run dev` | Local development server | | `bun run build` | Production build (Nitro → Cloudflare Worker) | | `bun run typecheck` | TypeScript check (`tsc --noEmit`) | | `bun run lint` | ESLint | | `bun run format` | Prettier format | --- ## Environment …