Modern Learning Management System built with Next.js 15, TypeScript, and Supabase.
- ✅ Student Management - Registration, course enrollment, payment tracking
- ✅ Course Management - Create and manage courses with exams
- ✅ Exam System - Timed exams with automatic grading
- ✅ Role-Based Access - Student, Admin, Super Admin roles
- ✅ Certificate Verification - Upload and verify certificates with unique codes
- ✅ Performance Optimized - Database indexes, API caching
- Framework: Next.js 15.5.4 (App Router)
- Language: TypeScript
- Database: PostgreSQL (Supabase)
- Authentication: Supabase Auth
- Styling: Tailwind CSS
- Caching: In-memory cache with auto-invalidation
- Node.js 18+
- npm or yarn
- Supabase account
# Clone repository
git clone <repository-url>
cd zetoe_academy
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env.local
# Add your Supabase credentials
# Run development server
npm run devVisit http://localhost:3000
# In Supabase SQL Editor
# Run: supabase/database-optimization.sqlThis creates:
- 15+ performance indexes
- Query optimization functions
- Full-text search capabilities
- 15+ indexes (composite, GIN, B-tree)
- pg_trgm for full-text search
- Pagination on all list queries
- Query optimization functions
📖 See: docs/QUERY_OPTIMIZATION_GUIDE.md
- In-memory cache with TTL
- Automatic cache expiration
- Pattern-based invalidation
- 95% faster cached responses
📖 See: docs/API_CACHING_GUIDE.md
| Script | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm start |
Start production server |
npm run lint |
Run ESLint |
zetoe_academy/
├── src/
│ ├── app/ # Next.js app router
│ │ ├── api/ # API routes
│ │ ├── dashboard/ # Student dashboard
│ │ ├── admin-dashboard/ # Admin dashboard
│ │ └── certificates/ # Certificate verification
│ └── lib/ # Utilities
│ ├── cache.ts # Caching system
│ └── swr-config.ts # Client-side cache config
├── supabase/ # Database
│ └── database-optimization.sql
└── docs/ # Documentation
├── API_CACHING_GUIDE.md
└── QUERY_OPTIMIZATION_GUIDE.md
- View enrolled courses
- Take exams
- View scores and certificates
- Dashboard access
- Create students
- Assign courses
- Set payment status
- Create exams
- View scores
- Manage students
- All admin permissions
- Create/delete admins
- System-wide access
- View admin logs
- Navigate to Admin Dashboard
- Go to Certificates section
- Upload certificate with unique code
- Certificate stored in Supabase Storage
- Visit
/certificates - Enter certificate code
- View certificate if valid
📖 See: docs/CERTIFICATE_SYSTEM_SUMMARY.md
# Install Vercel CLI
npm i -g vercel
# Deploy
vercelRequired:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
| Document | Description |
|---|---|
| API Caching | Caching implementation |
| Query Optimization | Database optimization |
| Certificate System | Certificate verification |
None at this time. Report issues in GitHub Issues.
- Fork repository
- Create feature branch
- Commit changes
- Push to branch
- Open pull request
MIT License
- Next.js team for amazing framework
- Supabase for backend infrastructure
- Playwright for testing framework
- 📧 Email: support@zetoe.com
- 📖 Documentation:
/docs - 🐛 Issues: GitHub Issues
Production Ready ✅
All features implemented and tested:
- ✅ Student management
- ✅ Course management
- ✅ Exam system
- ✅ Certificate verification
- ✅ Database optimization
- ✅ API caching
GitHub Issues Resolved:
- ✅ Database Query Optimization
- ✅ API Caching Implementation
Built with ❤️ by the Zetoe Academy Team