Architecture / Architectural Style

System Architecture

Intaliq uses a client–server architecture: the mobile application is the client, and it communicates with a centralized backend server that owns authentication, the application logic, the database and the connection to an external AI service. This page presents the selected style, the reasons for choosing it, and how it is implemented, as set out in Deliverable 2. Read Deliverable 2 (PDF).

SEC_01

Selected Style

Primary Architecture

Client–Server Architecture

> The Intaliq mobile app as the client, communicating over HTTPS with a centralized backend server

SEC_02

Description

The client provides the user interface for the application’s features: activity monitoring, goal setting, session booking, partner matching and the AI Chatbox.

The application server handles user interaction with the system and processes requests. It is responsible for authentication and authorization and for application-level operations, and it communicates with the database and with other external services.

The database stores information about users, coaches, activities, goals, sessions and partners. The backend also communicates with an external AI service to provide the AI Chatbox features.

SEC_03

Justification

Client–server was chosen because it clearly separates the mobile application from the system’s backend processes, and it organizes the Intaliq system in a logical way.
  • Data centralization: user information, user actions, fitness goals and sessions are controlled through the backend and the database.
  • Security: authentication and authorization run on the server, which prevents unauthorized access to user information.
  • Maintainability: the backend and the mobile application can be maintained independently of each other.
  • Performance: data processing and database interactions are handled by the backend, while the mobile application focuses on interacting with the user.
  • Integration: the architecture supports data exchange with third-party services such as the AI service behind the AI Chatbox.
SEC_04

How It Is Implemented in Intaliq

The client–server architecture is implemented in Intaliq through four key components.

01 / Client

Intaliq Mobile Application

The application users interact with to log their activities, set goals, book sessions, find partners and talk to the AI Chatbox.

02 / Application Server

Intaliq Backend

Receives the operations requested by the mobile application over HTTPS and processes them:

  • Authentication & Authorization
  • User Management
  • Activity Management
  • Goal Management
  • Session Management
  • Partner Matching
  • AI Chatbox Integration
03 / Database

Intaliq Database

Stores the information the application needs to operate:

  • User Information
  • Coach Information
  • Activity Information
  • Goal Information
  • Session Information
  • Partner Information
04 / External Service

External AI Service

The backend connects to the AI service through an API over HTTPS. It powers the AI Chatbox, so users can ask questions and get fitness tips.

SEC_05

Communication Process

  1. 01 The user performs an action in the Intaliq Mobile Application.
  2. 02 The application sends the request to the backend server over HTTPS.
  3. 03 The backend authenticates the request and processes it as needed.
  4. 04 When required, the backend communicates with the database or the external AI service.
  5. 05 The backend returns the result of the operation to the application.
  6. 06 The application shows the result to the user.

This design matches the component diagram in the Development View and the deployment diagram in the Physical View.

SEC_06

Trade-offs & Limitations

Dependence on connectivityOutdoor workouts happen where coverage is weak, so the client needs a local store and a sync queue to avoid losing activity logs (CI-5) — extra logic that a purely online design would not need.
The backend is a single point of failureIf Supabase or the network is down, booking, admission and announcements all stop, which puts pressure on the 99% availability target and makes backups and monitoring necessary.
Round trips cost timeEvery list and statistic is a network call, so the 3-second and 4-second response targets (PER-1, PER-2) depend on caching and careful queries rather than on local computation.
SEC_07

Style Diagram

FIG_MAIN
FIG 1.0 // The four components of Intaliq’s client–server architecture: the mobile application (client), the Intaliq backend (application server), the Intaliq database, and the external AI service.
SEC_08

Inside the Client and the Server

The Software Design Document (Deliverable 3) refines each side of the client–server split with its own design view: the mobile application follows MVC, and the backend is organised in layers.

Client · Mobile Application

MVC Design View

MVC design diagram: View, Controller and Model inside the Intaliq mobile application, with the Model calling the Intaliq Backend API over HTTPS
  • Model — holds session, activity and goal data and talks to the backend API to read and update it.
  • View — shows the screens, collects input, and presents results and error messages.
  • Controller — handles actions from the View, works through the Model, and updates the View with the result.

Separating interface, data and control logic makes the app easier to maintain, extend and test. When a user books a session, the View passes the request to the Controller, which calls the backend through the Model and tells the View to show a confirmation or an error.

Server · Intaliq Backend

Layered Architecture Design View

Layered architecture diagram: presentation, business, services, persistence and database layers
  • Presentation · Business · Services · Persistence · Database — each layer only talks to the layer next to it.

A change in one layer does not ripple into the others, and the database can only be reached through the layers above it, which supports security. Each layer can be tested on its own, lower layers are reused by many features, and developers can work on different layers at the same time.