myaasiinh / Mobile-Programming-2024-2025

Repository untuk mata kuliah mobile programming dan praktikum bertanya materi dan fixing bug
0 stars 0 forks source link

LUTFI AINUN NIZAR_32602200011_kelas reguler #98

Open LUTFIAINUNNIZAR opened 4 weeks ago

LUTFIAINUNNIZAR commented 4 weeks ago

https://dribbble.com/shots/24128314-SmartTasker-SaaS-Mobile-App original-e70a61085be8d58e5edca5b73468e6a0 lib/ │ ├── core/ │ ├── global_components/ │ ├── config/ │ ├── utils/ │ ├── constants/ │ ├── data/ │ ├── models/ │ │ ├── Task.dart // Model untuk data tugas │ │ ├── Team.dart // Model untuk data tim │ │ ├── ChecklistItem.dart // Model untuk item checklist dalam tugas │ ├── responses/ │ │ ├── TaskResponse.dart // Kelas untuk memetakan respons API terkait tugas │ │ ├── TeamResponse.dart // Kelas untuk memetakan respons API terkait tim │ ├── dummy/ │ │ ├── DummyTasks.dart // Data dummy untuk tugas │ │ ├── DummyTeams.dart // Data dummy untuk tim │ ├── features/ │ ├── task_management/ │ │ ├── viewmodels/ │ │ │ ├── TaskViewModel.dart // ViewModel untuk tugas │ │ │ ├── ChecklistViewModel.dart // ViewModel untuk checklist │ │ ├── screens/ │ │ │ ├── TaskOverviewScreen.dart // Layar utama yang menampilkan semua tugas │ │ │ ├── TaskDetailScreen.dart // Layar untuk detail tugas individu │ │ │ ├── TaskChecklistScreen.dart // Layar untuk checklist pada tugas │ │ ├── widgets/ │ │ │ ├── TaskCardWidget.dart // Widget untuk kartu tugas │ │ │ ├── ChecklistWidget.dart // Widget untuk menampilkan checklist │ │ │ ├── TaskPriorityWidget.dart // Widget untuk prioritas tugas │ │ ├── team_management/ │ │ ├── viewmodels/ │ │ │ ├── TeamViewModel.dart // ViewModel untuk tim │ │ ├── screens/ │ │ │ ├── TeamOverviewScreen.dart // Layar utama untuk tim │ │ │ ├── TeamDetailScreen.dart // Layar untuk detail tim │ │ ├── widgets/ │ │ │ ├── TeamListWidget.dart // Widget untuk daftar tim │ │ │ ├── TeamMemberWidget.dart // Widget untuk menampilkan anggota tim │ │ ├── user_profile/ │ │ ├── viewmodels/ │ │ │ ├── UserProfileViewModel.dart // ViewModel untuk profil pengguna │ │ ├── screens/ │ │ │ ├── UserProfileScreen.dart // Layar untuk profil pengguna │ │ ├── widgets/ │ │ │ ├── UserAvatarWidget.dart // Widget untuk avatar pengguna │ │ │ ├── UserProfileSummaryWidget.dart // Widget untuk ringkasan profil pengguna │ └── settings/ ├── viewmodels/ │ ├── SettingsViewModel.dart // ViewModel untuk pengaturan ├── screens/ │ ├── SettingsScreen.dart // Layar untuk pengaturan aplikasi ├── widgets/ │ ├── SettingsOptionWidget.dart // Widget untuk opsi pengaturan

penjelasan: Struktur Kode Folder lib/ adalah folder utama dalam proyek ini yang menyimpan berbagai komponen aplikasi. Struktur folder di dalam lib/ dirancang untuk mengikuti pola MVVM (Model-View-ViewModel) guna memisahkan logika bisnis dari tampilan aplikasi. Berikut adalah penjelasan rinci dari setiap folder dan file di dalamnya.

  1. core/ Folder ini berisi komponen inti dari aplikasi yang dapat digunakan secara global di seluruh aplikasi.

global_components/: Menyimpan komponen UI yang bersifat global dan dapat digunakan kembali di berbagai layar atau widget dalam aplikasi. config/: Berisi pengaturan atau konfigurasi umum untuk aplikasi, seperti pengaturan koneksi API atau pengaturan lainnya. utils/: Berisi fungsi-fungsi utilitas yang mendukung berbagai operasi dalam aplikasi, seperti helper untuk format tanggal, validasi input, atau pengelolaan cache. constants/: Berisi konstanta-konstanta yang digunakan di seluruh aplikasi, seperti nilai default, kunci API, atau nilai tetap lainnya.

  1. data/ Folder ini menyimpan data-data yang digunakan dalam aplikasi, termasuk model data, respons API, dan data dummy untuk keperluan pengujian.

models/: Berisi definisi kelas model yang mewakili data utama aplikasi.

Task.dart: Model untuk data tugas dalam aplikasi. Team.dart: Model untuk data tim. ChecklistItem.dart: Model untuk item-item checklist dalam tugas. responses/: Berisi kelas-kelas yang bertugas memetakan respons dari API.

TaskResponse.dart: Kelas untuk memetakan respons API terkait tugas. TeamResponse.dart: Kelas untuk memetakan respons API terkait tim. dummy/: Berisi data dummy yang digunakan untuk pengujian fitur atau tampilan aplikasi tanpa memerlukan data dari server.

DummyTasks.dart: Data dummy untuk tugas. DummyTeams.dart: Data dummy untuk tim.

  1. features/ Folder ini menyimpan fitur-fitur utama dalam aplikasi, di mana setiap fitur dikelompokkan dalam sub-folder sesuai dengan fungsinya.

task_management/: Menangani fitur manajemen tugas.

viewmodels/: Berisi kelas ViewModel untuk menangani logika bisnis dan penyediaan data untuk tampilan. TaskViewModel.dart: ViewModel untuk logika dan data yang berkaitan dengan tugas. ChecklistViewModel.dart: ViewModel untuk logika dan data yang berkaitan dengan checklist dalam tugas. screens/: Menyimpan layar atau halaman utama yang menampilkan informasi dan detail tugas kepada pengguna. TaskOverviewScreen.dart: Layar utama yang menampilkan daftar semua tugas. TaskDetailScreen.dart: Layar yang menampilkan detail dari tugas tertentu. TaskChecklistScreen.dart: Layar untuk menampilkan dan mengelola checklist dari tugas. widgets/: Berisi komponen UI yang dapat digunakan kembali pada tampilan layar. TaskCardWidget.dart: Widget untuk menampilkan informasi singkat mengenai tugas dalam bentuk kartu. ChecklistWidget.dart: Widget untuk menampilkan daftar checklist dalam tugas. TaskPriorityWidget.dart: Widget untuk menampilkan prioritas tugas. team_management/: Menangani fitur manajemen tim.

viewmodels/: Berisi kelas ViewModel yang bertanggung jawab untuk mengelola data dan logika bisnis tim. TeamViewModel.dart: ViewModel yang menangani logika bisnis dan data yang berkaitan dengan tim. screens/: Menyimpan layar atau halaman utama untuk fitur tim. TeamOverviewScreen.dart: Layar utama yang menampilkan daftar tim. TeamDetailScreen.dart: Layar untuk menampilkan detail dari suatu tim. widgets/: Komponen UI yang dapat digunakan kembali untuk menampilkan tim atau anggotanya. TeamListWidget.dart: Widget untuk menampilkan daftar tim. TeamMemberWidget.dart: Widget untuk menampilkan anggota tim secara individual. user_profile/: Mengelola tampilan dan data profil pengguna.

viewmodels/: Kelas ViewModel untuk mengelola logika dan data terkait profil pengguna. UserProfileViewModel.dart: ViewModel untuk mengelola data dan logika bisnis terkait profil pengguna. screens/: Menyimpan layar atau halaman yang menampilkan profil pengguna. UserProfileScreen.dart: Layar untuk menampilkan informasi profil pengguna. widgets/: Komponen UI yang berkaitan dengan tampilan profil pengguna. UserAvatarWidget.dart: Widget untuk menampilkan avatar pengguna. UserProfileSummaryWidget.dart: Widget untuk menampilkan ringkasan profil pengguna.

  1. settings/ Folder ini berisi fitur pengaturan aplikasi.

viewmodels/: Menyimpan ViewModel untuk fitur pengaturan. SettingsViewModel.dart: ViewModel yang menangani logika dan data untuk fitur pengaturan. screens/: Berisi layar atau halaman UI untuk pengaturan aplikasi. SettingsScreen.dart: Layar utama yang menampilkan opsi pengaturan aplikasi. widgets/: Komponen UI yang dapat digunakan kembali dalam layar pengaturan. SettingsOptionWidget.dart: Widget untuk menampilkan pilihan-pilihan pengaturan dalam aplikasi.