This is a API RESTfull for managing expenses.
Berikut adalah fitur-fitur yang ada di Expense Tracker API:
- Registrasi untuk pengguna baru
- Login untuk pengguna, hasilkan dan validasi token JWT untuk menangani authentication dari pengguna.
- Menambahkan pengeluaran baru
- Menghapus pengeluaran yang ada (soft delete)
- Memperbaharui pengeluaran yang ada
- pengguna dapat melihat dan memfilter daftar pengeluaran mereka berdasarkan beberapa kriteria waktu yang berbeda:
- Minggu lalu - Filter pengeluaran yang dibuat dalam 7 hari terakhir
- Bulan lalu - Filter pengeluaran yang dibuat dalam 30 hari terakhir
- 3 Bulan terakhir - Filter pengeluaran yang dibuat dalam 3 bulan terakhir (90 hari)
- Kostum - Pengguna bisa memilih sendiri rentang waktu, yaitu dengan menentukan tanggal mulai dan tanggal akhir secara manual
Daftar framework & library apa saja yang digunakan:
- golang - Programming language
- postgreSQL - Relational database
- redis - Caching database
- docker - Docker
- gin - Web Framework
- GORM - Sql mapping object
- uuid - UUID
- viper - configuration file
- logrus - Logger
- migrate - Golang database migration
- Go Playground Validator - Validation
- go jwt - JSON Web token
- testify - Testing toolkit
- miniredis - Mock redis server
- sqlmock - Mock db sql
Api spec is in directory docs
make local
make run
make develop
# run unit-test user repository
make user-repository-test
# run unit-test user service/usecase
make user-service-test
# run unit-test user controller
make user-controller-test
pull docker image mrizkisaputra/expenses-api