Tellink adalah aplikasi mobile berbasis Android yang dirancang khusus untuk menghubungkan mahasiswa Telkom University dalam berbagi dan berkolaborasi pada proyek-proyek akademik maupun non-akademik. Aplikasi ini menyediakan platform interaktif dimana mahasiswa dapat memposting proyek mereka, mencari kolaborator, memberikan like dan komentar, serta mengelola permintaan kolaborasi.
- Login & Register: Sistem autentikasi aman menggunakan NIM dan password
- Manajemen Sesi: Pengelolaan sesi pengguna yang persisten
- Feed Proyek: Menampilkan daftar proyek terbaru dari mahasiswa
- Recently Hot: Menampilkan proyek yang sedang trending
- Pencarian: Fitur pencarian proyek berdasarkan judul atau konten
- Filter Tag: Pencarian proyek berdasarkan tag/kategori
- Tambah Proyek: Membuat posting proyek baru dengan detail lengkap
- Judul proyek
- Deskripsi lengkap
- Upload gambar
- Penambahan tag/kategori
- Edit Proyek: Mengubah informasi proyek yang sudah dibuat
- Hapus Proyek: Menghapus proyek yang tidak diperlukan lagi
- Like System: Memberikan like pada proyek yang menarik
- Komentar: Berdiskusi dan memberikan feedback pada proyek
- Request Kolaborasi: Mengajukan permintaan untuk bergabung dalam proyek
- Accept/Reject: Mengelola permintaan kolaborasi dari mahasiswa lain
- Informasi mahasiswa (NIM, Nama, Jurusan, Angkatan)
- Daftar proyek yang dibuat
- Statistik posting
- Jetpack Compose: Modern UI toolkit untuk Android
- Material Design 3: Komponen UI mengikuti design guidelines terbaru
- Kotlin: Bahasa pemrograman utama
- MVVM (Model-View-ViewModel): Clean architecture pattern
- Dependency Injection: Dagger Hilt untuk manajemen dependency
- Navigation Component: Jetpack Navigation dengan Compose
- Firebase Firestore: Real-time NoSQL cloud database
- Firebase Storage: Cloud storage untuk media files
- Retrofit: HTTP client untuk REST API calls
- Coil: Image loading library untuk Compose
- Glide: Image loading dan caching
- Material Icons Extended: Icon set lengkap
- KSP (Kotlin Symbol Processing): Annotation processing
- Gradle Version Catalog: Centralized dependency management
- Android Version: Android 8.0 (Oreo) - API Level 26
- RAM: 2 GB
- Storage: 100 MB free space
- Internet: Koneksi internet aktif
- Android Studio: Hedgehog (2023.1.1) atau lebih baru
- JDK: Java 19 atau lebih baru
- Gradle: 8.7.2
- Kotlin: 2.0.21
git clone https://github.com/dxvnee/Tellink-3.git
cd Tellink-3- Buka Firebase Console
- Klik "Add Project" atau "Create a project"
- Masukkan nama project (misalnya: "Tellink")
- Ikuti wizard setup hingga selesai
- Di Firebase Console, pilih project Anda
- Klik icon Android untuk menambah Android app
- Masukkan package name:
org.d3if3121.tellink - (Optional) Masukkan app nickname dan SHA-1
- Download file
google-services.json
# Letakkan file google-services.json di folder app/
cp /path/to/downloaded/google-services.json app/google-services.jsonDi Firebase Console, aktifkan:
-
Firestore Database:
- Buka "Firestore Database"
- Klik "Create database"
- Pilih mode (production atau test)
- Pilih region server
-
Firebase Storage:
- Buka "Storage"
- Klik "Get started"
- Setup security rules sesuai kebutuhan
Buat collections berikut di Firestore:
mahasiswa- Untuk data mahasiswa- Fields: nim, nama, password, jurusan, angkatan, posts, totalpost, requests, accept
projects- Untuk data proyek- Fields: id, nim, title, desc, date, commentCount, requests, accept, image, tag, likes
# Sync project with Gradle files
./gradlew build
# Atau melalui Android Studio:
# File -> Sync Project with Gradle Files- Buka project di Android Studio
- Pilih device/emulator
- Klik tombol "Run" (
βΆοΈ ) atau tekanShift + F10
# Install ke connected device/emulator
./gradlew installDebug
# Run app
adb shell am start -n org.d3if3121.tellink/.ui.MainActivityTellink-3/
βββ app/
β βββ src/
β β βββ main/
β β β βββ java/org/d3if3121/tellink/
β β β β βββ components/ # Reusable UI components
β β β β βββ data/ # Data layer
β β β β β βββ model/ # Data models
β β β β β β βββ mahasiswa/ # Student models
β β β β β β βββ project/ # Project models
β β β β β β βββ comment/ # Comment models
β β β β β β βββ response/ # API response models
β β β β β βββ repository/ # Repository pattern
β β β β β βββ retrofit/ # API services
β β β β βββ di/ # Dependency injection (Hilt modules)
β β β β βββ navigation/ # Navigation graphs
β β β β βββ ui/ # UI layer
β β β β β βββ animation/ # Custom animations
β β β β β βββ component/ # Common UI components
β β β β β βββ formula/ # UI calculations
β β β β β βββ screen/ # App screens
β β β β β β βββ auth/ # Authentication screens
β β β β β β β βββ login/
β β β β β β β βββ register/
β β β β β β βββ content/ # Main content screens
β β β β β β βββ homepage/ # Home feed
β β β β β β βββ projectpage/ # Project details
β β β β β β βββ likepage/ # Liked projects
β β β β β β βββ commentpage/ # Comments
β β β β β βββ theme/ # App theming
β β β β β βββ viewmodel/ # Shared ViewModels
β β β β βββ TellinkApp.kt # Application class
β β β βββ res/ # Resources
β β β β βββ drawable/ # Images & icons
β β β β βββ mipmap/ # App icons
β β β β βββ values/ # Strings, colors, themes
β β β β βββ xml/ # XML configs
β β β βββ AndroidManifest.xml # App manifest
β β βββ androidTest/ # Instrumented tests
β β βββ test/ # Unit tests
β βββ build.gradle.kts # App-level build config
β βββ google-services.json # Firebase config
βββ gradle/
β βββ libs.versions.toml # Dependency versions
βββ build.gradle.kts # Project-level build config
βββ settings.gradle.kts # Gradle settings
βββ README.md # This file
βββββββββββββββββββ
β UI Layer β <- Jetpack Compose UI
β (Composables) β
ββββββββββ¬βββββββββ
β
β
βββββββββββββββββββ
β ViewModel β <- Business Logic & State Management
β β
ββββββββββ¬βββββββββ
β
β
βββββββββββββββββββ
β Repository β <- Data Access Layer
β β
ββββββββββ¬βββββββββ
β
β
βββββββββββββββββββ
β Data Sources β <- Firebase, Retrofit, Local Storage
β (Remote/Local) β
βββββββββββββββββββ
- Composable functions untuk UI
- Material Design 3 components
- Navigation dengan Compose
- Mengelola UI state
- Business logic
- LiveData/StateFlow untuk reaktif UI
- Single source of truth
- Abstract data sources
- Handle data operations
- Firebase Firestore integration
- Retrofit untuk API calls
- Model classes
- Module injection
- ViewModel injection
- Repository injection
// Debug Build
buildTypes {
debug {
isMinifyEnabled = false
applicationIdSuffix = ".debug"
}
}
// Release Build
buildTypes {
release {
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"))
}
}Untuk release build, ProGuard rules sudah dikonfigurasi di proguard-rules.pro
./gradlew test./gradlew connectedAndroidTest./gradlew test --tests "TestClassName"Aplikasi menggunakan Material Design 3 dengan custom color palette yang dapat ditemukan di ui/theme/Color.kt
Custom typography system menggunakan Inter font family di ui/theme/Type.kt
Reusable components tersedia di folder ui/component/ dan components/
- Jetpack Compose BOM: 2024.11.00
- Kotlin: 2.0.21
- Dagger Hilt: 2.52
- Firebase BOM: 33.6.0
Lihat file gradle/libs.versions.toml untuk daftar lengkap dependencies dan versioning.
Kontribusi sangat diterima! Untuk berkontribusi:
- Fork repository ini
- Buat feature branch (
git checkout -b feature/AmazingFeature) - Commit perubahan (
git commit -m 'Add some AmazingFeature') - Push ke branch (
git push origin feature/AmazingFeature) - Buat Pull Request
- Ikuti Kotlin Coding Conventions
- Gunakan meaningful variable/function names
- Tambahkan comments untuk logic yang kompleks
- Write clean and maintainable code
Jika menemukan bug atau ingin request feature baru:
- Buka Issues
- Gunakan template yang sesuai
- Berikan detail yang jelas dan lengkap
Project ini dilisensikan di bawah MIT License. Lihat file LICENSE untuk detail lebih lanjut.
- dxvnee - Developer
- Project Link: https://github.com/dxvnee/Tellink-3
- Organization: Telkom University
- Program: D3IF3121
- Telkom University untuk dukungan akademik
- Firebase untuk backend infrastructure
- Jetpack Compose team untuk modern UI toolkit
- Open source community untuk libraries yang digunakan
- Initial release
- Authentication system (Login & Register)
- Project management (CRUD operations)
- Social features (Like, Comment, Request)
- Firebase integration
- Material Design 3 UI
Made with β€οΈ by Telkom University Students
Β© 2024 Tellink. All rights reserved.