Skip to content

Repository files navigation

Studify logo

Studify

A collaborative study app for Android — video/audio study rooms, screen sharing, group chat, and hands‑free presentation control using real‑time hand‑gesture recognition.

Android Kotlin Java MediaPipe Agora Firebase


Overview

Studify is an Android app that turns a study group into a live, interactive room. Members sign in, chat in groups, jump into video / audio calls, share their screen, and — the standout feature — control a shared presentation with hand gestures so the presenter never has to reach for the screen while teaching.

It combines a modern camera + on‑device vision pipeline (CameraX + MediaPipe Hand Landmarker) with real‑time communication (Agora RTC) and a Firebase backend for auth and group messaging.

Screens

Login Group chat Video call with hand-gesture slide control

Login · Study‑group chat · Video call + screen share with hand‑gesture slide control

Features

  • Real‑time hand‑gesture control — a MediaPipe Hand Landmarker runs on the live CameraX feed; recognized gestures (e.g. swipe) drive actions like moving to the next/previous slide during a presentation.
  • Presentation sharing — open and present slide decks (.pptx parsed with Apache POI) and share them to the room.
  • Video & audio study rooms — group calls powered by Agora RTC with an in‑app participant grid.
  • Screen sharing — share your screen to the group via a MediaProjection service + Agora screen‑share extension.
  • Group chat & channels — text chat, groups/channels, and user management backed by Firebase Auth + Firestore.
  • Custom camera overlay — a CustomView / OverlayView renders detected hand landmarks on top of the camera preview.

Tech stack

Area Tech
Language Kotlin + Java
UI Android Views, Material 3, Navigation, ConstraintLayout, CameraX preview
Vision MediaPipe Hand Landmarker (tasks-vision), TensorFlow Lite task‑vision, CameraX
Realtime Agora RTC full SDK, Agora Video UIKit, Agora screen‑share extension
Backend Firebase Authentication, Cloud Firestore
Docs Apache POI + POI‑OOXML (PowerPoint parsing)
Networking Fuel, Jackson
Build Gradle (Kotlin DSL), minSdk 26, targetSdk 34

Architecture

flowchart LR
    subgraph Device["Android device"]
        CAM[CameraX preview] --> MP[MediaPipe Hand Landmarker]
        MP --> GEST[Gesture -> action]
        GEST --> PRES[Presentation control - Apache POI slides]
    end

    subgraph Room["Live study room"]
        RTC[Agora RTC - audio/video]
        SS[Screen share - MediaProjection]
    end

    subgraph Cloud["Firebase"]
        AUTH[Auth]
        FS[(Firestore - chats & groups)]
    end

    PRES --> SS
    Device --> RTC
    Device --> AUTH
    Device --> FS
Loading

Project layout

app/src/main/java/com/handlandmarker/
├── Camera_Landmarks/      CameraX fragment (live camera)
├── HandLandmarkerHelper   MediaPipe hand-landmark inference
├── OverlayView / Canvas   Landmark rendering over the preview
├── AgoraPart/             Video, Audio, ScreenShare (Agora RTC)
├── MainPages/             Auth, chats, group chat, adapters (Firebase)
├── LocalDatabase/         Local SQLite helper
└── accets/                Data models (User, Message, Group)

Build & run

# 1) Open the project in Android Studio (let Gradle sync)
# 2) Add your own google-services.json (Firebase) and Agora App ID
# 3) Run on a physical device with a camera (min SDK 26)

Requires a Firebase project (Auth + Firestore) and an Agora account (App ID / token) for the realtime features.


Android · CameraX · MediaPipe · Agora · Firebase — a hands‑free, collaborative way to study together.

About

Android app that recognizes hand gestures in real time using CameraX.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages