https://github.com/kirara02/presensa-app
https://github.com/kirara02/presensa-app
appwrite flutter l10n presence-app riverpod
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/kirara02/presensa-app
- Owner: Kirara02
- Created: 2025-09-01T07:18:01.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-09-11T05:50:33.000Z (10 months ago)
- Last Synced: 2025-09-11T07:58:51.438Z (10 months ago)
- Topics: appwrite, flutter, l10n, presence-app, riverpod
- Language: Dart
- Homepage:
- Size: 543 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Presensa App adalah aplikasi Flutter untuk sistem presensi dengan Appwrite sebagai backend.
## ๐ฆ Fitur
- **Authentication**: Login (Admin & Employee)
- **State Management**: Menggunakan Riverpod
- **Appwrite Database**: Penyimpanan data user dan role
- **Localization**: Mendukung multi bahasa (l10n)
- **Struktur modular**: Siap dikembangkan untuk fitur selanjutnya
---
## ๐ Setup Project
1. Clone repository
```bash
git clone
cd presensa_app
```
2. install dependencies
```bash
flutter pub get
```
3. Jalankan project
```bash
flutter run
```
## ๐ Struktur Project
```
lib/
โโโ main.dart # Entry point aplikasi
โโโ src/
โโโ presensa.dart # Root widget aplikasi
โโโ constants/ # Konstanta global (warna, ukuran, enum, dsb)
โโโ core/ # Core logic: logger, provider global, mixin, exception
โโโ features/ # Fitur utama aplikasi (auth, home, dsb)
โโโ l10n/ # Localization (multi bahasa)
โโโ routes/ # Konfigurasi dan sub-routes aplikasi
โโโ utils/ # Utility/helper & extension function
โโโ widgets/ # Widget reusable & komponen UI
```
## ๐ Backend (Appwrite)
Aplikasi ini menggunakan **Appwrite Cloud** sebagai backend untuk autentikasi dan database.
### ๐ Struktur Database
- **Database**: `presensa_db`
- **Tables (Collections)**:
- `companies`
- `name` (string)
- `address` (string)
- `location` (string, optional)
- `users`
- `userId` (string, relasi ke Appwrite Users)
- `role` (string: `admin` | `employee`)
- `companyId` (string, relasi ke `companies`)
- `department` (string, optional)
- `phone` (string, optional)
### ๐ User Roles
- **Admin**
- Membuat dan mengelola perusahaan
- Mengatur data karyawan
- **Employee**
- Hanya bisa login & mengakses fitur presensi
---
## ๐งช Seeder Script
Seeder tersedia di folder `script/` menggunakan **Python + Appwrite SDK**.
Fungsi:
- Membuat `Company`
- Membuat `Admin User`
- Menghubungkan Admin ke Company
### Menjalankan Seeder
1. Masuk ke folder `script/`
```bash
cd script
```
2. Aktifkan virtual environment
```bash
source venv/bin/activate
```
3. Jalankan seeder
```bash
python seeder.py
```