A gamified study tracker app with a built-in Pomodoro timer, subject management, progress overview, and a small cosmetics shop. The project consists of two parts:
- Android client in Java
- Django REST backend
- Study with Pomodoro timer
- Coin rewards and simple cosmetics shop
- Add and remove subjects
- Track study sessions
- Daily study goal with progress tracking
- Offline mode with Room database and automatic synchronization when API becomes available
- Java / Android SDK
- Room for local database
- Retrofit + OkHttp (API communication)
- Python 3.10+
- Django + Django REST Framework
- SQLite
- django-cors-headers
Projekt_StudyApp/
app/ # Android application
backend/ # Django backend
MainActivity– main dashboard with daily goal, progress, and navigationPomodoroActivity– Pomodoro timer and session trackingSubjectsActivity– manage subjectsOverviewActivity– view study statisticsShopActivity– purchase cosmetics with coins
- Android Studio
- Python 3.10+
pip
In the backend/ directory, run in PowerShell:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python manage.py migrate
python manage.py runserverBackend will run on http://127.0.0.1:8000/api/.
- Open the project in Android Studio.
- Start an emulator.
- Run the application.
All endpoints are under the /api/ path.
Access at http://127.0.0.1:8000/api
GET /api/subjects/– list all subjectsPOST /api/subjects/– create a subject- example:
{ "name": "Mathematics" }
- example:
DELETE /api/subjects/{id}/– delete a subject
GET /api/sessions/– list all study sessionsPOST /api/sessions/– create a session- example:
{ "subject_name": "Mathematics", "duration_minutes": 25, "timestamp": 1680000000000 }
- example:
DELETE /api/sessions/clear_all/– delete all sessions on the server
- Android uses Room on top of SQLite
- Local database name:
study_database - The app stores data locally and synchronizes missing records when the backend becomes available