Tailor Management System adalah aplikasi Android native yang dirancang untuk membantu bisnis jahit rumahan dalam mengelola operasional harian mereka. Dibangun dengan arsitektur MVVM dan Room Database untuk penyimpanan offline-first, aplikasi ini menyediakan solusi lengkap dari manajemen pelanggan hingga tracking pembayaran.
- 👥 Manajemen Pelanggan - Kelola data pelanggan regular dan walk-in
- 📏 Manajemen Ukuran - Simpan ukuran badan untuk berbagai tipe pakaian
- 📋 Manajemen Pesanan - Jahit baru dan reparasi dengan status tracking lengkap
- 💰 Invoice & Pembayaran - Sistem DP dan tracking pembayaran multi-metode
- ⚡ Quick Repair - 8 preset reparasi untuk entry cepat
- 📊 Dashboard Statistik - Real-time metrics (pesanan, pendapatan, dll)
- 💾 Backup & Restore - Keamanan data dengan backup database
- 💬 WhatsApp Integration - Chat pelanggan dan share invoice via WhatsApp
Note: Screenshots akan tersedia setelah aplikasi dijalankan. Lihat Demo Video untuk preview lengkap.
- Language: Kotlin 1.9.10
- Min SDK: 24 (Android 7.0 Nougat)
- Target SDK: 33 (Android 13)
- Build System: Gradle 8.1.4 with Kotlin DSL
- Architecture Pattern: MVVM (Model-View-ViewModel)
- Database: Room 2.5.2 (SQLite)
- Async Processing: Kotlin Coroutines 1.7.1
- DI: Manual Dependency Injection
- Navigation: Navigation Component 2.6.0
- UI Framework: Material Design 3
- androidx.core:core-ktx:1.10.1
- androidx.appcompat:appcompat:1.6.1
- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1
- androidx.lifecycle:lifecycle-livedata-ktx:2.6.1
- androidx.navigation:navigation-fragment-ktx:2.6.0
- androidx.room:room-ktx:2.5.2
- com.google.android.material:material:1.9.0Sebelum memulai, pastikan Anda sudah menginstall:
- ✅ Android Studio Hedgehog (2023.1.1) atau lebih baru
- ✅ JDK 17 (Java Development Kit)
- ✅ Android SDK dengan:
- Android SDK Platform 33
- Android SDK Build-Tools 33.0.0+
- Android Emulator atau Physical Device
- ✅ Git untuk clone repository
# Cek Java version
java -version
# Output: openjdk version "17.0.x" atau lebih baru
# Cek Android Studio
# Buka Android Studio > Help > About
# Cek Git
git --version# HTTPS
git clone https://github.com/yourusername/tailor-management-system.git
# Atau SSH
git clone git@github.com:yourusername/tailor-management-system.git
# Masuk ke direktori project
cd tailor-management-system- Buka Android Studio
- Pilih Open an Existing Project
- Navigate ke folder
tailor-management-system - Klik OK
- Tunggu Gradle sync selesai (pertama kali akan download dependencies)
Jika Android Studio meminta SDK configuration:
- File → Project Structure → SDK Location
- Pastikan Android SDK Location sudah di-set
- Pastikan JDK Location point ke JDK 17
# Atau via terminal di dalam project directory
./gradlew clean buildOpsi A: Via Android Studio
- Pilih device/emulator dari dropdown
- Klik tombol Run (
▶️ ) atau tekanShift + F10
Opsi B: Via Command Line
# Build APK Debug
./gradlew assembleDebug
# Install ke device yang terconnect
./gradlew installDebug
# Atau build + install + run
./gradlew installDebug && adb shell am start -n com.tailor.app/.ui.splash.SplashActivityEdit file gradle.properties jika diperlukan:
# JVM Heap Size
org.gradle.jvmargs=-Xmx4096m
# Java Home (sesuaikan dengan lokasi JDK 17 Anda)
org.gradle.java.home=/usr/lib/jvm/java-17-openjdk-amd64
# Parallel builds
org.gradle.parallel=true
# Gradle caching
org.gradle.caching=trueFile local.properties otomatis dibuat oleh Android Studio. Jika belum ada, buat manual:
# Path ke Android SDK (sesuaikan dengan sistem Anda)
sdk.dir=/home/username/Android/Sdk
# Atau di Windows
# sdk.dir=C\:\\Users\\Username\\AppData\\Local\\Android\\Sdk
# Atau di macOS
# sdk.dir=/Users/username/Library/Android/sdktailor-management-system/
├── app/
│ ├── src/
│ │ └── main/
│ │ ├── java/com/tailor/app/
│ │ │ ├── data/ # Data Layer
│ │ │ │ ├── database/ # Room Database
│ │ │ │ ├── dao/ # Data Access Objects (8 DAOs)
│ │ │ │ ├── entity/ # Database Entities (8 tables)
│ │ │ │ └── repository/ # Repositories (6 repos)
│ │ │ ├── viewmodel/ # ViewModels (8 ViewModels)
│ │ │ ├── ui/ # UI Layer
│ │ │ │ ├── splash/ # Splash Screen
│ │ │ │ ├── login/ # Login Screen
│ │ │ │ ├── main/ # Main Container
│ │ │ │ ├── dashboard/ # Dashboard
│ │ │ │ ├── customer/ # Customer Management
│ │ │ │ ├── order/ # Order Management
│ │ │ │ ├── invoice/ # Invoice & Payment
│ │ │ │ └── settings/ # Settings
│ │ │ └── util/ # Utility Classes
│ │ ├── res/ # Resources
│ │ │ ├── layout/ # Layout XMLs (21 files)
│ │ │ ├── drawable/ # Icons & Drawables
│ │ │ ├── values/ # Strings, Colors, Themes
│ │ │ ├── menu/ # Menu XMLs
│ │ │ └── navigation/ # Navigation Graph
│ │ └── AndroidManifest.xml
│ ├── build.gradle.kts # Module build config
│ └── proguard-rules.pro
├── build.gradle.kts # Project build config
├── settings.gradle.kts # Settings
├── gradle.properties # Gradle properties
├── gradlew # Gradle wrapper (Unix)
├── gradlew.bat # Gradle wrapper (Windows)
├── README.md # This file
├── LICENSE # License
└── docs/ # Documentation & Screenshots
Aplikasi ini menggunakan MVVM (Model-View-ViewModel) pattern dengan Repository Pattern untuk data abstraction.
┌─────────────────────────────────────────┐
│ VIEW (UI Layer) │
│ - Activities (3) │
│ - Fragments (6+) │
│ - Layout XML (21) │
│ - RecyclerView Adapters │
└──────────────┬──────────────────────────┘
│
│ observes LiveData
│ calls ViewModel methods
↓
┌─────────────────────────────────────────┐
│ VIEWMODEL (Presentation) │
│ - Business Logic │
│ - LiveData Exposure │
│ - Coroutine Scope Management │
└──────────────┬──────────────────────────┘
│
│ uses Repository
↓
┌─────────────────────────────────────────┐
│ REPOSITORY (Business Logic) │
│ - Data Source Abstraction │
│ - Single Source of Truth │
└──────────────┬──────────────────────────┘
│
│ calls DAO
↓
┌─────────────────────────────────────────┐
│ DAO (Data Access) │
│ - SQL Query Definitions │
│ - CRUD Operations │
└──────────────┬──────────────────────────┘
│
│ operates on
↓
┌─────────────────────────────────────────┐
│ ENTITY (Data Model) │
│ - Database Table Definitions │
│ - 8 Tables with Relationships │
└──────────────┬──────────────────────────┘
│
↓
┌─────────────────────────────────────────┐
│ ROOM DATABASE (SQLite) │
│ - Offline-First Storage │
└─────────────────────────────────────────┘
- User Interaction → View (Fragment/Activity)
- View calls → ViewModel methods
- ViewModel uses → Repository
- Repository calls → DAO
- DAO queries → Room Database
- Database returns → LiveData
- LiveData flows back → View (automatically updates UI)
- User - Admin/user authentication
- Customer - Customer data (regular & walk-in)
- Measurement - Body measurements per customer
- Order - Tailoring orders (new & repair)
- OrderItem - Items within orders (multi-item support)
- Invoice - Invoices and billing
- Payment - Payment transaction history
- RepairPreset - Preset repair types with prices
Customer (1) ──┬─→ (N) Measurement
├─→ (N) Order
└─→ (N) Invoice
Order (1) ──┬─→ (N) OrderItem
└─→ (1) Invoice
Invoice (1) ──→ (N) Payment
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Customer │─────<│Measurement │ │ Order │
│ │ │ │ │ │
│ - id │ │ - id │ │ - id │
│ - name │ │ - customerId│ │ - customerId│
│ - phone │ │ - type │ │ - orderNo │
│ - address │ │ - measure │ │ - type │
│ - isWalkIn │ └─────────────┘ │ - status │
└──────┬──────┘ │ - deadline │
│ └──────┬──────┘
│ │
│ ┌─────────────┐ │
└────────<│ Invoice │>───────────────┘
│ │
│ - id │
│ - invoiceNo│
│ - total │
│ - dp │
│ - remaining│
└──────┬──────┘
│
│
┌──────▼──────┐
│ Payment │
│ │
│ - id │
│ - invoiceId│
│ - amount │
│ - method │
└─────────────┘
Untuk login pertama kali:
Username: admin
Password: admin123
⚠️ Security Note: Untuk production, ganti credentials dan implement password hashing (BCrypt/Argon2).
- Buka aplikasi → Splash screen (2 detik)
- Masukkan credentials default
- Klik tombol Login
- Lihat statistik real-time (pesanan, pendapatan)
- Filter pesanan (Semua / Terlambat / Urgent)
- Toggle view mode (Grid / List)
- Akses quick actions:
- Tambah Pelanggan
- Tambah Pesanan
- Backup Database
- Navigate ke menu Pelanggan (via bottom nav atau drawer)
- Tambah: Klik FAB (+), isi form, save
- Edit: Tap customer item, edit data
- Delete: Long press customer item
- Search: Gunakan search bar di atas
- Filter: Pilih Semua / Tetap / Walk-in
- WhatsApp: Tap icon WhatsApp untuk chat
- Navigate ke menu Pesanan
- Klik FAB (+)
- Pilih pelanggan
- Pilih tipe: Jahit Baru atau Reparasi
- Set prioritas: Normal / Urgent
- Pilih deadline dengan DatePicker
- Pilih waktu dengan TimePicker
- Input harga dan catatan
- Save
- Drawer menu → Ukuran
- Tambah ukuran untuk pelanggan
- Pilih tipe pakaian
- Input measurements
- Upload foto referensi (optional)
- Navigate ke menu Invoice
- Generate invoice dari order
- Input DP (Down Payment)
- Record pembayaran dengan metode: Cash / Transfer / E-Wallet
- Share invoice via WhatsApp
- Drawer menu → Backup/Restore
- Backup: Database disimpan ke
/sdcard/TailorBackup/ - Restore: Pilih file backup untuk restore
./gradlew test./gradlew connectedAndroidTest./gradlew jacocoTestReportProblem: Gradle sync error atau dependencies tidak terdownload
Solution:
# Clean project
./gradlew clean
# Invalidate caches (Android Studio)
File → Invalidate Caches / Restart → Invalidate and Restart
# Delete .gradle folder dan sync ulang
rm -rf .gradle/
./gradlew --refresh-dependenciesProblem: Android SDK 33 not found
Solution:
- Android Studio → Tools → SDK Manager
- Install Android 13.0 (Tiramisu) SDK Platform 33
- Sync project
Problem: App crash saat pertama kali dibuka
Solution:
# Check logcat
adb logcat | grep "com.tailor.app"
# Clear app data
adb shell pm clear com.tailor.app
# Reinstall
./gradlew installDebugProblem: Cannot access database atau migration error
Solution:
# Uninstall app
adb uninstall com.tailor.app
# Reinstall fresh
./gradlew installDebugProblem: Unsupported class file major version
Solution:
- Pastikan menggunakan JDK 17
- Set di
gradle.properties:org.gradle.java.home=/path/to/jdk-17
Problem: ./gradlew: Permission denied
Solution:
chmod +x gradlew
./gradlew build- Create Entity (if needed) di
data/entity/ - Create DAO di
data/dao/ - Add to Database di
TailorDatabase.kt - Create Repository di
data/repository/ - Create ViewModel di
viewmodel/ - Create Fragment/Activity di
ui/ - Create Layout di
res/layout/ - Add Navigation di
nav_graph.xml - Test functionality
- Language: Kotlin
- Convention: Follow Kotlin Coding Conventions
- Naming:
- Classes: PascalCase (e.g.,
CustomerViewModel) - Functions: camelCase (e.g.,
getAllCustomers()) - Variables: camelCase (e.g.,
customerId) - Constants: UPPER_SNAKE_CASE (e.g.,
MAX_RETRY_COUNT)
- Classes: PascalCase (e.g.,
- Indentation: 4 spaces
- Package: by feature/layer, not by type
# Create feature branch
git checkout -b feature/your-feature-name
# Make changes and commit
git add .
git commit -m "feat: add new feature"
# Push to remote
git push origin feature/your-feature-name
# Create Pull Requestfeat: Add new feature
fix: Fix bug
docs: Update documentation
style: Format code
refactor: Refactor code
test: Add tests
chore: Update dependencies
- Complete MVVM architecture
- Room Database with 8 tables
- Customer management
- Order management (New & Repair)
- Invoice & Payment tracking
- Dashboard statistics
- Backup & Restore
- WhatsApp integration
- Dark mode support
- PDF export for invoices
- Advanced search & filtering
- Multi-currency support
- Custom notification system
- Image gallery for orders
- Cloud sync (Firebase/Backend API)
- Multi-user support
- Role-based access control
- Push notifications
- Customer portal app
- Inventory management
- Financial reports & analytics
- WhatsApp Business API integration
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'feat: Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow existing code style and conventions
- Write clear commit messages
- Add unit tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting PR
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2025 Tailor Management System
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- [Your Name] - Initial work - GitHub
See the list of contributors who participated in this project.
- ITTS - Institut Teknologi Telkom Surabaya
- Dosen Pengampu - Mata Kuliah Pemrograman Android Semester 5
- Google - Android Development Documentation
- Material Design - UI/UX Guidelines
- JetBrains - Kotlin Programming Language
- Square - Room Database inspiration
Jika ada pertanyaan atau issue:
- 📧 Email: your.email@example.com
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
- Total Kotlin Files: 43
- Total Lines of Code: ~4,096 (Kotlin) + ~2,749 (XML)
- Activities: 3
- Fragments: 6+
- Database Tables: 8
- ViewModels: 8
- Repositories: 6
- DAOs: 8
- Layout Files: 21
- String Resources: 100+
Click the image above to watch the demo video
Atau lihat SKRIP_VIDEO_PRESENTASI.md untuk detailed walkthrough.
- 📖 Penjelasan Lengkap Codebase - Dokumentasi lengkap struktur kode
- 🎬 Skrip Video Presentasi - Skrip untuk video demo
- ✅ Component Verification - Verifikasi komponen UI
- 🏗️ Build Instructions - Panduan build detail (Bahasa Indonesia)
- 🎯 Features & Components - Daftar fitur dan komponen
Jika project ini membantu Anda, berikan ⭐️!
Made with ❤️ for ITTS Android Programming Course
© 2025 Tailor Management System. All Rights Reserved.









