Skip to content

Commit 0c4181f

Browse files
Raffaele Marcellocmendible
authored andcommitted
Add Expense Tracker challenge and placeholders for backend and frontend
1 parent 6f66712 commit 0c4181f

File tree

4 files changed

+79
-0
lines changed

4 files changed

+79
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ Run:
108108
- [Develop a chat based on websockets](./challenges/chatwebsockets/chatwebsockets.md)
109109
- [Behavior Driven Development (BDD) challenge](./challenges/bdd/README.md)
110110
- [Analysis cryptocurrency market](./challenges/cryptoanalisis/crypto.md)
111+
- [Expnse Tracker](./challenges/expensetracker/README.md)
111112

112113
## Quick Links
113114

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# Develop an Expense Tracker
2+
3+
## 1. Problem Description
4+
5+
Build an **Expense Tracker** microservice that helps users log daily expenses and visualize their spending patterns. The system should allow users to add expenses with categories, view spending summaries, and get insights into their financial habits.
6+
7+
### Core Requirements:
8+
- **Frontend**: Frontend interface for adding expenses and viewing summaries
9+
- **Backend**: RESTful API (.NET Core, Python Flask, or Node.js Express) for expense management
10+
- **Data Management**: Store expenses with amount, category, date, and description
11+
- **Visualization**: Simple charts/graphs showing spending by category and over time
12+
- **Categories**: Predefined spending categories (Food, Transport, Entertainment, etc.)
13+
14+
### User Stories:
15+
1. As a user, I can add a new expense with amount, category, and description
16+
2. As a user, I can view all my expenses in a list format
17+
3. As a user, I can see total spending for the current month
18+
4. As a user, I can view spending breakdown by category
19+
5. As a user, I can delete expenses I added by mistake
20+
21+
## 2. Hints
22+
23+
### Technical Implementation Hints:
24+
- **Data Structure**: Simple expense object with id, amount, category, date, description
25+
- **Storage**: In-memory array/list (no database needed)
26+
- **Categories**: Fixed list like ["Food", "Transport", "Entertainment", "Shopping", "Bills"]
27+
- **Charts**: Use Chart.js, Recharts, or simple CSS bars for visualization
28+
- **Date Handling**: Use current date as default, allow manual date selection
29+
30+
### Quick Start Tips:
31+
- Start with add/list functionality first
32+
- Use form validation for amount (must be positive number)
33+
- Keep categories simple - just 5-6 predefined options
34+
- Focus on current month data to keep calculations simple
35+
- Use mock data initially to test the UI
36+
37+
## 3. Time Needed
38+
39+
**Estimated Duration: 45-60 minutes**
40+
41+
### Time Breakdown:
42+
- **Setup** (5-10 minutes): Project structure, dependencies
43+
- **Backend CRUD** (15-20 minutes): Add expense, list expenses, delete expense endpoints
44+
- **Frontend Forms** (15-20 minutes): Add expense form, expense list, basic styling
45+
- **Summary/Charts** (10-15 minutes): Category totals, simple visualization
46+
47+
## 4. Extra Features (Bonus Challenges)
48+
49+
Quick additions for teams that finish early:
50+
51+
### Easy Additions (5-10 minutes each):
52+
- **Edit Expenses**: Modify existing expense entries
53+
- **Date Filtering**: Filter expenses by date range
54+
- **Expense Search**: Search expenses by description
55+
- **Export Data**: Download expenses as CSV
56+
57+
### Medium Additions (10-15 minutes each):
58+
- **Budget Limits**: Set monthly budgets per category with warnings
59+
- **Recurring Expenses**: Add monthly recurring expenses automatically
60+
- **Tags**: Add custom tags to expenses for better organization
61+
- **Receipt Notes**: Add notes or receipt numbers to expenses
62+
63+
### Why Perfect for 1-Hour Challenge:
64+
- **Relatable Problem**: Everyone tracks expenses or should
65+
- **Clear CRUD Operations**: Standard create, read, delete patterns
66+
- **Simple Calculations**: Basic arithmetic for totals and averages
67+
- **Visual Results**: Charts and summaries provide immediate feedback
68+
- **Practical Utility**: Participants build something actually useful
69+
70+
### Success Criteria:
71+
- ✅ Can add new expenses
72+
- ✅ Can view list of expenses
73+
- ✅ Can see monthly total
74+
- ✅ Can delete expenses
75+
- ✅ Shows category breakdown
76+
- ✅ Basic styling/layout
77+
78+
This challenge combines practical business logic, data visualization, and user experience design - perfect for demonstrating real-world application development skills in a short timeframe!

challenges/expensetracker/backend/placeholder.md

Whitespace-only changes.

challenges/expensetracker/frontend/placeholder.md

Whitespace-only changes.

0 commit comments

Comments
 (0)