A full-stack project portfolio platform for MAM 1 Paciran students, built to give students a real place to publish, showcase, and get feedback on the projects they build in class β not a static gallery, but a living platform with profiles, stars, and discovery.
Built and maintained by Aqil Aziz, educator at MAM 1 Paciran Lamongan.
- Project publishing β students create profiles and publish projects with descriptions, links, and metadata
- Discovery β a public explore page surfaces published projects, ranked by stars
- Social proof β students can star each other's projects, encouraging engagement and friendly competition
- Per-student pages β each student gets a public profile (
/p/[username]) showcasing their work - Dashboard β authenticated area for managing your own projects
- Auth β full email/password flow with registration, login, and password recovery
| Layer | Choice | Why |
|---|---|---|
| Framework | Next.js 15 (App Router) | Server components for fast, SEO-friendly project pages |
| Database & Auth | Supabase (free tier) | Postgres + auth + storage in one, zero infra cost β important for a school project |
| Styling | Tailwind CSS | Fast iteration, consistent design system |
| Hosting | Vercel | Static-friendly, generous free tier |
| CI | GitHub Actions | Keepalive workflow to prevent Supabase free-tier project pausing |
The whole stack runs on free tiers by design β this is a real platform for a real school with a real budget of zero.
src/app/
βββ page.tsx β homepage with featured projects
βββ explore/ β public project discovery
βββ p/[username]/ β public student profile pages
βββ projects/[slug]/ β individual project pages
βββ dashboard/ β authenticated project management
βββ auth/, login/,
β register/,
β forgot-password/ β full auth flow
βββ api/ β server actions and route handlers
supabase/
βββ migrations/ β versioned Postgres schema
βββ functions/ β edge functions
npm install
cp .env.local.example .env.local
# fill in your Supabase project URL and anon key
npm run devApp runs at http://localhost:3000.
Schema is managed via Supabase migrations in supabase/migrations/. To set up a fresh Supabase project:
supabase db pushProduction-ready and in active use at MAM 1 Paciran. This is a working platform, not a demo β students are publishing real projects on it.
MIT