Skip to the content.

🏗 Architecture Documentation

Overview

This application follows a Feature-Sliced Architecture (FSA) pattern, tailored for Flutter. The goal is to keep the codebase modular, testable, and maintainable by grouping related logic, models, and UI components into cohesive feature directories.

Folder Structure

Core Layer (lib/core/)

Contains shared utilities, global design tokens, and infrastructure-level widgets.

Data Layer (lib/data/)

Contains global data models and base repositories that are used across multiple features.

Feature Layer (lib/features/)

Each directory represents a standalone functional module.

Key Architecture Patterns

1. Instant Transitions

To provide a fast, “app-like” feel, we use NoTransitionsBuilder in the global MaterialApp theme. This removes the standard platform page animations, allowing for immediate navigation between main screens.

2. Skeleton Loaders (The Shimmer Pattern)

Every feature page must implement a “Skeleton” state to provide immediate visual feedback during data loading.

3. Repository Pattern

Data access is abstracted through repositories. Features often have their own local repositories (e.g., AttendanceRepository) which may interact with global data services or local storage.

4. Backup & Sync Engine

The application uses a bidirectional, merge-based sync with Google Drive.

Design Principles

The UI adheres to the Fluid Humanist design system.