MStore Dashboard - Nuxt 4 Application
MStore Dashboard adalah aplikasi backoffice modern yang dibangun dengan Nuxt 4 dan Vue 3 menggunakan Domain-Driven Design (DDD) dan Clean Architecture.Key Features
12 Domain Modules
Arsitektur modular dengan 12 domain bisnis terpisah (01_core - 12_global)
Spreadsheet Integration
Handsontable untuk editing data seperti Excel dengan validasi server-side
Secure Authentication
JWT dengan access token di memory dan refresh token HttpOnly cookie
Multi-Language
Dukungan 3 bahasa: English, Bahasa Indonesia, dan Japanese
Architecture
Tech Stack
Core Technologies
| Category | Technology | Version |
|---|---|---|
| Framework | Nuxt | 4.2.1 |
| UI Framework | Vue | 3.x (latest) |
| Language | TypeScript | 5.7.2 |
| Package Manager | pnpm | 10.24.0 |
State Management
| Category | Technology | Version |
|---|---|---|
| Store | Pinia | 3.0.4 |
| Persistence | pinia-plugin-persistedstate | 4.7.1 |
UI & Styling
| Category | Technology | Version |
|---|---|---|
| Component Library | Nuxt UI | 4.2.1 |
| CSS Framework | TailwindCSS | 4.1.17 |
| Icons | Iconify (heroicons, lucide) | Latest |
| Spreadsheet | Handsontable | 16.2.0 |
Internationalization
| Category | Technology | Version |
|---|---|---|
| i18n | @nuxtjs/i18n | 10.2.1 |
| Locales | English, Indonesian, Japanese | - |
Data & Storage
| Category | Technology | Version |
|---|---|---|
| IndexedDB | Dexie | 4.2.1 |
| Excel Export | xlsx | 0.18.5 |
| JWT Decode | jwt-decode | 4.0.0 |
Development
| Category | Technology | Version |
|---|---|---|
| Inspector | vite-plugin-vue-inspector | 5.3.2 |
| Dev Server Port | - | 4001 |
Architecture Diagram
Design Principles
Domain-Driven Design (DDD)
- Bounded Contexts: Setiap domain (inventory, sales, finance) terpisah dan independen
- Ubiquitous Language: Terminologi bisnis konsisten di seluruh codebase
- Aggregate Roots: Entitas utama per domain mengelola state-nya sendiri
Clean Architecture
- Separation of Concerns: UI, business logic, dan data access terpisah
- Dependency Inversion: High-level modules tidak bergantung pada low-level modules
- Testability: Setiap layer dapat di-test secara independen
- Maintainability: Perubahan di satu layer tidak mempengaruhi layer lain
Offline-First (Partial)
- IndexedDB Cache: Data geografis (countries, states, cities) di-cache lokal
- Optimistic UI: UI update sebelum konfirmasi server
- Background Sync: Sinkronisasi data di background
Security Features
Authentication
Authentication
- JWT token-based authentication
- Access token disimpan di memory (tidak di localStorage)
- Refresh token sebagai HttpOnly cookie
- Auto token refresh saat 401
Authorization
Authorization
Data Security
Data Security
- HTTPS-only communication
- No sensitive data in localStorage
- Credentials included for cookie auth
Quick Start
1
Clone Repository
2
Install Dependencies
3
Setup Environment
4
Run Development Server
http://localhost:4001Next Steps
Installation Guide
Panduan instalasi lengkap
Configuration
Konfigurasi environment dan Nuxt
Architecture Deep Dive
Memahami arsitektur DDD
Authentication
Implementasi autentikasi
Related Documentation
- Backend API Documentation - API yang digunakan dashboard
- Mobile Flutter - Aplikasi mobile dengan arsitektur serupa
- RBAC Guide - Role-based access control