An open API service indexing awesome lists of open source software.

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

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
```