The project focuses on creating a structured, robust, testable, scalable application for absence managers with mock data (JSON), supporting dark and light themes.
- Architecture
- Technologies and Libraries Used
- Supporting Operating Systems
- Getting Started
- Running the Project
- Author
The Project is Based on MVVM and Clean Architecture with consideration of SOLID principles which Includes four Module:
- App: responsible for the project's infrastructure including network handlers, exception handlers, and base files.
- Data: The data layer serves as a bridge between the domain layer and the presentation layer, supplying data by implementing data sources, repositories, and models.
- Domain: The domain layer encapsulates the core business logic and rules, acting as an intermediary between the data layer and presentation layer to ensure the separation of concerns and maintain a clean, business-centric architecture.
- Presentation: The presentation layer manages user interfaces and interactions, focusing on the visual representation of data and user experience. It relies on the domain layer for business logic and the data layer for data retrieval, fostering a clear separation of concerns in the application architecture.
-
Flutter: Flutter is a UI toolkit that enables the creation of natively compiled mobile, web, and desktop applications from a single codebase.
-
Freezed: A code generation package for unions/pattern-matching/copy/toString/equals/hashCode.
-
Get: A state management, Dependency Injection library for Flutter.
-
Json Annotation and Json Serializable: Packages for converting Dart objects to and from JSON.
-
Lottie: A Flutter package for smoothly displaying Lottie animations.
-
iCal: A Dart package to generate iCalendar files.
-
Path Provider: A Flutter plugin for finding commonly used locations on the filesystem. Supports Android, iOS, Linux, macOS and Windows.
-
Open File: A plug-in that can call native APP to open files with string results in the Flutter, support iOS(DocumentInteraction) / android(intent) / PC(ffi) / web(dart:html).
-
Build Runner: Provides a concrete way of generating files using Dart code. Files are always generated directly on disk, and rebuilds are incremental.
-
Flutter Lints: Contains a recommended set of lints for Flutter apps, packages, and plugins to encourage good coding practices.
-
Android
-
Web: generating the .iCal file is not supported on the web yet...
- Ensure that you have Flutter and Dart installed on your machine. Flutter Installation Guide
-
Clone the repository:
git clone https://github.com/m4rzb4ni/Absence-Manager-Flutter.git
-
Update the pub:
flutter pub get
-
Build models with Freezed:
dart run build_runner build --delete-conflicting-outputs
-
Build the apk:
flutter build apk
-
Build the web:
flutter build web
Hamidreza Marzbani
- LinkedIn: https://www.linkedin.com/in/marzbani/
- Email: marzbani.business[at]gmail[dot]com