https://dribbble.com/shots/24128314-SmartTasker-SaaS-Mobile-App
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.
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.
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.
features/
Folder ini menyimpan fitur-fitur utama dalam aplikasi, di mana setiap fitur dikelompokkan dalam sub-folder sesuai dengan fungsinya.
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.
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.
https://dribbble.com/shots/24128314-SmartTasker-SaaS-Mobile-App 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.
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.
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.
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.
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.