Ukrainian version available: README українською
Modern LMS platform for creating, selling, and consuming online courses.
TechTutor is a full-stack learning platform built with a scalable architecture.
It supports course management, payments, quizzes, and progress tracking.
| Layer | Technology |
|---|---|
| Backend | Laravel (PHP) |
| Frontend | React (SPA + SSR) |
| Database | PostgreSQL |
| Search | MeiliSearch |
| API | REST |
Frontend
Porject tooling
- Sign up / login with email
- Email verification and password reset
- OAuth login
- Purchase courses
- Watch lessons (video, text, files)
- Pass quizzes & get results
- Track learning progress
- Leave reviews & comments
- Create & manage courses
- Upload lessons & materials
- Build quizzes
- Track student progress
- View course analytics
- Manage users & roles
- Moderate content
- Monitor platform activity
- Manage payments
- Sanctum token authentication
- Email/password login
- Email verification and password reset
- OAuth login
- 2FA (optional)
- Rate limiting on auth endpoints
- CAPTCHA on registration/login
- Input validation and sanitization audit
- Protection against XSS / SQL Injection
- Profile picture upload, profile update (nickname, bio, email notification pref), and account-delete endpoint implemented on the backend
- Course search & filtering
- Responsive UI
- Notifications (Email / Push)
- Payment integration (LiqPay / Stripe)
- Analytics integration
User
Course
Module
Lesson
LessonRevision
Quiz
QuizRevision
QuizQuestion
QuizAttempt
Enrollment
Progress
Review
Comment
Payment
CourseCertificate
PublishRequest
EmailVerificationCode
PasswordResetToken
PersonalAccessToken
UserInvite
Tag
course_tag (pivot)
ContactMessage
Job
RESTful API for all core features.
- Role-based access control (RBAC)
- SSR for performance & SEO
- Modular structure (Courses → Modules → Lessons)
- Scalable service integrations
This project includes zap.yaml for local OWASP ZAP baseline automation.
Run from the project root:
docker run -t -v ${PWD}:/zap/wrk:rw ghcr.io/zaproxy/zaproxy:stable zap.sh -cmd -autorun /zap/wrk/zap.yamlNotes:
- The scan target is currently set to http://host.docker.internal:8000 in zap.yaml.
- This setup is intended for local testing and development hardening.
- Project setup (Laravel + React + PostgreSQL + Docker)
- Sanctum token authentication
- Email/password login
- Registration flow
- Current-user profile endpoint
- Logout / token revocation
- Email verification
- 6-digit email verification code flow
- Password reset flow
- OAuth login with Google
- 2FA (optional)
- Rate limiting on auth endpoints
- CAPTCHA on registration/login
- Input validation and sanitization audit
- Production security hardening
- Role-based access control (student, instructor, admin)
- Ban enforcement for protected API routes
- Course CRUD (instructor)
- Module CRUD (instructor)
- Lesson CRUD (instructor)
- Lesson content fields for text/video/file metadata
- Production-ready lesson file upload/storage pipeline
- Course publish / draft logic
- Course thumbnail & metadata
- Modular structure (Course → Modules → Lessons)
- Course catalog with database-backed search & filtering
- MeiliSearch-powered catalog indexing/search
- Course detail / preview page
- Enrollment flow
- Lesson viewer (video player, text renderer, file downloads)
- Progress tracking (per lesson, per module, per course)
- Course completion certificates
- Quiz CRUD (instructor)
- Question types (single choice, multiple choice)
- Quiz attempts & backend-calculated scoring
- Pass threshold logic
- Attempt history for students
- Quiz analytics for instructors
- Internal payment records
- Course pricing for free/paid courses
- Instructor/admin revenue reporting from internal paid records
- Admin payment monitoring dashboard
- Verified purchase state and paid-course access gating
- Purchase flow
- Receipts
- Stripe checkout session creation
- Stripe webhook verification and paid access activation
- LiqPay checkout integration (optional)
- LiqPay webhook verification (optional)
- Refund handling
- Instructor payouts
- Subscription pricing
- Course reviews & star ratings
- Lesson comments
- Comment moderation (admin)
- Review moderation (admin)
- Email notifications (enrollment, quiz results, certificates, publish requests)
- Auth email notifications (verification, password reset)
- New content email notifications
- Toast notifications (event triggered)
- In-app notifications (optional)
- Push notifications (optional)
- Course management overview
- Student progress per course
- Revenue & enrollment analytics
- Content upload & management
- User management (view, ban, role change)
- Content moderation queue
- Platform activity monitor
- Payment & revenue overview
- Student engagement metrics
- Course completion rates in instructor dashboard
- Revenue reports
- Search analytics (popular queries, zero results)
- SSR setup for public pages (catalog, course detail)
- SEO meta tags & Open Graph
- Image optimization & CDN
- Lazy loading & pagination
- Responsive UI across all pages
- Dark / light mode
- Multi-language support
- Accessibility (WCAG compliance)
- API documentation
- Tests (unit + feature)
- Seed / mock data
- CI/CD pipeline