Model-View-Controller Overview

The Expenses Manager application uses a Model-View-Controller (MVC) pattern, using Firebase services for our backend and JavaFX for the user interface.

Model View Controller Pattern

We separate the apps logic into three components

  1. Model - represents the data & business logic of the app. See User , Expense , Notification and Report

  2. View - Handles the frontend, implemented using JavaFX

  3. Controller - Enables communication between the Model and the View, handling users input and updating the Model/View. See MainPageController, DashboardController, and LoginController

You can view more information about each component in Components

Firebase integration

We use Firebase for our backend

  1. Firebase - We use Firebase which stores and syncs users data.

  2. Firebase Auth - We use Firebase Auth for user authentication which provides secure sign ups and sign ins. We support email and password auth.

JavaFX UI

We use JavaFX for our UI.

  1. FXML - We use FXML to design our applications views.

  2. CSS - Allows for the styling of our FXML

  3. Scene Graph - A feature of JavaFX, allows us to create and manage UI components.

UML

Last updated