Skip to content

PAIshanMadusha/learn-planner-app

Repository files navigation

📚 Learn Planner App

Learn Planner is a Flutter-based application that helps users manage their courses, assignments, and notes efficiently. The app provides a structured way to organize learning materials while ensuring persistence and ease of access. Additionally, it supports light and dark theme persistence, ensuring that the user's preferred theme remains unchanged even after restarting the app.

🚀 Features:

📌 Course Management:

  • Users can add courses with details such as course name and description, etc.
  • View a single course with its details.
  • Users can edit and delete courses easily.

📝 Assignment Management:

  • Users can add assignments related to a course, including details like the name, description, start date, due date, and ending time.
  • View a single assignment with its details.
  • Users can edit and delete assignments.
  • ⏳ Assignment Deadline Timer: Tracks due dates, and overdue assignments are displayed separately.

🗒️ Notes Management:

  • Users can add notes related to a course, including a title, description, etc.
  • Users can upload a note image for better understanding
  • View a single note with its details.
  • Users can edit and delete notes.

👤 Profile Management:

  • Users can upload a profile picture.
  • Users can add and edit personal details (e.g., name, email, age).
  • User profile image and details persist across app restarts.

🌙 Dark & Light Mode Support:

  • The app supports both dark and light modes.
  • The selected theme persists across app restarts.

📚 Data Storage & Real-Time Updates:

  • Courses, assignments, and notes are stored in Firestore for seamless access across devices.
  • Note image is stored in Firebase Storage, ensuring secure and scalable storage.
  • The Home Page uses StreamBuilder, providing real-time updates whenever data changes.
  • Other pages utilize FutureBuilder, fetching data only when needed, ensuring optimized performance.
  • Profile details, including the selected theme, are stored in Shared Preferences, ensuring persistence across app restarts.

🎨 Attractive UI Design:

  • The app features a modern and user-friendly interface for a seamless experience.

🛠️ Technologies Used:

The following technologies are used in this project:

Technology Description
Flutter UI framework for building cross-platform applications.
Dart For application logic.
Firebase Firestore NoSQL cloud database for storing courses, assignments, and notes.
Firebase Storage Used for storing uploaded a note image securely.
Shared Preferences Stores profile details and theme preference locally.
Provider Manages theme state (dark/light mode) and ensures persistence.
Go Router For efficient navigation and deep linking.
Google Fonts Enables custom fonts for enhanced UI design.
Image Picker Allows users to pick and upload images.
Flutter SVG For displaying scalable vector graphics.
Lottie Adds smooth animations to the UI.
Intl Used for date formatting and localization support.

📦 Dependencies Used:

The following dependencies are used in this project:

  firebase_core: ^3.12.1
  cloud_firestore: ^5.6.5
  google_fonts: ^6.2.1
  go_router: ^14.8.1
  image_picker: ^1.1.2
  firebase_storage: ^12.4.4
  intl: ^0.20.2
  flutter_svg: ^2.0.17
  lottie: ^3.3.1
  shared_preferences: ^2.5.2
  provider: ^6.1.2

🚀 How to Run the Project:

  1. Clone the repository:
https://github.com/PAIshanMadusha/learn-planner-app.git
  1. Navigate to the project directory:
cd learn-planner-app
  1. Install dependencies:
flutter pub get

📥 Set up Firebase:

⚠️ If you are unfamiliar with Firebase connecting:

  • 📖I’ve written a detailed Medium article explaining the step-by-step process to connect Firebase to Flutter with screenshots.

  • 📖Read my blog on Medium here: Link

  • 📝Also, you can view my previous project, Taskly Firebase App I have written clearly on the README how to set up Firebase.

📝 To use Firebase services in this project, follow these steps:

  • Create a Firebase project at Firebase Console.
  • In the Firebase Console, on the left sidebar under the Build section, make sure to enable Firebase Firestore and Firebase Storage in test mode.
  • Add Firebase to Your Flutter App: In Firebase Console, select either Android or iOS, depending on your target platform and, Fill the Required details.
  • Download the google-services.json file (for Android) and GoogleService-Info.plist (for iOS) and place them in the appropriate folders.

✅ All setup is complete. Now you can run the app. Make sure there are no errors:

flutter run

📸 System Screenshots:

Below you can view app screenshots related to the Course, Assignment, and Note pages, as well as the Light and Dark themes.


Screenshot 1       Screenshot 2       Screenshot 3       Screenshot 3      


Screenshot 1       Screenshot 2       Screenshot 3       Screenshot 3      


Screenshot 1       Screenshot 2       Screenshot 3       Screenshot 3      


👤 About This Project:

The Learn Planner app is a Flutter-based application designed to help users efficiently manage their courses, assignments, and notes. It provides a streamlined way for users to add, view, edit, and delete their courses, assignments, and notes. With features like real-time updates, profile management, and dark/light theme support, the app offers an organized and user-friendly experience for students and learners.

I created this project to improve my Flutter and Firebase knowledge, as well as to enhance my development skills. I'm excited to share it with you, and I hope you find it useful!

👨‍💻 Created by:

Ishan Madhusha
GitHub: PAIshanMadusha

Feel free to explore my work and get in touch if you'd like to collaborate! 🚀


📝 License:

This project is open-source and available under the MIT License.

About

Learn Planner is a Firebase and Flutter-based app that helps users manage their courses, assignments, and notes efficiently.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors