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