|
1 | | -yeah |
| 1 | +# Teman Isyarat — Project Manager |
| 2 | + |
| 3 | +[](https://github.com/williamu04/temanisyarat) |
| 4 | +[](https://obsidian.md) |
| 5 | +[]() |
| 6 | + |
| 7 | +> **Teman Isyarat** (Indonesian for "Sign Friend") is an AI-powered Indonesian Sign Language (BISINDO) recognition system — developed by a student team at **Universitas Sebelas Maret (UNS)** under the Hibah Jarprak program, in partnership with **GERKATIN Solo**. |
| 8 | +
|
| 9 | +This repository is the **central project management and documentation hub** for the Teman Isyarat project. It uses an **Obsidian vault** structure to organize architecture decisions, technical specifications, task tracking, and team logs. The actual source code (landmark extraction, model training, mobile app, website, backend) lives in separate repositories. |
| 10 | + |
| 11 | +--- |
| 12 | + |
| 13 | +## Table of Contents |
| 14 | + |
| 15 | +- [About the Project](#about-the-project) |
| 16 | +- [Repository Structure](#repository-structure) |
| 17 | +- [Technology Stack](#technology-stack) |
| 18 | +- [Architecture Decisions](#architecture-decisions) |
| 19 | +- [Getting Started](#getting-started) |
| 20 | +- [Contributing](#contributing) |
| 21 | +- [Team](#team) |
| 22 | +- [Acknowledgments](#acknowledgments) |
| 23 | +- [License](#license) |
| 24 | + |
| 25 | +--- |
| 26 | + |
| 27 | +## About the Project |
| 28 | + |
| 29 | +BISINDO (Bahasa Isyarat Indonesia) is the native sign language used by the Deaf community in Indonesia. Despite its widespread use, technological support for BISINDO recognition remains limited, creating communication barriers between Deaf and hearing individuals. |
| 30 | + |
| 31 | +Teman Isyarat tackles this by building a **real-time gesture recognition system** capable of classifying **20 BISINDO vocabulary words** (Central Java dialect) using: |
| 32 | + |
| 33 | +- **MediaPipe** for holistic landmark extraction (hands + pose) |
| 34 | +- **GRU neural networks** for temporal gesture classification |
| 35 | +- **Flutter + Kotlin** for an on-device Android application |
| 36 | +- **Video augmentation** (FFmpeg) to expand a limited dataset |
| 37 | + |
| 38 | +The project timeline spans **February — June 2026**, covering dataset collection with GERKATIN Solo, model development, mobile app implementation, user field testing, and community socialization. |
| 39 | + |
| 40 | +### Vocabulary Set (20 Gestures) |
| 41 | + |
| 42 | +| Category | Words | **Total** | |
| 43 | +| ------------ | ------------------------------ | --------- | |
| 44 | +| **Pronouns** | Aku, Kamu, Dia | 3 | |
| 45 | +| **Common** | Salam, Terimakasih, Maaf, Nama | 4 | |
| 46 | +| **Time** | Hari ini, Besok | 2 | |
| 47 | +| **Color** | Merah, Kuning | 2 | |
| 48 | +| **Family** | Ayah, Ibu | 2 | |
| 49 | +| **Count** | Satu, Dua, Tiga | 3 | |
| 50 | +| **Other** | Teman, Buku | 2 | |
| 51 | +| **Fruit** | Apel, Pisang | 2 | |
| 52 | + |
| 53 | + |
| 54 | +--- |
| 55 | + |
| 56 | +## Repository Structure |
| 57 | + |
| 58 | +``` |
| 59 | +. |
| 60 | +├── docs/ |
| 61 | +│ ├── adr/ # Architecture Decision Records (why) |
| 62 | +│ └── spec/ # Technical Specifications (how) |
| 63 | +├── tasks/ |
| 64 | +│ ├── backlog.md # Administrative backlog & grant tasks |
| 65 | +│ ├── logbook.md # Academic logbook (course credit) |
| 66 | +│ └── sprint-current.md # Current sprint tracking |
| 67 | +├── logs/ # Individual team member progress logs |
| 68 | +├── assets/ # Design mockups, screenshots, diagrams |
| 69 | +├── .github/workflows/ # CI/CD (auto-merge, asset renaming) |
| 70 | +├── CONTRIBUTING.md # Contribution guidelines (INA) |
| 71 | +└── README.md # ← You are here |
| 72 | +``` |
| 73 | + |
| 74 | +### Key Sections |
| 75 | + |
| 76 | +| Path | Description | |
| 77 | +|---|---| |
| 78 | +| `docs/adr/` | 6 ADRs covering video strategy, GRU selection, gesture count, GERKATIN partnership, grant reporting, and extraction analysis | |
| 79 | +| `docs/spec/` | 5 specs detailing MediaPipe extraction, mobile stack, FFmpeg augmentation, recording standards, and Flutter+MediaPipe integration | |
| 80 | +| `tasks/` | Project backlog, academic logbook, and sprint planning | |
| 81 | +| `logs/` | Per-member work logs (update with every PR) | |
| 82 | +| `assets/` | UI mockups, documentation images, branding assets | |
| 83 | + |
| 84 | +--- |
| 85 | + |
| 86 | +## Technology Stack |
| 87 | + |
| 88 | +The broader Teman Isyarat software ecosystem spans multiple platforms: |
| 89 | + |
| 90 | +### Machine Learning Pipeline |
| 91 | + |
| 92 | +| Component | Technology | |
| 93 | +|---|---| |
| 94 | +| Landmark Extraction | MediaPipe Tasks Vision (Hand, Pose, Face Landmarker) | |
| 95 | +| Video Processing | OpenCV-Python, FFmpeg | |
| 96 | +| Model Architecture | Gated Recurrent Unit (GRU) — TensorFlow / Keras | |
| 97 | +| Augmentation | FFmpeg (brightness ±0.1, horizontal flip, combinations — 6× per video) | |
| 98 | + |
| 99 | +### Mobile Application |
| 100 | + |
| 101 | +| Component | Technology | |
| 102 | +|---|---| |
| 103 | +| Cross-Platform UI | Flutter / Dart | |
| 104 | +| Native Camera | Kotlin — CameraX | |
| 105 | +| On-Device ML | MediaPipe Tasks via Android PlatformView | |
| 106 | +| Communication | MethodChannel (Dart ↔ Kotlin) | |
| 107 | + |
| 108 | +### Web Platform |
| 109 | + |
| 110 | +| Component | Technology | |
| 111 | +|---|---| |
| 112 | +| Frontend | NextJS | |
| 113 | +| Backend | Go (Golang) | |
| 114 | + |
| 115 | +--- |
| 116 | + |
| 117 | +## Architecture Decisions |
| 118 | + |
| 119 | +Key rationale documented in `docs/adr/`: |
| 120 | + |
| 121 | +| ADR | Decision | |
| 122 | +|---|---| |
| 123 | +| [ADR-001](docs/adr/adr-001-pengambilan-video.md) | 5-day distributed video recording over single-day marathon to reduce participant fatigue | |
| 124 | +| [ADR-002](docs/adr/adr-002-pilih-gru.md) | **GRU over LSTM/RNN** — better temporal sequence modeling for gesture recognition with fewer parameters | |
| 125 | +| [ADR-003](docs/adr/adr-003-jumlah-gesture.md) | **20 gestures** — balanced between research significance and dataset feasibility | |
| 126 | +| [ADR-004](docs/adr/adr-004-mitra-gerkatin.md) | **GERKATIN Solo** as community partner over PUSBISINDO for regional dialect alignment | |
| 127 | +| [ADR-005](docs/adr/adr-005-laporan-kemajuan.md) | **70% stage-1 spending** to mitigate bureaucratic delays in grant fund disbursement | |
| 128 | +| [ADR-006](docs/adr/adr-006-extraction-analysis.md) | **Drop face landmarks** — 84.5% NaN detection rate, reducing input from 252 → 153 dims | |
| 129 | + |
| 130 | +--- |
| 131 | + |
| 132 | +## Getting Started |
| 133 | + |
| 134 | +### Prerequisites |
| 135 | + |
| 136 | +- [Obsidian](https://obsidian.md) (recommended for browsing/editing) |
| 137 | + |
| 138 | +### Open the Vault |
| 139 | + |
| 140 | +```bash |
| 141 | +git clone git@github.com:williamu04/temanisyarat-manager.git |
| 142 | +cd temanisyarat-manager |
| 143 | +# Open this folder as an Obsidian vault |
| 144 | +``` |
| 145 | + |
| 146 | +### Browse Documentation |
| 147 | + |
| 148 | +Start with the architecture decisions to understand *why* key choices were made, then move to specs for *how* each component is built. |
| 149 | + |
| 150 | +--- |
| 151 | + |
| 152 | +## Contributing |
| 153 | + |
| 154 | +We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) (in Indonesian) for: |
| 155 | + |
| 156 | +- Git workflow (fork → feature branch → PR) |
| 157 | +- Commit message conventions (`feat`, `fix`, `docs`, etc.) |
| 158 | +- Branch naming (`feature/`, `fix/`, `docs/`, etc.) |
| 159 | +- PR template and review process |
| 160 | +- **Mandatory:** update `logs/{nama}.md` with every pull request |
| 161 | + |
| 162 | +--- |
| 163 | + |
| 164 | +## Team |
| 165 | + |
| 166 | +| Name | Role | |
| 167 | +|---|---| |
| 168 | +| Dunwill William | Project Lead | |
| 169 | +| Fredy Ramadhan | R&D | |
| 170 | +| Hany Wachidatul Aisyah | R&D | |
| 171 | +| Ian | R&D | |
| 172 | +| Ivan | R&D | |
| 173 | +| Kevin | R&D | |
| 174 | +| Mutia | R&D | |
| 175 | +| Saidah | R&D | |
| 176 | + |
| 177 | +--- |
| 178 | + |
| 179 | +## Acknowledgments |
| 180 | + |
| 181 | +- **GERKATIN Solo** — Dataset collection, validation, and field testing partnership |
| 182 | +- **Universitas Sebelas Maret (UNS)** — Hibah Jarprak funding and academic support |
| 183 | +- **Google MediaPipe Team** — Open-source landmark detection models |
| 184 | + |
| 185 | +--- |
| 186 | + |
| 187 | +## License |
| 188 | + |
| 189 | +This project is developed for academic purposes under the Hibah Jarprak program at Universitas Sebelas Maret. |
0 commit comments