From fec4d694556324a92bcbd04c57c36237806fd574 Mon Sep 17 00:00:00 2001 From: Jeff Brimager Date: Mon, 16 Jun 2025 10:51:28 -0500 Subject: [PATCH 1/5] updated python and maven versions as well as mocha path Signed-off-by: Jeff Brimager --- .devcontainer/devcontainer.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 724008e0..a9f560f5 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -9,7 +9,7 @@ "nodeGypDependencies": true, "version": "lts" }, - "ghcr.io/devcontainers-contrib/features/mocha:2": { + "ghcr.io/devcontainers-extra/features/mocha:2": { "version": "latest" }, "ghcr.io/devcontainers/features/docker-in-docker:2": { @@ -17,10 +17,11 @@ }, "ghcr.io/devcontainers/features/java:1": { "version": "17", - "installMaven": true + "installMaven": true, + "mavenVersion": "3.9.10" }, "ghcr.io/devcontainers/features/python:1": { - "version": "3.8" + "version": "3.11" } }, "customizations": { @@ -49,5 +50,5 @@ // } // } // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" + // "remoteUser": "root" } \ No newline at end of file From 0c4181f5a2a805c4fbc5f545b1a59074ca46bf07 Mon Sep 17 00:00:00 2001 From: Raffaele Marcello Date: Mon, 26 May 2025 02:22:08 +0200 Subject: [PATCH 2/5] Add Expense Tracker challenge and placeholders for backend and frontend --- README.md | 1 + challenges/expensetracker/README.md | 78 +++++++++++++++++++ .../expensetracker/backend/placeholder.md | 0 .../expensetracker/frontend/placeholder.md | 0 4 files changed, 79 insertions(+) create mode 100644 challenges/expensetracker/README.md create mode 100644 challenges/expensetracker/backend/placeholder.md create mode 100644 challenges/expensetracker/frontend/placeholder.md diff --git a/README.md b/README.md index 5fc3d6b0..603fe5c5 100644 --- a/README.md +++ b/README.md @@ -108,6 +108,7 @@ Run: - [Develop a chat based on websockets](./challenges/chatwebsockets/chatwebsockets.md) - [Behavior Driven Development (BDD) challenge](./challenges/bdd/README.md) - [Analysis cryptocurrency market](./challenges/cryptoanalisis/crypto.md) +- [Expnse Tracker](./challenges/expensetracker/README.md) ## Quick Links diff --git a/challenges/expensetracker/README.md b/challenges/expensetracker/README.md new file mode 100644 index 00000000..0938f75a --- /dev/null +++ b/challenges/expensetracker/README.md @@ -0,0 +1,78 @@ +# Develop an Expense Tracker + +## 1. Problem Description + +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. + +### Core Requirements: +- **Frontend**: Frontend interface for adding expenses and viewing summaries +- **Backend**: RESTful API (.NET Core, Python Flask, or Node.js Express) for expense management +- **Data Management**: Store expenses with amount, category, date, and description +- **Visualization**: Simple charts/graphs showing spending by category and over time +- **Categories**: Predefined spending categories (Food, Transport, Entertainment, etc.) + +### User Stories: +1. As a user, I can add a new expense with amount, category, and description +2. As a user, I can view all my expenses in a list format +3. As a user, I can see total spending for the current month +4. As a user, I can view spending breakdown by category +5. As a user, I can delete expenses I added by mistake + +## 2. Hints + +### Technical Implementation Hints: +- **Data Structure**: Simple expense object with id, amount, category, date, description +- **Storage**: In-memory array/list (no database needed) +- **Categories**: Fixed list like ["Food", "Transport", "Entertainment", "Shopping", "Bills"] +- **Charts**: Use Chart.js, Recharts, or simple CSS bars for visualization +- **Date Handling**: Use current date as default, allow manual date selection + +### Quick Start Tips: +- Start with add/list functionality first +- Use form validation for amount (must be positive number) +- Keep categories simple - just 5-6 predefined options +- Focus on current month data to keep calculations simple +- Use mock data initially to test the UI + +## 3. Time Needed + +**Estimated Duration: 45-60 minutes** + +### Time Breakdown: +- **Setup** (5-10 minutes): Project structure, dependencies +- **Backend CRUD** (15-20 minutes): Add expense, list expenses, delete expense endpoints +- **Frontend Forms** (15-20 minutes): Add expense form, expense list, basic styling +- **Summary/Charts** (10-15 minutes): Category totals, simple visualization + +## 4. Extra Features (Bonus Challenges) + +Quick additions for teams that finish early: + +### Easy Additions (5-10 minutes each): +- **Edit Expenses**: Modify existing expense entries +- **Date Filtering**: Filter expenses by date range +- **Expense Search**: Search expenses by description +- **Export Data**: Download expenses as CSV + +### Medium Additions (10-15 minutes each): +- **Budget Limits**: Set monthly budgets per category with warnings +- **Recurring Expenses**: Add monthly recurring expenses automatically +- **Tags**: Add custom tags to expenses for better organization +- **Receipt Notes**: Add notes or receipt numbers to expenses + +### Why Perfect for 1-Hour Challenge: +- **Relatable Problem**: Everyone tracks expenses or should +- **Clear CRUD Operations**: Standard create, read, delete patterns +- **Simple Calculations**: Basic arithmetic for totals and averages +- **Visual Results**: Charts and summaries provide immediate feedback +- **Practical Utility**: Participants build something actually useful + +### Success Criteria: +- ✅ Can add new expenses +- ✅ Can view list of expenses +- ✅ Can see monthly total +- ✅ Can delete expenses +- ✅ Shows category breakdown +- ✅ Basic styling/layout + +This challenge combines practical business logic, data visualization, and user experience design - perfect for demonstrating real-world application development skills in a short timeframe! \ No newline at end of file diff --git a/challenges/expensetracker/backend/placeholder.md b/challenges/expensetracker/backend/placeholder.md new file mode 100644 index 00000000..e69de29b diff --git a/challenges/expensetracker/frontend/placeholder.md b/challenges/expensetracker/frontend/placeholder.md new file mode 100644 index 00000000..e69de29b From 28959829afd5d64485d04329a03ce67c2496557e Mon Sep 17 00:00:00 2001 From: Raffaele Marcello Date: Mon, 26 May 2025 02:23:22 +0200 Subject: [PATCH 3/5] Fix typo in Expense Tracker link in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 603fe5c5..c7a6415b 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ Run: - [Develop a chat based on websockets](./challenges/chatwebsockets/chatwebsockets.md) - [Behavior Driven Development (BDD) challenge](./challenges/bdd/README.md) - [Analysis cryptocurrency market](./challenges/cryptoanalisis/crypto.md) -- [Expnse Tracker](./challenges/expensetracker/README.md) +- [Expense Tracker](./challenges/expensetracker/README.md) ## Quick Links From f40a01cd013841e213e6464332ac418e4d2b9a48 Mon Sep 17 00:00:00 2001 From: Raffaele Marcello Date: Mon, 26 May 2025 09:15:54 +0200 Subject: [PATCH 4/5] Add instructions for working in the correct directory for frontend and backend --- challenges/expensetracker/README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/challenges/expensetracker/README.md b/challenges/expensetracker/README.md index 0938f75a..2650ef11 100644 --- a/challenges/expensetracker/README.md +++ b/challenges/expensetracker/README.md @@ -34,6 +34,13 @@ Build an **Expense Tracker** microservice that helps users log daily expenses an - Focus on current month data to keep calculations simple - Use mock data initially to test the UI +### +If you are using the Agent mode and notice that the agent is working in the wrong directory, try to add the following line to your prompt: +```markdown +Work in the directory backend. When run terminal remember to change the right directory, for example: `cd challenges/expensetracker/backend && `. +``` +Change the directory to `frontend` when working on the frontend part. + ## 3. Time Needed **Estimated Duration: 45-60 minutes** From 9fdf3e045c86716a6f025a5b3ecddd4e201f271a Mon Sep 17 00:00:00 2001 From: Raffaele Marcello Date: Mon, 26 May 2025 09:17:59 +0200 Subject: [PATCH 5/5] Add section header for Agent Mode Note in README.md --- challenges/expensetracker/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenges/expensetracker/README.md b/challenges/expensetracker/README.md index 2650ef11..f3b57ac6 100644 --- a/challenges/expensetracker/README.md +++ b/challenges/expensetracker/README.md @@ -34,7 +34,7 @@ Build an **Expense Tracker** microservice that helps users log daily expenses an - Focus on current month data to keep calculations simple - Use mock data initially to test the UI -### +### Agent Mode Note: If you are using the Agent mode and notice that the agent is working in the wrong directory, try to add the following line to your prompt: ```markdown Work in the directory backend. When run terminal remember to change the right directory, for example: `cd challenges/expensetracker/backend && `.