Fitaru

Fitaru MVP Backlog

Backlog development MVP Fitaru berisi epic, task, priority, acceptance criteria, sprint plan, dan release checklist.

54 dari 57 materi Project fitarubacklogplanningmvp

Fitaru MVP Development Backlog

Dokumen ini berisi backlog development MVP untuk aplikasi mobile Fitaru dan admin CMS.

MVP Goal

Membangun versi awal Fitaru yang memungkinkan user untuk:

  • Membuat akun
  • Mengisi profil dan target diet
  • Melihat dashboard harian
  • Mencatat makan
  • Mencatat olahraga
  • Mencatat berat badan
  • Mencatat air minum
  • Melihat progress sederhana
  • Membaca artikel tips
  • Mengirim feedback

Dan memungkinkan admin untuk:

  • Login ke CMS
  • Melihat overview aplikasi
  • Mengelola artikel tips
  • Mengelola database makanan
  • Mengelola database olahraga
  • Melihat feedback user

Product Scope

In Scope MVP

  • Mobile app core tracking
  • Admin CMS basic management
  • Supabase PostgreSQL schema
  • Auth
  • REST API
  • Dashboard mobile
  • Dashboard admin CMS
  • Content tips
  • Food and exercise reference database
  • Feedback

Out of Scope MVP

  • AI recommendation
  • Barcode scanner
  • Wearable integration
  • Payment/subscription
  • Social feature
  • Advanced nutrition macro tracking
  • Meal plan otomatis kompleks
  • Chat dengan nutritionist
  • Dark mode

Priority Labels

  • P0: wajib untuk MVP bisa dipakai
  • P1: penting, tapi bisa menyusul setelah core flow stabil
  • P2: nice to have untuk iterasi berikutnya

Epics

Epic 1: Project Setup

FT-001 Setup repository structure

Priority: P0

Description:

Menyiapkan struktur repo untuk mobile app, admin CMS, API/backend, dan database migration.

Acceptance criteria:

  • Ada folder mobile app
  • Ada folder admin CMS
  • Ada folder API/backend
  • Ada folder database/migrations
  • Ada README project

FT-002 Setup environment configuration

Priority: P0

Description:

Menyiapkan env untuk local development, staging, dan production.

Acceptance criteria:

  • Ada .env.example
  • Environment variable Supabase/API terdokumentasi
  • App bisa membaca config sesuai environment

FT-003 Setup design tokens

Priority: P1

Description:

Menerjemahkan design system Fitaru menjadi token warna, spacing, radius, dan typography.

Acceptance criteria:

  • Token warna tersedia
  • Typography scale tersedia
  • Button dan card memakai token
  • Mobile dan admin menggunakan brand yang konsisten

Epic 2: Database & Backend Foundation

FT-010 Apply initial database schema

Priority: P0

Description:

Menjalankan schema awal Supabase/PostgreSQL.

Acceptance criteria:

  • Semua tabel utama berhasil dibuat
  • Enum berhasil dibuat
  • Index berhasil dibuat
  • Seed kategori artikel berhasil dibuat

FT-011 Setup backend API project

Priority: P0

Description:

Menyiapkan backend API REST.

Acceptance criteria:

  • API server bisa berjalan lokal
  • Health check endpoint tersedia
  • Struktur route/controller/service/repository tersedia

FT-012 Standard API response and error handling

Priority: P0

Description:

Membuat format response sukses dan error yang konsisten.

Acceptance criteria:

  • Response sukses memakai data dan meta
  • Response error memakai error.code, error.message, error.details
  • Validation error konsisten

FT-013 Setup authentication middleware

Priority: P0

Description:

Middleware untuk memvalidasi token user dan admin.

Acceptance criteria:

  • Endpoint protected menolak request tanpa token
  • User token dan admin token bisa dibedakan
  • Role admin bisa dibaca dari request context

Epic 3: Mobile Auth & Onboarding

FT-020 User register/login

Priority: P0

Description:

User bisa daftar dan login.

Acceptance criteria:

  • User bisa login dengan email
  • User bisa logout
  • Session tersimpan
  • User yang belum login diarahkan ke onboarding/login

FT-021 Onboarding screens

Priority: P0

Description:

Membuat tiga layar onboarding sesuai user flow.

Acceptance criteria:

  • Ada slide catat makan
  • Ada slide olahraga
  • Ada slide progress
  • CTA “Mulai Sekarang” masuk ke register/login
  • CTA “Masuk” masuk ke login

FT-022 Setup profile flow

Priority: P0

Description:

User mengisi profil awal setelah register.

Acceptance criteria:

  • User bisa input nama, gender, usia
  • User bisa input tinggi, berat saat ini, target berat
  • User bisa pilih tujuan
  • User bisa pilih aktivitas harian dan gaya diet
  • Data tersimpan ke user_profiles

FT-023 Setup daily target flow

Priority: P0

Description:

User mengatur target harian awal.

Acceptance criteria:

  • User bisa set target air
  • User bisa set target olahraga mingguan
  • User bisa pilih jadwal timbang
  • User bisa skip calorie tracking
  • Data tersimpan ke daily_targets

Epic 4: Mobile Dashboard

FT-030 Today dashboard API

Priority: P0

Description:

Endpoint untuk mengambil ringkasan dashboard hari ini.

Acceptance criteria:

  • Mengembalikan consistency score
  • Mengembalikan jumlah makan tercatat
  • Mengembalikan air minum hari ini
  • Mengembalikan olahraga hari ini
  • Mengembalikan berat terakhir
  • Mengembalikan timeline hari ini
  • Mengembalikan next action message

FT-031 Mobile dashboard UI

Priority: P0

Description:

Membuat dashboard mobile sesuai mockup Fitaru.

Acceptance criteria:

  • Ada header personal
  • Ada consistency hero card
  • Ada quick actions
  • Ada target hari ini
  • Ada timeline hari ini
  • Ada insight harian
  • Ada bottom navigation

FT-032 Dashboard empty state

Priority: P1

Description:

Dashboard tetap ramah saat user belum punya catatan.

Acceptance criteria:

  • Empty state muncul saat belum ada log
  • CTA catat makan terlihat jelas
  • Copy tidak menghakimi

Epic 5: Meal Tracking

FT-040 Create meal log API

Priority: P0

Description:

Endpoint untuk membuat catatan makan.

Acceptance criteria:

  • User bisa membuat meal log
  • Field wajib divalidasi
  • Kalori boleh null
  • Food item reference boleh null

FT-041 Meal log form UI

Priority: P0

Description:

Membuat form catat makan mobile.

Acceptance criteria:

  • User bisa pilih waktu makan
  • User bisa input nama makanan
  • User bisa pilih porsi
  • User bisa isi kalori opsional
  • User bisa isi catatan opsional
  • Setelah simpan muncul success message

FT-042 Meal log list

Priority: P1

Description:

Menampilkan catatan makan berdasarkan tanggal.

Acceptance criteria:

  • User bisa melihat daftar makan hari ini
  • User bisa edit catatan makan
  • User bisa hapus catatan makan

FT-043 Food search integration

Priority: P1

Description:

User bisa mencari makanan dari database referensi.

Acceptance criteria:

  • Search makanan aktif
  • Pilih makanan mengisi nama dan estimasi kalori
  • User tetap bisa input manual

Epic 6: Exercise Tracking

FT-050 Create exercise log API

Priority: P0

Description:

Endpoint untuk membuat catatan olahraga.

Acceptance criteria:

  • User bisa membuat exercise log
  • Durasi wajib lebih dari 0
  • Intensitas wajib dipilih
  • Estimasi kalori boleh null

FT-051 Exercise log form UI

Priority: P0

Description:

Membuat form catat olahraga mobile.

Acceptance criteria:

  • User bisa pilih jenis olahraga
  • User bisa input durasi
  • User bisa pilih intensitas
  • User bisa isi catatan opsional
  • Setelah simpan muncul success message

FT-052 Exercise log list

Priority: P1

Description:

Menampilkan catatan olahraga berdasarkan tanggal.

Acceptance criteria:

  • User bisa melihat daftar olahraga
  • User bisa edit catatan
  • User bisa hapus catatan

Epic 7: Weight & Water Tracking

FT-060 Weight log API

Priority: P0

Description:

Endpoint untuk mencatat dan mengambil riwayat berat badan.

Acceptance criteria:

  • User bisa membuat weight log
  • User bisa melihat riwayat berat
  • Berat wajib lebih dari 0

FT-061 Weight log UI

Priority: P0

Description:

Form catat berat badan.

Acceptance criteria:

  • User bisa input berat
  • User bisa isi catatan opsional
  • Setelah simpan muncul success message

FT-062 Water log API

Priority: P0

Description:

Endpoint untuk mencatat air minum.

Acceptance criteria:

  • User bisa menambah gelas air
  • User bisa melihat total air hari ini
  • User bisa menghapus log air bila salah input

FT-063 Water quick action UI

Priority: P0

Description:

Quick action untuk menambah air dari dashboard.

Acceptance criteria:

  • Tap quick action menambah 1 gelas
  • Total air di dashboard terupdate
  • Ada feedback sukses singkat

Epic 8: Progress

FT-070 Progress summary API

Priority: P0

Description:

Endpoint ringkasan progress mingguan.

Acceptance criteria:

  • Mengembalikan perubahan berat
  • Mengembalikan jumlah olahraga
  • Mengembalikan hari catat makan
  • Mengembalikan rata-rata skor konsistensi
  • Mengembalikan insight sederhana

FT-071 Progress page UI

Priority: P0

Description:

Halaman progress mobile.

Acceptance criteria:

  • Ada chart berat
  • Ada metrik olahraga
  • Ada metrik konsistensi
  • Ada insight mingguan

FT-072 Weekly review

Priority: P1

Description:

Ringkasan mingguan yang muncul untuk user.

Acceptance criteria:

  • Menampilkan berat berubah
  • Menampilkan total olahraga
  • Menampilkan hari paling konsisten
  • Menampilkan saran minggu depan

Epic 9: Tips Content

FT-080 Public articles API

Priority: P0

Description:

Endpoint artikel published untuk aplikasi mobile.

Acceptance criteria:

  • User bisa melihat daftar artikel published
  • User bisa filter kategori
  • User bisa membuka detail artikel

FT-081 Tips page UI

Priority: P1

Description:

Halaman tips di mobile app.

Acceptance criteria:

  • Ada kategori tips
  • Ada daftar artikel
  • Ada detail artikel
  • Empty state tersedia

Epic 10: Feedback

FT-090 Feedback API

Priority: P1

Description:

Endpoint user mengirim feedback.

Acceptance criteria:

  • User bisa memilih tipe feedback
  • User bisa mengirim subject dan message
  • Feedback masuk ke admin CMS

FT-091 Feedback UI

Priority: P1

Description:

Form feedback di mobile app.

Acceptance criteria:

  • Form mudah diakses dari profil
  • Ada success message setelah terkirim

Epic 11: Admin CMS Foundation

FT-100 Admin login

Priority: P0

Description:

Admin bisa login ke CMS.

Acceptance criteria:

  • Admin bisa login
  • Role admin terbaca
  • Admin tanpa session diarahkan ke login

FT-101 Admin layout

Priority: P0

Description:

Membuat layout CMS dengan sidebar dan topbar.

Acceptance criteria:

  • Sidebar berisi menu utama
  • Topbar berisi search dan admin profile
  • Layout responsive untuk tablet

FT-102 Admin overview API

Priority: P0

Description:

Endpoint ringkasan overview admin.

Acceptance criteria:

  • Mengembalikan total user
  • Mengembalikan active user hari ini
  • Mengembalikan meal logs hari ini
  • Mengembalikan feedback baru
  • Mengembalikan top foods
  • Mengembalikan user growth

FT-103 Admin overview UI

Priority: P0

Description:

Membuat dashboard overview CMS.

Acceptance criteria:

  • Ada stat cards
  • Ada user growth chart
  • Ada quick actions
  • Ada top foods
  • Ada recent feedback

Epic 12: Admin Content Management

FT-110 Admin articles API

Priority: P0

Description:

CRUD artikel tips.

Acceptance criteria:

  • Admin bisa list artikel
  • Admin bisa create artikel
  • Admin bisa edit artikel
  • Admin bisa publish/archive artikel
  • Role content_admin bisa mengakses

FT-111 Admin articles UI

Priority: P0

Description:

Halaman content management CMS.

Acceptance criteria:

  • Ada tabel artikel
  • Ada filter status
  • Ada form create/edit
  • Ada preview sederhana
  • Ada status badge

Epic 13: Admin Food & Exercise Database

FT-120 Admin food database API

Priority: P0

Description:

CRUD food items.

Acceptance criteria:

  • Admin bisa list makanan
  • Admin bisa tambah makanan
  • Admin bisa edit makanan
  • Admin bisa aktif/nonaktif makanan

FT-121 Admin food database UI

Priority: P0

Description:

Halaman food database.

Acceptance criteria:

  • Ada tabel makanan
  • Ada search
  • Ada filter status/kategori
  • Ada form tambah/edit

FT-122 Admin exercise database API

Priority: P0

Description:

CRUD exercise items.

Acceptance criteria:

  • Admin bisa list olahraga
  • Admin bisa tambah olahraga
  • Admin bisa edit olahraga
  • Admin bisa aktif/nonaktif olahraga

FT-123 Admin exercise database UI

Priority: P0

Description:

Halaman exercise database.

Acceptance criteria:

  • Ada tabel olahraga
  • Ada search
  • Ada filter status/kategori
  • Ada form tambah/edit

Epic 14: Admin Feedback

FT-130 Admin feedback API

Priority: P1

Description:

Admin bisa melihat dan mengelola feedback user.

Acceptance criteria:

  • Admin bisa list feedback
  • Admin bisa filter status
  • Admin bisa melihat detail feedback
  • Admin bisa update status dan admin note

FT-131 Admin feedback UI

Priority: P1

Description:

Halaman feedback CMS.

Acceptance criteria:

  • Ada tabel/list feedback
  • Ada filter status dan tipe
  • Ada drawer/detail feedback
  • Admin bisa update status

Epic 15: Notifications

FT-140 Admin notification API

Priority: P2

Description:

Admin bisa membuat campaign notifikasi.

Acceptance criteria:

  • Admin bisa membuat notifikasi
  • Admin bisa memilih target segment
  • Admin bisa menjadwalkan notifikasi
  • Status campaign tersimpan

FT-141 Admin notification UI

Priority: P2

Description:

Halaman notification center CMS.

Acceptance criteria:

  • Ada list campaign
  • Ada form campaign
  • Ada pilihan segment
  • Ada status scheduled/sent

Epic 16: Security & Permissions

FT-150 Supabase RLS policies

Priority: P0

Description:

Menyiapkan Row Level Security untuk data user dan admin.

Acceptance criteria:

  • User hanya bisa akses data miliknya sendiri
  • User hanya bisa membaca artikel published
  • User hanya bisa membaca food/exercise active
  • Admin role bisa mengakses data sesuai permission

FT-151 Admin permission guard

Priority: P0

Description:

Permission guard untuk CMS.

Acceptance criteria:

  • Super admin bisa semua
  • Content admin bisa content, food, exercise
  • Support admin bisa feedback dan read-only users
  • Unauthorized action ditolak

Epic 17: QA & Release

FT-160 Seed demo data

Priority: P1

Description:

Membuat data contoh untuk testing dan demo.

Acceptance criteria:

  • Ada beberapa user demo
  • Ada food items demo
  • Ada exercise items demo
  • Ada articles demo
  • Ada logs demo untuk dashboard

FT-161 Mobile smoke test

Priority: P0

Description:

Testing alur utama aplikasi mobile.

Acceptance criteria:

  • Register/login berhasil
  • Setup profile berhasil
  • Dashboard tampil
  • Catat makan berhasil
  • Catat olahraga berhasil
  • Catat berat berhasil
  • Tambah air berhasil
  • Progress tampil

FT-162 Admin CMS smoke test

Priority: P0

Description:

Testing alur utama admin CMS.

Acceptance criteria:

  • Admin login berhasil
  • Overview tampil
  • Artikel bisa dibuat
  • Food item bisa dibuat
  • Exercise item bisa dibuat
  • Feedback bisa dilihat

Suggested Sprint Plan

Sprint 0: Foundation

Target:

  • Repo structure
  • Database schema
  • Backend API setup
  • Auth middleware
  • Design tokens

Tasks:

  • FT-001
  • FT-002
  • FT-003
  • FT-010
  • FT-011
  • FT-012
  • FT-013

Sprint 1: Mobile Core Setup

Target:

  • Auth
  • Onboarding
  • Profile setup
  • Daily targets

Tasks:

  • FT-020
  • FT-021
  • FT-022
  • FT-023

Sprint 2: Mobile Tracking Core

Target:

  • Dashboard
  • Meal tracking
  • Water tracking

Tasks:

  • FT-030
  • FT-031
  • FT-032
  • FT-040
  • FT-041
  • FT-042
  • FT-062
  • FT-063

Sprint 3: Exercise, Weight, Progress

Target:

  • Exercise tracking
  • Weight tracking
  • Progress page

Tasks:

  • FT-050
  • FT-051
  • FT-052
  • FT-060
  • FT-061
  • FT-070
  • FT-071

Sprint 4: Admin CMS Core

Target:

  • Admin login
  • Admin layout
  • Admin overview
  • Content management

Tasks:

  • FT-100
  • FT-101
  • FT-102
  • FT-103
  • FT-110
  • FT-111

Sprint 5: Admin Database & Feedback

Target:

  • Food database
  • Exercise database
  • Feedback
  • Public tips

Tasks:

  • FT-080
  • FT-081
  • FT-090
  • FT-091
  • FT-120
  • FT-121
  • FT-122
  • FT-123
  • FT-130
  • FT-131

Sprint 6: Security, QA, MVP Release

Target:

  • RLS
  • Permission guard
  • Demo data
  • Smoke test
  • MVP release candidate

Tasks:

  • FT-150
  • FT-151
  • FT-160
  • FT-161
  • FT-162

MVP Release Checklist

  • Mobile app auth works
  • User can finish onboarding
  • User can log meal
  • User can log exercise
  • User can log weight
  • User can log water
  • Dashboard reflects today data
  • Progress page shows weekly summary
  • Tips page loads published articles
  • Feedback can be sent
  • Admin can login
  • Admin overview loads metrics
  • Admin can manage articles
  • Admin can manage food database
  • Admin can manage exercise database
  • Admin can review feedback
  • RLS policies are enabled
  • Basic smoke tests pass

Setelah backlog ini, langkah berikutnya adalah menentukan tech stack final dan struktur project agar backlog bisa langsung diterjemahkan menjadi implementasi.