- Introduction
- SOLID Principles
- Clean Architecture
- Flutter Packages
- BLoC Pattern
- Screenshots
- Installation
- Contributors
1. Introduction
Project PULSE (Platform for Unified Learning & Student Engagement) is an integrated educational platform designed to enhance the learning experience for students. With 14 comprehensive modules (3 modules completed), PULSE offers solutions for attendance management, class scheduling, task organization, news dissemination, result analysis, personalized learning pathways, mental health support, interactive chatbot assistance, student feedback collection, collaborative forums, institutional resource access, expert editorials, and interactive hints. By prioritizing user experience and customization, PULSE aims to provide a seamless and engaging environment for students to excel academically, connect with peers, and access the resources they need to succeed. Through continuous improvement and innovation, PULSE strives to empower students in their educational journey.
A class should have one, and only one, reason to change.
You should be able to extend a classes behavior, without modifying it.
Derived classes must be substitutable for their base classes.
Make fine grained interfaces that are client specific.
Depend on abstractions, not on concretions.
This layer contains UI, ViewModels, and Widgets. It is the outermost layer and is the most volatile layer
This layer contains Use Cases, Entities, and Repository Interfaces. It is the innermost layer and is the most stable layer
This layer contains Data Sources, Models, and Repositories. It is the middle layer and is the most flexible layer
A simple Service Locator for Dart and Flutter projects with some additional goodies highly inspired by Splat. It can be used instead of InheritedWidget or Provider to access objects e.g. from your UI.
A library that helps you write better Dart code. It contains functional programming primitives, and additional utilities that makes working with Dart's core libraries more enjoyable.
A Flutter package that helps implement the BLoC (Business Logic Component) design pattern. It is a predictable state management library that helps implement the BLoC design pattern.
The Bloc is a simple yet powerful state management library provided by the Flutter community. It helps implement the BLoC design pattern. It is a predictable state management library that helps implement the BLoC design pattern.
Events are the input to a Bloc. They are added to the Bloc using the add method.
States are the output of a Bloc. The Bloc's state is updated by emitting a new state
A Flutter widget that provides a bloc to its children via BlocProvider.of(context).
A Flutter widget that handles building the widget in response to new states. BlocBuilder handles building the widget in response to new states.
A Flutter widget that listens to state changes in a Bloc and calls a callback in response to state changes.
A Flutter widget that combines BlocListener and BlocBuilder and makes it easier to build widgets in response to new states.
I have added some screenshots of the app. I tried to mask the personal information in the screenshots. If you find any personal information, please let me know. I will remove it immediately.
2. Home
3. Attendance
4. Others
-
Clone the repository
-
Make sure you have Flutter installed on your machine
-
Install the dependencies
flutter pub get
-
Add API Keys in
\lib\core\secrets\app_secrets.dart
fileclass AppSecrets { static const supabaseUrl = ''; static const supabaseAnonKey =''; }
-
Run the app
flutter run