Building Block View

Whitebox Overall System

Building Block View, Level 1
Figure 1. Building Block View, Level 1

LibreHousehold breaks down into two subsystems with multiple modules as shown above. The arrows indicate logical dependencies between the modules. The squared boxes on the membrane of the subsystems indicate ports. Modules shown in both subsystems with the same name are responsible for the same topic and can be seen as one module split into two parts. These modules don’t share any code but communicate via the defined ports.

Name Responsibility

Progressive Web App (PWA)

The PWA is the user interface of LibreHousehold. It is responsible for displaying data to the user and sending user commands to the backend.

Backend

The backend is responsible for processing user commands, managing data, and communicating with external services such as the database and authentication provider.

Expenses

The Expenses module is responsible for managing the expenses (CRUD)

Tasks

The Tasks module is responsible for managing the tasks (CRUD)

User Settings

The User Settings module is responsible for managing user-specific settings such as preferences and changing log in data like email or password.

App Settings

The App Settings module is a special module only in the frontend for managing frontend (App) specific settings

Household

The Household module is responsible for creating and managing households including inviting and removing users.

Setup

The Setup module is responsible initially setting up the application and guiding the administrator through the setup process.

Administration

The Administration module is responsible for managing the application, including user management and system settings.

Notifications

The Notifications module is responsible for sending and showing notifications to the user. It also allows users to configure their notification settings.