| Pipeline | Status | Coverage |
|---|---|---|
| Frontend (React + Vite) | ||
| Backend (Django + DRF) |
LessonConnect streamlines communication, scheduling, and resource sharing for private tutors, students, and parents. Focused on one-on-one or small group tutoring, it features tailored messaging, parental oversight, and an integrated calendar—making it a modern, targeted alternative to general platforms like Google Classroom or Canvas.
-
Real-Time Messaging (Channels + Redis)
Chat with read receipts and attachments for individual or group sessions using Django Channels for WebSocket-based updates. -
Scheduling & Booking
Calendar-driven scheduling and rescheduling, including confirmations and parental approval flows. -
Resource Sharing
Tutors can upload PDFs, videos, and documents. Students can submit homework and quizzes. -
Pomodoro Timer & Productivity Tools
Helps students stay focused and prevent burnout with integrated time management tools. -
Parental Oversight
Parents access logs, messaging transcripts, and scheduling history for accountability. -
Scalable Architecture
Django backend with Redis and Celery for real-time and async tasks; deployment-ready for cloud platforms.
Frontend
- Built with:
React+Vite - Styling:
TailwindCSS+Bootstrap - Tooling:
ESLintfor consistency - Runs at:
http://localhost:5173/
Backend
- Built with:
Django (5.1.6)+ Django REST Framework - Database:
SQLite(dev) →PostgreSQL(prod-ready) - Real-Time:
Django Channels,Redis - Async Tasks:
Celery - External Media Storage:
cloudinary
🔧 Architecture Diagram: See
/diagrams/architecture/lessonconnect-architecture.png(upload diagram in this folder)
Prerequisites
- Node.js
- IDE (e.g., VSCode)
Install & Run
# 1. Clone the repo
git clone https://github.com/UNLV-CS472-672/2025-S-GROUP2-LessonConnect.git
# 2. Enter frontend directory
cd 2025-S-GROUP2-LessonConnect/frontend
# 3. Install dependencies
npm install
# 4. Start development server
npm run devRuns at: http://localhost:5173/
Prerequisites
- Python 3.8+
- pip
- Optional: Redis for local testing
Setup (Linux/macOS)
cd 2025-S-GROUP2-LessonConnect/backend
python3 -m venv env
source env/bin/activate
pip install -r requirements.txtSetup (Windows PowerShell)
cd 2025-S-GROUP2-LessonConnect�ackend
python -m venv env
env\Scripts\Activate.ps1
pip install -r requirements.txtRun
# Run migrations
python manage.py migrate
# Create admin (optional)
python manage.py createsuperuser
# Start the server
python manage.py runserverVisit: http://127.0.0.1:8000/
To test live chat locally:
- Start Redis server (
redis-server) - Ensure
settings.pyuses:
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {"hosts": [("127.0.0.1", 6379)]},
}
}- Run the dev server again to test chat.
| Dependency | Purpose |
|---|---|
Django==5.1.6 |
Core framework |
channels[daphne] |
Real-time WebSocket support |
channels-redis |
Redis-based channel layer |
celery, django-celery-* |
Async tasks + scheduled jobs |
redis |
Real-time messaging |
psycopg2-binary |
PostgreSQL support (for deployment) |
cloudinary |
Cloud file storage |
python-dotenv |
Environment variable handling |
- Linting via ESLint (frontend) and flake8 (backend)
- Test coverage tools integrated
- CI workflow blocks PRs unless:
- All tests pass
- Linting is clean
- PR is linked to an Issue
- Link all PRs to an issue
- Include a design diagram in
/diagrams/<feature-name>/ - Follow AI-generated code annotation format:
# ai-gen start (ChatGPT-4, 1)
def example():
pass
# ai-gen endUse clear, descriptive branch names:
feature/calendar-syncfix/login-crashtest/user-auth-flow
LessonConnect/
├── backend/ # Django app
├── frontend/ # React app
├── diagrams/
│ ├── use-cases/
│ ├── sequence/
│ └── architecture/
└── README.md
- 📧 Email: support@lessonconnect.com
- 🐛 Issues: GitHub Issues
This project is licensed under the MIT License. See LICENSE.md for more info.