parent
9fb5783ea9
commit
0e80fd967f
6 changed files with 87 additions and 34 deletions
@ -0,0 +1,80 @@ |
||||
--- |
||||
title: 'Expense Tracker' |
||||
description: 'Build a simple expense tracker application to manage your finances.' |
||||
isNew: false |
||||
sort: 2 |
||||
difficulty: 'beginner' |
||||
nature: 'CLI' |
||||
skills: |
||||
- 'Programming Language' |
||||
- 'CLI' |
||||
- 'Filesystem' |
||||
- 'Logic Building' |
||||
seo: |
||||
title: 'Expense Tracker' |
||||
description: 'Build a simple expense tracker application to manage your finances.' |
||||
keywords: |
||||
- 'expense tracker cli' |
||||
- 'backend project idea' |
||||
roadmapIds: |
||||
- 'backend' |
||||
--- |
||||
|
||||
Build a simple expense tracker application to manage your finances. The application should allow users to add, delete, and view their expenses. The application should also provide a summary of the expenses. |
||||
|
||||
## Requirements |
||||
|
||||
Application should run from the command line and should have the following features: |
||||
|
||||
- Users can add an expense with a description and amount. |
||||
- Users can update an expense. |
||||
- Users can delete an expense. |
||||
- Users can view all expenses. |
||||
- Users can view a summary of all expenses. |
||||
- Users can view a summary of expenses for a specific month (of current year). |
||||
|
||||
Here are some additional features that you can add to the application: |
||||
|
||||
- Add expense categories and allow users to filter expenses by category. |
||||
- Allow users to set a budget for each month and show a warning when the user exceeds the budget. |
||||
- Allow users to export expenses to a CSV file. |
||||
|
||||
The list of commands and their expected output is shown below: |
||||
|
||||
```bash |
||||
$ expense-tracker add --description "Lunch" --amount 20 |
||||
# Expense added successfully (ID: 1) |
||||
|
||||
$ expense-tracker add --description "Dinner" --amount 10 |
||||
# Expense added successfully (ID: 2) |
||||
|
||||
$ expense-tracker list |
||||
# ID Date Description Amount |
||||
# 1 2024-08-06 Lunch $20 |
||||
# 2 2024-08-06 Dinner $10 |
||||
|
||||
$ expense-tracker summary |
||||
# Total expenses: $30 |
||||
|
||||
$ expense-tracker delete --id 1 |
||||
# Expense deleted successfully |
||||
|
||||
$ expense-tracker summary |
||||
# Total expenses: $20 |
||||
|
||||
$ expense-tracker summary --month 8 |
||||
# Total expenses for August: $20 |
||||
``` |
||||
|
||||
## Implementation |
||||
|
||||
You can implement the application using any programming language of your choice. Here are some suggestions: |
||||
|
||||
- Use any programming language for any available module for parsing command arguments (e.g. python with the `argparse`, node.js with `commander` etc). |
||||
- Use a simple text file to store the expenses data. You can use JSON, CSV, or any other format to store the data. |
||||
- Add error handling to handle invalid inputs and edge cases (e.g. negative amounts, non-existent expense IDs, etc). |
||||
- Use functions to modularize the code and make it easier to test and maintain. |
||||
|
||||
<hr /> |
||||
|
||||
This project idea is a great way to practice your logic building skills and learn how to interact with the filesystem using a CLI application. It will also help you understand how to manage data and provide useful information to users in a structured way. |
@ -1,31 +0,0 @@ |
||||
--- |
||||
title: 'Stock CLI' |
||||
description: 'Build a command line interface (CLI) to track your tasks and manage your to-do list.' |
||||
isNew: false |
||||
difficulty: 'intermediate' |
||||
nature: 'API' |
||||
skills: |
||||
- 'Programming Language' |
||||
- 'CLI' |
||||
- 'Filesystem' |
||||
- 'Logic Building' |
||||
seo: |
||||
title: 'Task Tracker CLI' |
||||
description: 'Build a command line interface (CLI) to track your tasks and manage your to-do list.' |
||||
keywords: |
||||
- 'task tracker cli' |
||||
- 'backend project idea' |
||||
roadmapIds: |
||||
- 'backend' |
||||
--- |
||||
|
||||
You are required to build a command line interface (CLI) application that allows users to manage their tasks and to-do list. The application should be able to perform the following operations: |
||||
|
||||
- Add a new task |
||||
- List all tasks |
||||
- Mark a task as done |
||||
- Delete a task |
||||
- Update a task |
||||
- Search for a task |
||||
- Filter tasks by status (done, pending) |
||||
|
Loading…
Reference in new issue