Skip to content

Routinger is a task scheduler app that is made to make you a better person at no extra cost. The code is open-source. Dart language and Flutter framework are used extensively.

License

theexidge/routinger

Repository files navigation

icon Routinger

This is a simple app that will allow you to schedule your tasks, create a simple to-do list, and make recurring tasks. The app can also send you notifications to remind you of your tasks. The app as of now works on stored data in local storage only. It is meant to be a cross platform app.

We are constantly updating our application with the help of our contributors. Feel free to open an issue if you face any problem or would like to add any new feature.

Old Look                       New Look

If you want to try out the app you can find the link to the app here. The current app version is in early development and there may be errors. We recommend trying it out and telling us about your opinions in the 'issues', or you can email to us. We will soon also make a discussions page.

List of Contents

icon Routinger

App Preview

image image image
Home Screen Your Stats Splash Screen
image image image
Add Tasks Set Timer Toggle Dark Mode

Dependencies

The following packages are needed for the development of this application.

  • cupertino_icons: ^1.0.2
  • provider: ^6.0.0
  • card_swiper: ^1.0.4
  • flutter_local_notifications: ^8.1.1+1
  • intl: ^0.17.0
  • flutter_native_timezone: ^2.0.0
  • sqflite: ^2.0.0+4
  • url_launcher: ^6.0.9
  • mdi: ^5.0.0-nullsafety.0
  • fl_chart: ^0.40.0
  • flutter_launcher_icons: ^0.9.2
  • flutter_native_splash: ^1.2.4

More details about these can be found in the pubspec.yaml file.

Installation

  • Fork and clone the repository onto your system.

    git clone https://github.com/theexidge/routinger.git

  • Install the dependencies.

    cd routinger flutter pub get

  • Install the latest versions of "Flutter" and "Android Studio".

  • Run the application.

    In code editor: Use either the "debug and run" command or "continue without debugging". In terminal: Navigate to the root of the folder with the routinger project. Run flutter run. Note: Make sure Flutter and Android Studio are installed properly before running the app. Any code editor is valid for running and developing the app.

    Vysor

    Vysor is a third-party app that allows you to mirror your Android device's screen on your computer. This can be useful for debugging or demonstrating your Flutter app.

    To install Vysor:

    Go to the Vysor website: https://www.vysor.io/ and download the app for your computer. Install the Vysor app on your Android device. Connect your Android device to your computer using a USB cable. Open the Vysor app on your computer and select your Android device from the list of devices. Your Android device's screen will be mirrored on your computer. To run your Flutter app in Vysor:

    Follow the steps above to install and start Vysor. Run your Flutter app as usual. In Vysor, select your Flutter app from the list of running apps. Your Flutter app's screen will be mirrored in Vysor. Tips:

    If you are having trouble running your Flutter app in Vysor, make sure that USB debugging is enabled on your Android device. You can adjust the quality and resolution of the mirrored screen in the Vysor settings. Vysor also supports audio mirroring, which can be useful for debugging audio issues in your Flutter app.

Getting Started with the Project

After completing the installation, locate the lib folder in the project. This contains all the code files where you can make your contributions.

Lib Folder

  • The main.dart file is the entry point of the application, which is responsible for executing all library functions, user-defined statements, etc.
  • The screens folder contains all the screens which will be displayed in the application.
  • You can find the widgets in the widgets folder which are used to make the app interactive.

Assets Folder

  • Add your images & fonts here after adding it in pubspec.yaml file.

For Android, iOS, & Web

  • Make changes in the Android, ios, & web folder based on where you want to launch it.

General Folder Structure

The general structure of the project is as follows:

  • Helper Directory: Where database-related functions are located, along with a list_of_notif model used by the app.
  • Provider Directory: All providers listened to by the app are in the provider directory. This includes the "task provider" and "tasks provider":
    1. Task Provider: Contains specific details for one task.
    2. Tasks Provider: Contains a list of tasks and handles the functions for adding, removing, and saving to local storage.
  • Screens Directory: Currently the app has two screens, which are present in the screens directory. The first one is the home screen, and the second is the "add task" screen.
  • Services Directory: Logic for the notification services are present in the notifications file. The sleep cycle manages user data relating to wake-up time and sleep time to allow for nonredundant notifications and timely delivery based on a user's time while awake.
  • Widgets Directory: Where all of the presentation logic for the app is located. Everything visible on-screen has been made into different widget files with respective directories for easier debugging. The individual directories are as follows:
    1. Add_task Directory: Where the widgets for the add_task screen are located. Most contributions to this screen will be in this directory.
    2. Home Directory: Where the widgets for the home screen are. Due to the home directory being where most of the app's actions are, it has been subdivided into stats and taskslist:
      • Stats Directory: Where stats-related widgets are located. These include the stats chart and the stats card.
      • Taskslist Directory: Where the widgets for tasklist are located. These include the tasklist's individual cards and the tasklist parent.
    3. Settings Directory: Where all of the widgets for the settings screens are located.
  • The main.dart file is kept cluttered free. This should be only changed when absolutely necessary, such as when adding a new provider.

Info

We have not yet tested the app in the iOS platform, and it may not work completely in iOS emulators and/or iOS devices. If you want to contribute the iOS side of the app, you are more than welcome to do so.

Check the Contributions guideline before contributing to make sure you are contributing the rightway.

Be sure to follow the Code Of Conduct at all times.

Being part of a community means there are certain simple rules and etiquettes that needs to be followed. Following these simple rules makes everyone feel like they are a part of community and are not being mistreated.

Have a good day.