ScalaintermediatebackendAI generated

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

  1. 01

    Model transactions with algebraic data types

    ~2h

    Define case classes and sealed traits for transactions, categories, and validation errors.

  2. 02

    Implement add and remove operations

    ~2h

    Use Either to represent success or validation failure when adding or removing transactions.

  3. 03

    Implement JSON persistence with Circe

    ~2h

    Serialize and deserialize the transaction ledger to a JSON file using Circe codecs.

  4. 04

    Build a monthly summary report

    ~2h

    Aggregate transactions by category and month to produce a spending summary.

  5. 05

    Write unit tests

    ~1.5h

    Test 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.

~9.5h · 5 steps

Tech stack

Circesbt