myaasiinh / Mobile-Programming-2024-2025

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

Channa Abdullah salim_Mental Health Mobile App_32602200009_Reguler #92

Open channaabds opened 1 month ago

channaabds commented 1 month ago

link design https://dribbble.com/shots/25088170-Mental-Health-Mobile-App

image

struktur layoting aplikasi

lib/ │ ├── main.dart # Entry point aplikasi ├── app.dart # Konfigurasi dasar aplikasi │ ├── core/ │ ├── config/ │ │ ├── api_config.dart # Konfigurasi endpoint API │ │ ├── environment.dart # Konfigurasi lingkungan (development, production) │ │ ├── app_config.dart # Konfigurasi aplikasi (misalnya, tema global) │ │ └── firebase_config.dart# Konfigurasi Firebase (jika diperlukan) │ │ │ ├── constants/ │ │ ├── app_colors.dart # Konstanta warna │ │ ├── app_text_styles.dart# Gaya teks yang digunakan di seluruh aplikasi │ │ └── app_strings.dart # Teks yang digunakan di seluruh aplikasi │ │ │ ├── utils/ │ │ ├── helpers.dart # Fungsi helper umum │ │ ├── validators.dart # Fungsi validasi input │ │ └── notification_helper.dart # Pengaturan notifikasi lokal │ │ │ └── services/ │ ├── api_service.dart # Layanan untuk panggilan API │ ├── auth_service.dart # Layanan otentikasi │ └── database_service.dart # Layanan akses database lokal │ ├── data/ │ ├── models/ │ │ ├── user_model.dart # Model untuk pengguna │ │ ├── therapy_model.dart # Model untuk terapi │ │ └── response_model.dart # Model untuk data respon API │ │ │ ├── repositories/ │ │ ├── auth_repository.dart # Repositori untuk otentikasi │ │ ├── therapy_repository.dart # Repositori untuk data terapi │ │ └── user_repository.dart # Repositori untuk data pengguna │ │ │ └── datasources/ │ ├── local/ │ │ ├── local_data_source.dart # Data source untuk penyimpanan lokal │ │ └── database_helper.dart # Helper database untuk penyimpanan lokal │ └── remote/ │ ├── remote_data_source.dart # Data source untuk penyimpanan remote (API) │ └── api_client.dart # Klien API untuk koneksi server │ ├── features/ │ ├── auth/ │ │ ├── models/ │ │ │ └── auth_model.dart # Model khusus untuk data login/signup │ │ ├── views/ │ │ │ ├── login_screen.dart # Layar login │ │ │ └── signup_screen.dart # Layar signup │ │ ├── controllers/ │ │ │ └── auth_controller.dart # Controller untuk login/signup │ │ └── repositories/ │ │ └── auth_repository.dart # Repositori untuk otentikasi │ │ │ ├── home/ │ │ ├── models/ │ │ │ └── therapy_model.dart # Model terapi (jika belum ada) │ │ ├── views/ │ │ │ ├── home_screen.dart # Layar utama (daftar terapi) │ │ │ ├── therapy_card.dart # Card untuk terapi │ │ │ └── therapy_detail_screen.dart # Detail terapi, misalnya untuk Art Therapy atau CB Therapy │ │ ├── controllers/ │ │ │ └── home_controller.dart # Controller untuk halaman utama │ │ └── repositories/ │ │ └── therapy_repository.dart # Repositori untuk data terapi │ │ │ └── catharsis/ │ ├── models/ │ │ └── catharsis_model.dart # Model khusus untuk Catharsis Therapy │ ├── views/ │ │ ├── catharsis_screen.dart # Layar Catharsis Therapy │ │ └── voice_recorder_widget.dart # Widget untuk perekaman suara di Catharsis Therapy │ ├── controllers/ │ │ └── catharsis_controller.dart # Controller khusus untuk Catharsis Therapy │ └── repositories/ │ └── catharsis_repository.dart # Repositori khusus untuk Catharsis Therapy │ ├── widgets/ │ ├── custom_button.dart # Widget tombol khusus │ ├── custom_text_field.dart # Widget untuk input teks │ └── therapy_filter_chip.dart # Widget untuk filter kategori terapi (All, Calm, Anxious, Relax) │ └── resources/ ├── images/ │ ├── logo.png # Logo aplikasi │ ├── therapy_icons.png # Ikon-ikon untuk kategori terapi │ └── user_avatar_placeholder.png # Placeholder avatar pengguna └── fonts/

Folder Utama (lib/)

  1. main.dart: Entry point aplikasi Flutter, berisi runApp() yang memanggil App sebagai widget utama.
  2. app.dart: Mengonfigurasi widget aplikasi utama, termasuk MaterialApp dan navigasi dasar aplikasi. Folder Core (core/) • config/: Berisi konfigurasi-konfigurasi penting aplikasi. o api_config.dart: Menyimpan konfigurasi endpoint API (URL dasar, endpoint-endpoint penting). o environment.dart: Menyimpan informasi lingkungan (development, testing, production). o app_config.dart: Pengaturan global aplikasi (tema global, pengaturan tampilan standar). o firebase_config.dart: Konfigurasi Firebase (jika digunakan), seperti Google Services JSON. • constants/: Menyimpan konstanta-konstanta yang sering digunakan di aplikasi. o app_colors.dart: Konstanta warna (e.g., warna primer, sekunder, warna latar). o app_text_styles.dart: Gaya teks standar yang sering digunakan. o app_strings.dart: Teks atau label aplikasi yang sering digunakan untuk menghindari hardcoding. • utils/: Menyediakan fungsi utilitas yang digunakan di banyak tempat dalam aplikasi. o helpers.dart: Fungsi-fungsi kecil untuk berbagai keperluan umum. o validators.dart: Fungsi validasi, seperti validasi email atau password. o notification_helper.dart: Mengelola notifikasi lokal dan push notifikasi. • services/: Layanan untuk mengakses data atau otentikasi. o api_service.dart: Mengatur panggilan API, menangani metode HTTP seperti GET, POST. o auth_service.dart: Layanan otentikasi (login, registrasi, logout). o database_service.dart: Layanan untuk mengakses database lokal (misal menggunakan SQLite). Folder Data (data/) • models/: Menyimpan model data yang merepresentasikan struktur data aplikasi. o user_model.dart: Model untuk data pengguna. o therapy_model.dart: Model data untuk informasi terapi. o response_model.dart: Model standar untuk menangani respon dari API. • repositories/: Berisi logika bisnis untuk pengelolaan data. o auth_repository.dart: Mengelola data terkait otentikasi. o therapy_repository.dart: Mengelola data terapi, seperti mengambil daftar terapi. o user_repository.dart: Mengelola data pengguna. • datasources/: Menyediakan sumber data untuk aplikasi. o local/: Sumber data lokal.  local_data_source.dart: Implementasi sumber data dari database lokal.  database_helper.dart: Helper untuk mengelola operasi database lokal. o remote/: Sumber data dari server.  remote_data_source.dart: Implementasi sumber data dari API.  api_client.dart: Klien API yang menangani koneksi dan autentikasi. Folder Features (features/) Menampung setiap fitur utama aplikasi dalam sub-foldernya sendiri. Setiap fitur berisi folder models, views, controllers, dan repositories untuk modularitas dan keteraturan. • auth/: Fitur otentikasi. o views/: Berisi login_screen.dart dan signup_screen.dart. o controllers/: auth_controller.dart mengatur logika bisnis otentikasi. o repositories/: auth_repository.dart berisi data otentikasi dari local storage atau API. • home/: Fitur utama yang berisi daftar terapi. o views/:  home_screen.dart: Layar utama yang menampilkan berbagai jenis terapi.  therapy_card.dart: Widget khusus untuk menampilkan informasi singkat tiap terapi.  therapy_detail_screen.dart: Menampilkan detail dari tiap terapi. o controllers/: home_controller.dart menangani logika bisnis untuk halaman home. o repositories/: therapy_repository.dart berisi logika untuk mengambil data terapi dari API. • catharsis/: Fitur untuk Catharsis Therapy. o views/:  catharsis_screen.dart: Layar Catharsis Therapy dengan fitur rekaman suara.  voice_recorder_widget.dart: Widget untuk perekaman suara yang terintegrasi. o controllers/: catharsis_controller.dart menangani logika perekaman suara. o repositories/: catharsis_repository.dart mengelola data khusus untuk terapi ini. Folder Widgets (widgets/) • custom_button.dart: Widget tombol yang digunakan di seluruh aplikasi (misalnya tombol sign up atau record di Catharsis Therapy). • custom_text_field.dart: Widget untuk input teks (misalnya input nama pengguna atau password). • therapy_filter_chip.dart: Chip filter yang digunakan untuk memilih jenis terapi di halaman home (seperti "All", "Calm", "Anxious", dll). Folder Resources (resources/) • images/: Menyimpan aset gambar (e.g., logo, avatar placeholder). • fonts/: Menyimpan file font yang digunakan di aplikasi untuk konsistensi tampilan teks.