Skip to content

smurf11k/tech-tutor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License: MPL 2.0 Status: Under Development

TechTutor

Modern LMS platform for creating, selling, and consuming online courses.


Overview

TechTutor is a full-stack learning platform built with a scalable architecture.
It supports course management, payments, quizzes, and progress tracking.


Tech Stack

Layer Technology
Backend Laravel (PHP)
Frontend React (SPA + SSR)
Database PostgreSQL
Search MeiliSearch
API REST

Additional packages

Frontend
Build tooling

Features

Students

  • Sign up / login with email
  • Email verification and password reset
  • OAuth login (planned)
  • Purchase courses
  • Watch lessons (video, text, files)
  • Pass quizzes & get results
  • Track learning progress
  • Leave reviews & comments

Instructors/Teachers

  • Create & manage courses
  • Upload lessons & materials
  • Build quizzes
  • Track student progress
  • View course analytics

Admin

  • Manage users & roles
  • Moderate content
  • Monitor platform activity
  • Manage payments

Authentication & Security

  • Sanctum token authentication
  • Email/password login
  • Email verification and password reset
  • OAuth login (planned)
  • Optional 2FA
  • Rate limiting & CAPTCHA
  • Protection against XSS / SQL Injection

Core Capabilities

  • Course search & filtering
  • Responsive UI
  • Notifications (Email / Push)
  • Payment integration (LiqPay / Stripe)
  • Analytics integration

Data Model

User
Course
Module
Lesson
Quiz
QuizAttempt
Enrollment
Progress

API

RESTful API for all core features.


Architecture Notes

  • Role-based access control (RBAC)
  • SSR for performance & SEO
  • Modular structure (Courses → Modules → Lessons)
  • Scalable service integrations

Current Implementation Snapshot

Progress Summary

  • Backend readiness: about 90%
  • Frontend/demo readiness: partial integration shell for presenting backend flows
  • Current priority: connect real payment providers before advanced integrations such as OAuth, 2FA, MeiliSearch, and CI/CD

Backend (implemented)

  • PostgreSQL-backed Laravel API with migrations

  • Domain models and relations:

    • User, Course, Module, Lesson, Enrollment, Progress, Quiz, QuizQuestion, QuizAttempt, Review, Comment, Payment, CourseCertificate, PublishRequest
  • CRUD and flow endpoints for:

    • Registration, login, logout, current-user profile, email verification, and password reset
    • Courses, modules, lessons
    • Course catalog search, filters, sorting, and catalog metadata
    • Enrollment and lesson progress
    • Course completion certificates
    • Quizzes, single-choice/multiple-choice questions, backend-scored quiz attempts, and live quiz analytics
    • Reviews, lesson comments, moderation queue, and payments
    • Internal purchase flow with receipts and paid-course enrollment gating
    • Email notifications for enrollment, quiz results, certificate issuance, and handled publish requests
  • Admin endpoints for:

    • User listing, role changes, and ban management
    • Content moderation queue plus review and comment approval
    • Live platform activity and payment monitoring
  • Role-aware access checks (student, instructor, admin)

  • Ban enforcement for protected API access

  • Rich demo seed data for users, courses, lessons, enrollments, progress, payments, quizzes, reviews, lesson comments, and moderation queue items

  • Sanctum-protected routes for private actions

  • Feature tests for core flows

  • Publish-request workflow (instructors request publishing; admins approve/decline). See docs/backend-api.md for details.

Frontend (demo integration shell)

  • Course list and course detail from backend
  • Quick seeded login through the real auth API for student, instructor, admin, and banned-user testing
  • Role-aware demo panels for payments, admin users, and moderation queue
  • Paid-course purchase action wired to backend receipts and enrollment activation
  • Instructor dashboard summary from live backend aggregates
  • Admin platform activity and payment monitor from live backend aggregates
  • Enroll, lesson completion, and certificate issuance actions wired to backend
  • Catalog filters and quiz attempt submission wired to backend
  • Instructor/admin quiz analytics displayed from live backend aggregates
  • Demo actions for enrollment, quiz attempts, and certificate issuance trigger backend email notifications when the mailer is configured

Documentation

Detailed setup, API, and testing notes live in docs/:

For local development commands and token helper details, see the docs pages above.


Roadmap

Infrastructure & Auth

  • Project setup (Laravel + React + PostgreSQL + Docker)
  • Sanctum token authentication
  • Email/password login
  • Registration flow
  • Current-user profile endpoint
  • Logout / token revocation
  • Email verification
  • Password reset flow
  • OAuth login with Google
  • OAuth login with GitHub
  • Optional 2FA
  • Rate limiting
  • CAPTCHA
  • Production security hardening
  • Role-based access control (student, instructor, admin)
  • Ban enforcement for protected API routes

Core Course Structure

  • 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)

Student Experience

  • 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

Quizzes

  • 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

Payments

  • 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 integration
  • LiqPay checkout integration
  • Payment provider webhooks
  • Refund handling
  • Instructor payouts
  • Subscription pricing

Reviews & Community

  • Course reviews & star ratings
  • Lesson comments
  • Comment moderation (admin)
  • Review moderation (admin)

Notifications

  • Email notifications (enrollment, quiz results, certificates, publish requests)
  • Auth email notifications (verification, password reset)
  • New content email notifications
  • In-app notifications
  • Push notifications

Instructor Dashboard

  • Course management overview
  • Student progress per course
  • Revenue & enrollment analytics
  • Content upload & management

Admin Panel

  • User management (view, ban, role change)
  • Content moderation queue
  • Platform activity monitor
  • Payment & revenue overview

Analytics

  • Student engagement metrics
  • Course completion rates in instructor dashboard
  • Revenue reports
  • Search analytics (popular queries, zero results)

SSR & Performance

  • SSR setup for public pages (catalog, course detail)
  • SEO meta tags & Open Graph
  • Image optimization & CDN
  • Lazy loading & pagination

Polish & Extras

  • 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

Additional

Design Template

About

A modular LMS platform for creating, selling, and consuming online courses, featuring course management, payments, quizzes, and progress tracking.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors