LessonConnect
| Pipeline | Status | Coverage |
|---|---|---|
| Frontend (React + Vite) | ||
| Backend (Django + DRF) |
Project Description
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.
🔑 Key Features
-
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.
🏗️ Architecture Overview
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)
⚙️ Setup Instructions
🖥️ Frontend: React + Vite
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 dev
Runs at: http://localhost:5173/
🛠️ Backend: Django + SQLite
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.txt
Setup (Windows PowerShell)
cd 2025-S-GROUP2-LessonConnect�ackend python -m venv env env\Scripts\Activate.ps1 pip install -r requirements.txt
Run
# Run migrations python manage.py migrate # Create admin (optional) python manage.py createsuperuser # Start the server python manage.py runserver
Visit: http://127.0.0.1:8000/
🔁 Real-Time Messaging (Optional)
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.
📦 Dependencies (Partial List)
| 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 |
🧪 Testing & CI/CD
- 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
🤝 Contribution Guidelines
Pull Requests
- 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 end
Branch Naming
Use clear, descriptive branch names:
feature/calendar-syncfix/login-crashtest/user-auth-flow
📂 Repo Structure
LessonConnect/
├── backend/ # Django app
├── frontend/ # React app
├── diagrams/
│ ├── use-cases/
│ ├── sequence/
│ └── architecture/
└── README.md
📬 Contact & Support
- 📧 Email: support@lessonconnect.com
- 🐛 Issues: GitHub Issues
📄 License
This project is licensed under the MIT License. See LICENSE.md for more info.
0 commit comments