Skip to content

Latest commit

 

History

History
99 lines (69 loc) · 2.33 KB

File metadata and controls

99 lines (69 loc) · 2.33 KB

StudyApp

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

Features

  • 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

Frontend & Backend

Android

  • Java / Android SDK
  • Room for local database
  • Retrofit + OkHttp (API communication)

Backend

  • Python 3.10+
  • Django + Django REST Framework
  • SQLite
  • django-cors-headers

Project Structure

Projekt_StudyApp/
  app/        # Android application
  backend/    # Django backend

Key Activities

  • MainActivity – main dashboard with daily goal, progress, and navigation
  • PomodoroActivity – Pomodoro timer and session tracking
  • SubjectsActivity – manage subjects
  • OverviewActivity – view study statistics
  • ShopActivity – purchase cosmetics with coins

Requirements

  • Android Studio
  • Python 3.10+
  • pip

Quick Start

1) Backend

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 runserver

Backend will run on http://127.0.0.1:8000/api/.

2) Android Application

  1. Open the project in Android Studio.
  2. Start an emulator.
  3. Run the application.

API Endpoints

All endpoints are under the /api/ path. Access at http://127.0.0.1:8000/api

Subjects

  • GET /api/subjects/ – list all subjects
  • POST /api/subjects/ – create a subject
    • example: { "name": "Mathematics" }
  • DELETE /api/subjects/{id}/ – delete a subject

Sessions

  • GET /api/sessions/ – list all study sessions
  • POST /api/sessions/ – create a session
    • example: { "subject_name": "Mathematics", "duration_minutes": 25, "timestamp": 1680000000000 }
  • DELETE /api/sessions/clear_all/ – delete all sessions on the server

Local Database & Offline Mode

  • 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