https://github.com/dimframework/dimulai
Starter kit untuk membangun aplikasi web dengan Dim Framework (Go)
https://github.com/dimframework/dimulai
boilerplate dim-framework go golang postgresql rest-api starter-kit web-framework
Last synced: 3 months ago
JSON representation
Starter kit untuk membangun aplikasi web dengan Dim Framework (Go)
- Host: GitHub
- URL: https://github.com/dimframework/dimulai
- Owner: dimframework
- Created: 2026-01-26T10:32:45.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-01-26T10:43:26.000Z (5 months ago)
- Last Synced: 2026-01-27T00:35:34.397Z (5 months ago)
- Topics: boilerplate, dim-framework, go, golang, postgresql, rest-api, starter-kit, web-framework
- Language: Go
- Size: 43.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Dimulai - Starter Kit untuk Framework Dim
Dimulai adalah starter kit membangun aplikasi API dengan Framework Dim.
## Fitur
- **Autentikasi**: Registrasi pengguna, login, token rotation, dan alur reset password.
- **Database**: Integrasi PostgreSQL dengan primary key UUID dan migrasi berbasis timestamp.
- **Layanan Email**: Pengiriman email berbasis template (HTML & Teks).
- **Keamanan**: Rate limiting dan secure password hashing.
- **REST API**: Endpoint API dan handler yang terstruktur.
- **CLI**: Perintah konsol untuk serve dan migrasi.
## Memulai
### Prasyarat
- Go 1.25+
- PostgreSQL
### Instalasi
1. Clone repositori ini.
2. Salin `.env.example` ke `.env`:
```bash
cp .env.example .env
```
3. Perbarui `.env` dengan kredensial database Anda.
### Konfigurasi
Periksa `.env` untuk opsi konfigurasi yang tersedia:
- `DB_*`: Pengaturan koneksi database.
- `JWT_*`: Rahasia JWT dan kedaluwarsa.
- `SERVER_*`: Port server dan timeout.
- `MAIL_*`: Konfigurasi layanan email (SMTP/SES) dan branding.
- `RATE_LIMIT_*`: Pengaturan API rate limiting.
### Menjalankan Aplikasi
Arahkan ke entry point aplikasi:
```bash
cd cmd/app
```
Mulai server:
```bash
go run . serve
```
Jalankan migrasi:
```bash
go run . migrate
```
Lihat daftar rute:
```bash
go run . route:list
```
### Pengujian
Jalankan integration tests (memerlukan Docker atau Postgres lokal):
```bash
# Buat konfigurasi pengujian
cp .env.example .env.test
# (Edit .env.test agar mengarah ke database pengujian, mis. DB_NAME=dimulai_test)
# Jalankan pengujian
go test -v ./...
```
## Struktur
- `cmd/app/main.go`: Entry point aplikasi dan wiring.
- `handler.go`: AppHandler dan wiring router.
- `auth_handler.go`: Endpoint autentikasi (Login, Register, Reset Password).
- `user_handler.go`: Endpoint profil pengguna.
- `email_service.go`: Logika pengiriman email dan rendering template.
- `user.go` & `user_store.go`: Domain model pengguna dan repository database.
- `migrations/`: File migrasi database.
- `templates/emails/`: Template HTML/Teks email dan layout.
## Lisensi
MIT