Skip to content

dxvnee/tellink-android-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

33 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Tellink - Telkom University Link

Platform Language Min SDK Target SDK License

πŸ“‹ Deskripsi

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.

✨ Fitur Utama

πŸ” Autentikasi

  • Login & Register: Sistem autentikasi aman menggunakan NIM dan password
  • Manajemen Sesi: Pengelolaan sesi pengguna yang persisten

🏠 Beranda (Home)

  • 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

πŸ“ Manajemen Proyek

  • 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

πŸ’¬ Interaksi Sosial

  • 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

πŸ‘€ Profil Mahasiswa

  • Informasi mahasiswa (NIM, Nama, Jurusan, Angkatan)
  • Daftar proyek yang dibuat
  • Statistik posting

πŸ› οΈ Teknologi Stack

Framework & Library

  • Jetpack Compose: Modern UI toolkit untuk Android
  • Material Design 3: Komponen UI mengikuti design guidelines terbaru
  • Kotlin: Bahasa pemrograman utama

Architecture & Pattern

  • MVVM (Model-View-ViewModel): Clean architecture pattern
  • Dependency Injection: Dagger Hilt untuk manajemen dependency
  • Navigation Component: Jetpack Navigation dengan Compose

Backend & Storage

  • Firebase Firestore: Real-time NoSQL cloud database
  • Firebase Storage: Cloud storage untuk media files
  • Retrofit: HTTP client untuk REST API calls

UI/UX Libraries

  • Coil: Image loading library untuk Compose
  • Glide: Image loading dan caching
  • Material Icons Extended: Icon set lengkap

Development Tools

  • KSP (Kotlin Symbol Processing): Annotation processing
  • Gradle Version Catalog: Centralized dependency management

πŸ“± Persyaratan Sistem

Minimum Requirements

  • Android Version: Android 8.0 (Oreo) - API Level 26
  • RAM: 2 GB
  • Storage: 100 MB free space
  • Internet: Koneksi internet aktif

Development Requirements

  • Android Studio: Hedgehog (2023.1.1) atau lebih baru
  • JDK: Java 19 atau lebih baru
  • Gradle: 8.7.2
  • Kotlin: 2.0.21

πŸš€ Instalasi & Setup

1. Clone Repository

git clone https://github.com/dxvnee/Tellink-3.git
cd Tellink-3

2. Konfigurasi Firebase

a. Buat Project Firebase

  1. Buka Firebase Console
  2. Klik "Add Project" atau "Create a project"
  3. Masukkan nama project (misalnya: "Tellink")
  4. Ikuti wizard setup hingga selesai

b. Tambah Android App ke Firebase Project

  1. Di Firebase Console, pilih project Anda
  2. Klik icon Android untuk menambah Android app
  3. Masukkan package name: org.d3if3121.tellink
  4. (Optional) Masukkan app nickname dan SHA-1
  5. Download file google-services.json

c. Setup google-services.json

# Letakkan file google-services.json di folder app/
cp /path/to/downloaded/google-services.json app/google-services.json

d. Enable Firebase Services

Di 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

e. Setup Firestore Collections

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

3. Build Project

Sync & Build

# Sync project with Gradle files
./gradlew build

# Atau melalui Android Studio:
# File -> Sync Project with Gradle Files

4. Run Aplikasi

Via Android Studio

  1. Buka project di Android Studio
  2. Pilih device/emulator
  3. Klik tombol "Run" (▢️) atau tekan Shift + F10

Via Command Line

# Install ke connected device/emulator
./gradlew installDebug

# Run app
adb shell am start -n org.d3if3121.tellink/.ui.MainActivity

πŸ“ Struktur Project

Tellink-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

πŸ—οΈ Arsitektur Aplikasi

MVVM Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   UI Layer      β”‚  <- Jetpack Compose UI
β”‚  (Composables)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   ViewModel     β”‚  <- Business Logic & State Management
β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Repository    β”‚  <- Data Access Layer
β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Data Sources   β”‚  <- Firebase, Retrofit, Local Storage
β”‚  (Remote/Local) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Components

1. UI Layer (Jetpack Compose)

  • Composable functions untuk UI
  • Material Design 3 components
  • Navigation dengan Compose

2. ViewModel Layer

  • Mengelola UI state
  • Business logic
  • LiveData/StateFlow untuk reaktif UI

3. Repository Layer

  • Single source of truth
  • Abstract data sources
  • Handle data operations

4. Data Layer

  • Firebase Firestore integration
  • Retrofit untuk API calls
  • Model classes

5. Dependency Injection (Hilt)

  • Module injection
  • ViewModel injection
  • Repository injection

πŸ”§ Konfigurasi

Build Variants

// Debug Build
buildTypes {
    debug {
        isMinifyEnabled = false
        applicationIdSuffix = ".debug"
    }
}

// Release Build
buildTypes {
    release {
        isMinifyEnabled = true
        proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"))
    }
}

ProGuard Rules

Untuk release build, ProGuard rules sudah dikonfigurasi di proguard-rules.pro

πŸ§ͺ Testing

Run Unit Tests

./gradlew test

Run Instrumented Tests

./gradlew connectedAndroidTest

Run Specific Test

./gradlew test --tests "TestClassName"

🎨 Design System

Color Palette

Aplikasi menggunakan Material Design 3 dengan custom color palette yang dapat ditemukan di ui/theme/Color.kt

Typography

Custom typography system menggunakan Inter font family di ui/theme/Type.kt

Components

Reusable components tersedia di folder ui/component/ dan components/

πŸ“š Dependencies

Core Dependencies

  • Jetpack Compose BOM: 2024.11.00
  • Kotlin: 2.0.21
  • Dagger Hilt: 2.52
  • Firebase BOM: 33.6.0

Full dependencies list

Lihat file gradle/libs.versions.toml untuk daftar lengkap dependencies dan versioning.

🀝 Contributing

Kontribusi sangat diterima! Untuk berkontribusi:

  1. Fork repository ini
  2. Buat feature branch (git checkout -b feature/AmazingFeature)
  3. Commit perubahan (git commit -m 'Add some AmazingFeature')
  4. Push ke branch (git push origin feature/AmazingFeature)
  5. Buat Pull Request

Coding Standards

  • Ikuti Kotlin Coding Conventions
  • Gunakan meaningful variable/function names
  • Tambahkan comments untuk logic yang kompleks
  • Write clean and maintainable code

πŸ› Bug Reports & Feature Requests

Jika menemukan bug atau ingin request feature baru:

  1. Buka Issues
  2. Gunakan template yang sesuai
  3. Berikan detail yang jelas dan lengkap

πŸ“„ License

Project ini dilisensikan di bawah MIT License. Lihat file LICENSE untuk detail lebih lanjut.

πŸ‘₯ Tim Pengembang

  • dxvnee - Developer

πŸ“ž Kontak

πŸ™ Acknowledgments

  • Telkom University untuk dukungan akademik
  • Firebase untuk backend infrastructure
  • Jetpack Compose team untuk modern UI toolkit
  • Open source community untuk libraries yang digunakan

πŸ“ Changelog

Version 1.0 (Current)

  • 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages