Functional Personal Expense Tracker
Create an expense-tracking application that categorizes transactions and persists them as JSON, using purely functional data structures and the Either type for error handling. Learners practice case classes, algebraic data types, JSON serialization with Circe, and functional error handling.
- Estimate
- ~9.5h
- Steps
- 5
- Completed by
- 0
- Proposed by
- codeseed.app
Circe · sbt
Project roadmap
- 01
Model transactions with algebraic data types
~2hDefine case classes and sealed traits for transactions, categories, and validation errors.
- 02
Implement add and remove operations
~2hUse Either to represent success or validation failure when adding or removing transactions.
- 03
Implement JSON persistence with Circe
~2hSerialize and deserialize the transaction ledger to a JSON file using Circe codecs.
- 04
Build a monthly summary report
~2hAggregate transactions by category and month to produce a spending summary.
- 05
Write unit tests
~1.5hTest transaction operations, error cases, and JSON round-tripping.
Resources
Ready to build this?
Get a GitHub repo and start building. Your AI reviewer checks each step as you go.
Tech stack