Personal expenses tracking application with a minimalistic yet modern design.
Time to find out where the money goes.
- Jacopo Zanetti: Focus on Data and Domain Layers, realization of class diagrams and documentation.
- Enerel Tumurkhuu: Focus on UI Layer (UI Classes and xml files), and UI/UX Design on Figma.
- Gabriel Concepcion: Focus on UI Layer (UI Classes and xml files), realization of presentation video.
- Material Design 3.
- Material You dynamic colors, in icons and UI elements.
- 100% offline, data is saved locally and never leaves your device.
- Privacy respecting, no permissions required.
- Track your transactions details:
- Date,
- Amount,
- Note,
- Category,
- Account.
- Follow your account balances, whether starting from zero or an existing balance.
- Monthly statistics based on transaction categories.
- Sensible colors to differentiate expenses and incomes.
- Filter transactions per category or account.
- Sensible presentation of data with built-in sorting logic.
- English-only codebase
- 100% Java, support Android 10 or higher
- Make extensive use of Java's rich type system
- Abstract classes
- Static methods
- Interfaces
- Generics
- Enums
- OOP Design Patterns
- Singletons
- Inheritance and Polymorphism
- SOLID principles
- Data Structures
- ArrayLists are widely used throughout the code
- HashMaps are used when convenient over ArrayLists
- Many different POJOs definted according to use case
- Android's officially recommended app architecture
- UI Layer
- Activities and Fragments
- FlexBox Layouts with Recycler Views
- UI Elements
- Navigation Bar
- Tool Bar
- Material CardViews
- Dropdown Menus
- Date Picker
- Material Buttons
- Domain Layer
- UseCases
- Data Layer
- Repositories
- DataSources
- UI Layer
- Android architectural principles
- Unidirectional Data Flow
- Single Source of Truth
- One-shot CRUD APIs exposed by the Data Layer
- Abstract : Italics
- Static : Underlined
- Final : ALL_CAPS
Click on the diagram to open it full-screen. Tip: You may zoom out to gain a broad overview.
![]() |
![]() |
![]() |
|
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |





















