{"id":23906974,"url":"https://github.com/letsmakecakes/expense-tracker","last_synced_at":"2025-02-23T14:16:26.333Z","repository":{"id":270512151,"uuid":"863082477","full_name":"letsmakecakes/expense-tracker","owner":"letsmakecakes","description":"A simple and efficient command-line tool built in Go to manage personal finances. Add, update, delete, and view expenses, with features like expense summaries and optional budget tracking.","archived":false,"fork":false,"pushed_at":"2024-12-31T19:34:01.000Z","size":12,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-31T20:28:21.638Z","etag":null,"topics":["budgeting","cli","command-line-tool","expense-tracker","finance-cli","financial-management","go-cli","go-project","golang","json-storage","personal-finance"],"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/letsmakecakes.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}},"created_at":"2024-09-25T17:23:39.000Z","updated_at":"2024-12-31T19:34:05.000Z","dependencies_parsed_at":"2024-12-31T20:28:44.287Z","dependency_job_id":"632b4b98-5772-448e-83ef-7aded0eaa330","html_url":"https://github.com/letsmakecakes/expense-tracker","commit_stats":null,"previous_names":["letsmakecakes/expense-tracker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsmakecakes%2Fexpense-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsmakecakes%2Fexpense-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsmakecakes%2Fexpense-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsmakecakes%2Fexpense-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/letsmakecakes","download_url":"https://codeload.github.com/letsmakecakes/expense-tracker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240324066,"owners_count":19783455,"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":["budgeting","cli","command-line-tool","expense-tracker","finance-cli","financial-management","go-cli","go-project","golang","json-storage","personal-finance"],"created_at":"2025-01-05T02:15:47.032Z","updated_at":"2025-02-23T14:16:26.071Z","avatar_url":"https://github.com/letsmakecakes.png","language":"Go","readme":"# Expense Tracker CLI\n\nA command-line expense tracking application written in Go that helps you manage and analyze your personal expenses.\n\n## Features\n\n- Add expenses with description, amount, and category\n- Update existing expenses\n- Delete expenses\n- View all expenses in a formatted list\n- Get expense summaries (total and monthly)\n- JSON-based persistent storage\n- Concurrent-safe operations\n\n## Installation\n\n### Prerequisites\n\n- Go 1.20 or higher\n- Git\n\n### Building from Source\n\n1. Clone the repository\n```bash\ngit clone https://github.com/yourusername/expense-tracker.git\ncd expense-tracker\n```\n\n2. Build the application\n```bash\ngo build -o expense-tracker cmd/expense-tracker/main.go\n```\n\n3. Set the data file path\n```bash\nexport EXPENSES_FILE_PATH=/path/to/custom/expenses.json\n```\n\n4. (Optional) Add to PATH\n```bash\nsudo mv expense-tracker /usr/local/bin/\n```\n\n## Usage\n\n### Adding an Expense\n```bash\nexpense-tracker add --description \"Lunch\" --amount 20 --category \"food\"\n# Expense added successfully (ID: 1)\n```\n\n### Listing All Expenses\n```bash\nexpense-tracker list\n# ID  Date       Description  Amount  Category\n# 1   2024-08-06  Lunch       $20.00  food\n# 2   2024-08-06  Dinner      $30.00  food\n```\n\n### Getting a Summary\n```bash\n# Total summary\nexpense-tracker summary\n# Total expenses: $50.00\n\n# Monthly summary\nexpense-tracker summary --month 2024-08\n# Total expenses for August: $50.00\n```\n\n### Updating an Expense\n```bash\nexpense-tracker update --id 1 --description \"Late Lunch\" --amount 25\n# Expense updated successfully\n```\n\n### Deleting an Expense\n```bash\nexpense-tracker delete --id 1\n# Expense deleted successfully\n```\n\n## Command Reference\n\n### Add Command\n```bash\nexpense-tracker add --description \u003cdesc\u003e --amount \u003camount\u003e [--category \u003ccategory\u003e]\n```\n- `--description`: Description of the expense (required)\n- `--amount`: Amount spent (required, must be positive)\n- `--category`: Category of expense (optional, defaults to \"misc\")\n\n### List Command\n```bash\nexpense-tracker list\n```\nShows all expenses in a tabulated format.\n\n### Update Command\n```bash\nexpense-tracker update --id \u003cid\u003e [--description \u003cdesc\u003e] [--amount \u003camount\u003e] [--category \u003ccategory\u003e]\n```\n- `--id`: ID of the expense to update (required)\n- `--description`: New description (optional)\n- `--amount`: New amount (optional)\n- `--category`: New category (optional)\n\n### Delete Command\n```bash\nexpense-tracker delete --id \u003cid\u003e\n```\n- `--id`: ID of the expense to delete (required)\n\n### Summary Command\n```bash\nexpense-tracker summary [--month \u003cyear\u003e-\u003cmonth\u003e]\n```\n- `--month`: Month number (1-12) for monthly summary (optional)\n\n## Project Structure\n\n```\n.\n├── cmd\n│   └── expense-tracker\n│       └── main.go\n├── internal\n│   ├── cli\n│   │   └── cli.go\n│   ├── models\n│   │   └── expense.go\n│   ├── repository\n│   │   ├── interface.go\n│   │   └── file\n│   │       └── repository.go\n│   └── service\n│       └── expense_service.go\n├── pkg\n│   └── utils\n│       └── date.go\n├── go.mod\n└── README.md\n```\n\n## Data Storage\n\nExpenses are stored in a JSON file (`expenses.json`) in the current directory. The file is created automatically when the first expense is added. The storage is concurrent-safe and can handle multiple operations simultaneously.\n\n## Error Handling\n\nThe application includes comprehensive error handling for:\n- Invalid input values (negative amounts, invalid dates)\n- Non-existent expense IDs\n- File operations\n- Data validation\n\n## Development\n\n### Running Tests\n```bash\ngo test ./...\n```\n\n### Adding New Features\n\n1. Fork the repository\n2. Create a feature branch\n3. Implement your changes\n4. Add tests\n5. Submit a pull request\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Acknowledgments\n\n- Thanks to the Go community for the excellent standard library\n- Inspired by various CLI applications and expense tracking tools","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fletsmakecakes%2Fexpense-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fletsmakecakes%2Fexpense-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fletsmakecakes%2Fexpense-tracker/lists"}