StudyLens is a student-only course learning companion with a Django REST Framework backend and a native Android app built with Kotlin and Jetpack Compose.
Students can read course modules, save classroom whiteboard OCR notes, review board scans, generate study materials, and use AI-assisted study flows. The Android app never calls AI providers directly; it talks to the backend, and the backend talks to the configured local AI provider.
backend/: Django REST Framework API, PostgreSQL, JWT auth, media uploads, Swagger docs, study tools, and AI service layer.app/: Android app using Kotlin, Jetpack Compose, Material 3, Retrofit, Navigation Compose, and DataStore.docs/: focused project documentation.
- Project Overview
- Architecture & Design Decisions
- Setup Guide
- Backend Guide
- Android Guide
- API Guide
- AI Service Guide
- Development Workflow
- Troubleshooting
- Future Work
cd <repo-root>\backend
Copy-Item .env.example .env
docker compose up -d --build
docker compose exec -T web python manage.py migrateOpen:
Swagger: http://localhost:8000/api/docs/
Admin: http://localhost:8000/admin/
Open the repository root in Android Studio:
<repo-root>
Run the app on an emulator while the backend is running. The emulator uses:
http://10.0.2.2:8000/
The API base URL is configured in app/build.gradle.kts through BuildConfig.API_BASE_URL.
The default provider is DeepSeek:
AI_PROVIDER=deepseek
DEEPSEEK_API_KEY=your_key_here
DEEPSEEK_MODEL=deepseek-chatLocal development can also fallback to Ollama if configured.
Keep generated files and prototype assets out of implementation commits. The tracked docs in docs/*.md are project documentation; prototype screenshots and Word/PDF exports remain ignored.