Full-stack online learning platform with course management, quizzes, and interactive features for graduation thesis
Wishzy
Introductionh3
Full-stack online learning platform with course management, quizzes, and interactive features for graduation thesis.
Featuresh3
Authentication & Authorization:
- Register/Login with JWT authentication
- Google OAuth 2.0 login
- Role-based access: Admin, Instructor, Student
- Profile management and instructor following
Course Management:
- Create, edit, delete courses
- Video upload via Bunny CDN
- Manage chapters and lectures
- Tag and categorize courses
- Publish/Unpublish courses
Learning:
- Video player with HLS streaming
- Auto-save learning progress
- Lecture notes
- Quizzes and assessments
- Completion certificates
Payment:
- VNPay integration
- Shopping cart and checkout
- Voucher codes
- Order history
Interaction:
- Threaded comments and replies
- Course reviews and ratings
- Wishlist
- Dashboard statistics
Search & Discovery:
- Course search
- Filter by category, price, rating
- Promotional banners
- Blog/Posts
Admin Panel:
- User management
- Course management
- Revenue statistics
- Banner and voucher management
Screenshotsh3
Tech Stackh3
Frontend
- Next.js 15.3.4 (App Router)
- React 19.2.0
- TypeScript 5
- Tailwind CSS 4
- Shadcn/ui Components
- TanStack Query (React Query)
- Zustand (State Management)
- Video.js (Video Player)
Backend
- NestJS 10
- TypeScript 5
- TypeORM
- PostgreSQL
- JWT Authentication
- Passport.js
- Swagger UI (API Documentation)
- Cloudinary (Image Upload)
- Bunny CDN (Video Streaming)
- VNPay (Payment Gateway)
DevOps
- Docker & Docker Compose
- Nginx (Reverse Proxy)
Getting Startedh3
git clone <your-repo-url>cd wishzy
cd bedocker-compose up -d --builddocker-compose exec app npm run migration:rundocker-compose exec app npm run seed
cd ../frontendcp .env.example .envpnpm installpnpm devServices:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000/api/v1
- API Docs (Swagger): http://localhost:8000/api
- PostgreSQL: localhost<5432>5432>