{"id":19364468,"url":"https://github.com/math2001/money","last_synced_at":"2025-07-03T02:05:40.231Z","repository":{"id":74806441,"uuid":"224064483","full_name":"math2001/money","owner":"math2001","description":"[WIP] Something that keeps track of my expenses","archived":false,"fork":false,"pushed_at":"2023-02-25T01:21:09.000Z","size":440,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-03T02:04:30.764Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/math2001.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-26T00:01:48.000Z","updated_at":"2020-10-14T14:16:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"4f181130-ffc8-4c60-88af-d8bafb851901","html_url":"https://github.com/math2001/money","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/math2001/money","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/math2001%2Fmoney","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/math2001%2Fmoney/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/math2001%2Fmoney/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/math2001%2Fmoney/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/math2001","download_url":"https://codeload.github.com/math2001/money/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/math2001%2Fmoney/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263245301,"owners_count":23436512,"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":[],"created_at":"2024-11-10T07:37:28.905Z","updated_at":"2025-07-03T02:05:40.111Z","avatar_url":"https://github.com/math2001.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Money\n\nA project to keep track of the money I spent. All I need is an excel sheet, but\nI figured I'd try to build something myself so that I could learn about\nencryption and security.\n\n## Contributing\n\n### Conventions\n\n```go\n// yes\nt.Errorf(\"should have ErrSomething, got %s\", err)\n\n// no\nt.Errorf(\"wrong error, got %s, shoud have ErrSomething\", err)\n```\n\nTagging errors:\n\n```go\nvar ErrTag = errors.New(\"some tag\")\n\nt.Errorf(\"my specific error %w\", ErrTag)\n```\n\nNever call `r.ParseForm()`, but `r.ParseMultipartForm()`\n\n## To think about\n\nHow should internal errors be handled? How can you design error handling to be\nfuture proof (for eg. `MyFunc() error` never return an `ErrInternal` error in\nthe current version. What should my error handling look like? Do I just pass up\nall the errors I don't know anything about? Should they be tagged then? Should\nit even be legal to pass up an unknown error up the stack without tagging?)\n\nA caller shouldn't wrap an error it doesn't know anything about\n\n## Optimisation\n\nThis app is absolutely horrible when it comes to perfs. Probably the best thing\nto do is to run it under a profiler to see what's the worse. In the mean time,\nhere are some ideas:\n\n`users.list` should be a sorted list of independent JSON objects (not one big\nlists), so that we can stop reading into memory as soon as we found what we\nwanted...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmath2001%2Fmoney","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmath2001%2Fmoney","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmath2001%2Fmoney/lists"}