ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Track tasks, documents, meetings, and milestones for your capstone project.
EducationTypeScript · JavaScriptGitHub @FaisalALWadieOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
A capstone project management portal for a student team, advisor, and admin — Kanban task board, documentation vault, meeting logs, advisor sign-off, and a full-screen Presentation Mode for the jury.
Built with Next.js (App Router, TypeScript strict), Tailwind + shadcn/ui, and Supabase (Postgres, Auth, Storage). See PROGRESS.md for what's implemented.
2. Copy the env file and fill in your Supabase project's values (Supabase Dashboard → Project Settings → API):Read the full README ↗A capstone project management portal for a student team, advisor, and admin — Kanban task board, documentation vault, meeting logs, advisor sign-off, and a full-screen Presentation Mode for the jury.
Built with Next.js (App Router, TypeScript strict), Tailwind + shadcn/ui, and Supabase (Postgres, Auth, Storage). See PROGRESS.md for what's implemented.
Install dependencies:
npm install
Copy the env file and fill in your Supabase project's values (Supabase Dashboard → Project Settings → API):
cp .env.local.example .env.local
| Variable | Where to find it |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Project Settings → API → Project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Project Settings → API → anon/publishable key |
SUPABASE_SERVICE_ROLE_KEY | Project Settings → API → service_role/secret key (server-only — never expose this to the browser, never commit it) |
The app fails fast with a clear error naming the missing variable if any of these aren't set — it never falls back to a silent placeholder.
Apply the database schema (requires the Supabase CLI and a personal access token from https://supabase.com/dashboard/account/tokens):
npx supabase link --project-ref <your-project-ref>
npx supabase db push
This runs everything in supabase/migrations/ — tables, RLS policies, the approve_milestone RPC, and storage policies.
Seed realistic demo data (creates real Supabase Auth accounts for 1 admin, 1 advisor, 3 students):
node scripts/seed.mjs
Prints the demo login credentials when done. Safe to re-run — it skips anything already seeded.
Run the dev server:
npm run dev
Open http://localhost:3000.
node scripts/verify-rls.mjs signs in as each seeded role and confirms the database actually enforces the intended boundaries (student can CRUD their team's tasks but not approve milestones directly, advisor is blocked from direct writes but can approve via the RPC, admin sees everything). Useful after touching any migration.
next build must succeed with zero TypeScript/ESLint errors — verify locally first with npm run build.localhost:3000:
https://your-app.vercel.app)Shared password for every seeded account: GradPortal2026!
| Role | |
|---|---|
| Admin | [email protected] |
| Advisor | [email protected] |
| Student | [email protected], [email protected], [email protected] |
Anyone can also self-register at /register (choosing Student or Advisor); new accounts land unassigned until an admin assigns them to a team from /admin.