{"id":17572339,"url":"https://github.com/mrizkisaputra/expenses-api","last_synced_at":"2025-10-14T21:07:32.754Z","repository":{"id":258994939,"uuid":"874690165","full_name":"mrizkisaputra/expenses-api","owner":"mrizkisaputra","description":"API RESTfull for managing expenses","archived":false,"fork":false,"pushed_at":"2024-11-27T09:47:12.000Z","size":188,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-02T23:10:00.357Z","etag":null,"topics":["backend","clean-architecture","docker","expenses","gin-gonic","golang","gorm","postgresql","restapi","webapi"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrizkisaputra.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-18T09:32:58.000Z","updated_at":"2024-12-05T04:22:51.000Z","dependencies_parsed_at":"2025-04-12T18:54:42.185Z","dependency_job_id":"44caa13a-aece-44a4-9b48-3f749fbb637a","html_url":"https://github.com/mrizkisaputra/expenses-api","commit_stats":{"total_commits":20,"total_committers":1,"mean_commits":20.0,"dds":0.0,"last_synced_commit":"237739a0c5057c350ecd0aa18df4e6977fd34496"},"previous_names":["mrizkisaputra/expenses-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mrizkisaputra/expenses-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrizkisaputra%2Fexpenses-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrizkisaputra%2Fexpenses-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrizkisaputra%2Fexpenses-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrizkisaputra%2Fexpenses-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrizkisaputra","download_url":"https://codeload.github.com/mrizkisaputra/expenses-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrizkisaputra%2Fexpenses-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279021331,"owners_count":26087018,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","clean-architecture","docker","expenses","gin-gonic","golang","gorm","postgresql","restapi","webapi"],"created_at":"2024-10-21T19:03:52.651Z","updated_at":"2025-10-14T21:07:32.737Z","avatar_url":"https://github.com/mrizkisaputra.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Web API Expense Tracker #\nThis is a API RESTfull for managing expenses.\n\n## Features\nBerikut adalah fitur-fitur yang ada di **_Expense Tracker API_**:\n- _Registrasi_ untuk pengguna  baru\n- _Login_ untuk pengguna, hasilkan dan validasi token _JWT_ untuk menangani _authentication_ dari pengguna.\n- Menambahkan pengeluaran baru\n- Menghapus pengeluaran yang ada (soft delete)\n- Memperbaharui pengeluaran yang ada\n- pengguna dapat melihat dan memfilter daftar pengeluaran mereka berdasarkan beberapa kriteria waktu yang berbeda:\n    - Minggu lalu - Filter pengeluaran yang dibuat dalam 7 hari terakhir\n    - Bulan lalu - Filter pengeluaran yang dibuat dalam 30 hari terakhir\n    - 3 Bulan terakhir - Filter pengeluaran yang dibuat dalam 3 bulan terakhir (90 hari)\n    - Kostum - Pengguna bisa memilih sendiri rentang waktu, yaitu dengan menentukan tanggal mulai dan tanggal akhir secara manual\n\n\n## Architecture Application\n\u003cimg src=\"./docs/architecture-application.png\"\u003e\n\n## Design Schema Database\n![skema database](./docs/skema-database.png)\n\n## Tech Stack\nDaftar framework \u0026 library apa saja yang digunakan:\n- [golang](https://go.dev/) - Programming language\n- [postgreSQL](https://www.postgresql.org/docs/) - Relational database\n- [redis](https://github.com/redis/go-redis) - Caching database\n- [docker](https://www.docker.com/) - Docker\n- [gin](https://gin-gonic.com/) - Web Framework\n- [GORM](https://gorm.io/docs/index.html) -  Sql mapping object\n- [uuid](https://github.com/google/uuid) - UUID\n- [viper](https://github.com/spf13/viper) - configuration file\n- [logrus](https://github.com/sirupsen/logrus) - Logger\n- [migrate](https://github.com/golang-migrate/migrate) - Golang database migration\n- [Go Playground Validator](https://github.com/go-playground/validator) - Validation\n- [go jwt](https://github.com/golang-jwt/jwt) - JSON Web token\n- [testify](https://github.com/stretchr/testify) - Testing toolkit\n- [miniredis](https://github.com/alicebob/miniredis) - Mock redis server\n- [sqlmock](https://github.com/DATA-DOG/go-sqlmock) - Mock db sql\n\n\n## API Documentation\nApi spec is in directory [docs](./docs)\n\n## How to run application?\n### Local development usage\n    make local\n    make run\n\n### Docker development usage  \n    make develop\n\n## Run Unit Test\n\n    # run unit-test user repository\n    make user-repository-test\n\n    # run unit-test user service/usecase\n    make user-service-test\n\n    # run unit-test user controller\n    make user-controller-test\n\n## Docker Registry\npull docker image [mrizkisaputra/expenses-api](https://hub.docker.com/r/mrizkisaputra/expenses-api)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrizkisaputra%2Fexpenses-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrizkisaputra%2Fexpenses-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrizkisaputra%2Fexpenses-api/lists"}