{"id":26633729,"url":"https://github.com/mhkarimi1383/goexpensetracker","last_synced_at":"2025-04-10T17:38:07.415Z","repository":{"id":40589748,"uuid":"507681853","full_name":"mhkarimi1383/goExpenseTracker","owner":"mhkarimi1383","description":"Lovely Expense Tracker Powered by GoLang, GoTemplate, OpenIDConnect, MongoDB, Flat Remix CSS and Bootstrap","archived":false,"fork":false,"pushed_at":"2022-08-06T20:29:47.000Z","size":7846,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T10:14:52.503Z","etag":null,"topics":["bootstrap","bootstrap5","flat-remix","go","golang","gotemplate","mongodb","openid","openid-client","openid-connect","openid-connect-client","openidconnect"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mhkarimi1383.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-26T20:51:04.000Z","updated_at":"2023-07-19T11:58:06.000Z","dependencies_parsed_at":"2022-08-24T22:12:00.838Z","dependency_job_id":null,"html_url":"https://github.com/mhkarimi1383/goExpenseTracker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhkarimi1383%2FgoExpenseTracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhkarimi1383%2FgoExpenseTracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhkarimi1383%2FgoExpenseTracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhkarimi1383%2FgoExpenseTracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mhkarimi1383","download_url":"https://codeload.github.com/mhkarimi1383/goExpenseTracker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248018083,"owners_count":21034049,"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","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":["bootstrap","bootstrap5","flat-remix","go","golang","gotemplate","mongodb","openid","openid-client","openid-connect","openid-connect-client","openidconnect"],"created_at":"2025-03-24T15:16:14.245Z","updated_at":"2025-04-10T17:38:07.396Z","avatar_url":"https://github.com/mhkarimi1383.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Go Expense Tracker\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/mhkarimi1383/goExpenseTracker)](https://goreportcard.com/report/github.com/mhkarimi1383/goExpenseTracker)\n\n\u003c!-- \n## Demo --\u003e\n[![Demo](./demo.gif)](./demo.gif)\n\n\u003e Already deployed at [tracker.karimi.dev](https://tracker.karimi.dev) just contact me to get access\n\n## Powered by\n\n* GoLang\n* GoTemplate\n* OpenIDConnect (like Keycloak or Google)\n* MongoDB\n* Bootstrap\n* Flat Remix CSS\n* Based on [goAPIBaseProject](https://github.com/mhkarimi1383/goAPIBaseProject)\n\n## How to bring it up?\n\nsince I'm using onedev in my lab you can see that [.onedev-buildspec.yml](.onedev-buildspec.yml) contains configuration needed to build and deploy the project\n\nor\n\nset required variables and run golang project directly\n\nas you can see there are some configurations you need to set in order to build and deploy the project\n\nyou can use config file called `config.yml` or set Environment variables\n\nset environment variables like below and bring up the project\n\nEnvironment Variables | Config File Key | Description | Default Value\n---------------------|----------------|-------------|-------------\nMETRIC_ADDRESS | metric_address | Bind address for prometheus exporter | :9090\nAPI_ADDRESS | api_address | Bind address for main server | :8080\nSENTRY_DSN | sentry_dsn | DSN address for sending logs and errors to sentry | -\nLOG_FORMAT | log_format | Format for logging can be either `text` or `json` | text\nAPPLICATION_TITLE | application_title | Title of application used for Database, etc. | goExpenseTracker\nAPPLICATION_DESCRIPTION | application_description | Description of application (not used in this project) | -\nMONGODB_CONNECTION_URI | mongodb_connection_uri | URI for MongoDB connection | -\nOPENID_ADDRESS | openid_address | Endpoint of OpenID Provider | -\nOPENID_CLIENT_SECRET | openid_client_secret | Secret from OpenID Connect Provider | -\nOPENID_CLIENT_ID | openid_client_id | ID for OpenID Connect Provider Client | -\nOPENID_USERNAME_KEY | openid_username_key | Unique Key from OpenID Connect Provider to use as username (refer to provider documentation about jwt Token Spec) | preferred_username\nBASE_URL | base_url | Base URL for application with protocol (`http` or `https` and no trailing slash [`/`]) | `http://127.0.0.1:8080`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhkarimi1383%2Fgoexpensetracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmhkarimi1383%2Fgoexpensetracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhkarimi1383%2Fgoexpensetracker/lists"}