Skip to content

mohhamad-esmaili/Todo

Repository files navigation

To do

Simple todo app by GetX and Hive and pushing notification with flutter_local_notifications.

poster

Ui adapted from Rita Deyneko

Packages used in project :

How to use:

  1. run flutter pub get to get packages
  2. run flutter packages pub run build_runner build

Folder Structure (lib) :

├───main.dart
├───controller
│   ├───event_controller.dart
│   ├───hive_initializer.dart
│   └───theme_controller.dart
├───model
│   ├───color_adapter.dart
│   ├───event_model.dart
│   └───event_model.g.dart
├───service
│   └───notification_service.dart
└───view
    ├───home
    │   ├───home_screen.dart
    │   └───widgets
    │        ├───bottomsheet
    │        ├───events_listtile
    │        ├───home_appbar
    │        │   ├───home_drawer
    │        │   └───appbar_row.dart
    │        └───table_calendar
    ├───event
    │   ├───event_screen.dart
    │   ├───edit_event_screen.dart
    │   └───widgets
    │        ├───utils.dart
    │        ├───event_sections
    │        ├───selectors_widget
    │        └───textformfields
    │            ├───home_drawer
    │            └───appbar_row.dart
    ├───splash
    │   └───splash_screen.dart
    └───utils
         ├───calendar_theme.dart.dart
         ├───colors.dart
         └───theme.dart
  • Controller : contains getx controllers
    • theme_controller: where save darkmode and light and loads
    • event_controller: core of app, load event, save, delete and ...
    • hive_initializer: initing boxes - this function passed in main()
  • Model : this folder contains eventmodel where we can define our events and its eventadapter - colors_adapter for hive for saving colors in box
  • Service : all services will be apear here - notifications service
  • View : all pages and widgets and themes are here
    • splash : first page when apps open
    • home : the home_screen, where we can seee calendar and events - it has widget like drawer and sections are seprated almost
    • event : event_screen allow you to create events and add reminder for yourself - all event sections are in event_sections folder like alarms & reminder, save button..
    • utils : this folder contains tablecalendar theme - colors and ThemeData

What have done in this project :

  • init getx
  • theme controller - convert to darkmode
  • save events on hive
  • notification service
  • event edit page
  • add done button and share button in edit event
  • implement motivation quote to drawer
  • add recycle bin page on drawer
  • compatible version for ios
  • multie language
  • implement tags and search on tags
  • calendar show events on first load (tablecalendar bug)