Premium digital yearbook & alumni memory platform for African universities — Next.js 14 + Firebase
# CampuxLegacy
**Preserving the story of every graduating class — a premium digital yearbook for African universities.**
🌐 **Live at **
CampuxLegacy turns once-in-a-lifetime graduation moments into a lasting digital archive. Verified profiles, written memories, goodwill messages — captured, moderated, and cryptographically sealed when a class graduates.
---
## Table of contents
- Highlights
- Tech stack
- Quick start
- Project structure
- Features
- Architecture
- Routes
- Deployment
- License
---
## Highlights
- **Next.js 14 (App Router)** with TypeScript, Tailwind, Framer Motion
- **Firebase** for Auth, Firestore, and Storage on the **Spark (free)** plan
- **Vercel** hosts the Next.js app — SSR + API routes on the free Hobby tier
- **Role-based access** via Firebase custom claims (`superadmin`, `university_admin`, `rep`, `student`, …)
- **Server-side session cookies** signed by the Admin SDK — no raw ID tokens in the browser
- **Premium UI** — magazine-style graduate profiles, animated reveals, ⌘K command palette, skeleton loading states
- **Tamper-evident sealing** — every approved class snapshotted into an immutable archive with a SHA-256 manifest
## Tech stack
| Layer | Tech |
|---|---|
| Framework | Next.js 14 (App Router) · React 18 · TypeScript 5 |
| Styling | Tailwind CSS 3 · Framer Motion · Radix UI primitives |
| Data | Cloud Firestore (nested schema) · Cloud Storage |
| Auth | Firebase Auth · session cookies · custom claims |
| Hosting | Vercel (Next.js SSR + API routes) |
| Data services | Firebase Spark (Auth · Firestore · Storage) |
| CI/CD | Vercel (auto-deploy on push) · GitHub Actions (rules sync) |
## Quick start
```bash
cd app
npm install
npm run dev
```
Opens at in **demo mode** with seeded data — no Firebase project required.
To wire up real Firebase, copy `app/.env.local.example` → `app/.env.local` and fill in your project credentials. Full env reference in `app/README.md`.
## Project structure
```
.
├── app/ …