Skip to content
This repository was archived by the owner on Jul 28, 2025. It is now read-only.
/ Expenses Public archive

CT60A2412 Object-Oriented Programming, Project Work

Notifications You must be signed in to change notification settings

jaczanet/Expenses

Repository files navigation

Project Work

Personal expenses tracking application with a minimalistic yet modern design.

Time to find out where the money goes.

Team members

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

Features

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

Compliance with project requirements

  • 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
  • Android architectural principles

Class Diagram

Modifiers Convention
  • Abstract : Italics
  • Static : Underlined
  • Final : ALL_CAPS

class diagram

Click on the diagram to open it full-screen. Tip: You may zoom out to gain a broad overview.

Screenshots

About

CT60A2412 Object-Oriented Programming, Project Work

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages