Giter VIP home page Giter VIP logo

theexidge / routinger Goto Github PK

View Code? Open in Web Editor NEW
28.0 2.0 22.0 9.87 MB

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: GNU Affero General Public License v3.0

Kotlin 0.12% Swift 0.38% Objective-C 0.04% Dart 93.37% HTML 4.17% CSS 0.58% Ruby 1.35%
flutter android dart task-manager task-scheduler open-source ios hacktoberfest hacktoberfest-2022 hacktoberfest-starter

routinger's Introduction

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.

routinger's People

Contributors

arnav1776 avatar ayoubboulahtar avatar bayush-9 avatar grbavacigla avatar hassanteslim007 avatar jayakrishnan-manoj avatar kushalrock avatar lakshya-m avatar maronasn avatar perumallpardhiv avatar repeatercreeper avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

routinger's Issues

Weekly Chart Showing Number Of Tasks Completed

Is your feature request related to a problem? Please describe.
A chart where I can see my weekly stats below the experience points card. Such as how many tasks have I completed and so on.

Describe the solution you'd like
A line chart starting at Monday ending with Sunday showing how many tasks (Scheduled+Recurring) completed on a given day of the week.

Describe alternatives you've considered
Instead of merging both the scheduled and recurring there can be separate line charts for both of them.

Additional context
--None--

Update Codebase

Update the codebase to use the latest version of flutter and dart and upgrade necessary packages

A new color palette or font-style for the app

Color palettes and fonts can completely revamp user experiences. Changing these two things can have a revolutionary impact.

The present color palette is very dull and potentially unwelcoming. If you have a better idea about a color palette we are very excited to hear about it.

How to suggest a color palette and/or font?

After forking the repo. You can navigate to dev_assets and create a new small text file color_palette_font_recommendation.txt. In this simple text file, you can write about the color_palette you are thinking about using. If the same file exists, we recommend not overwrite it but add a number after the file name.

If you have made a mockup of the app with your color palette/ and or font in some software you can post that too with the same name and in any popular image formats.
Capture

An efficient folder structure

Is your feature request related to a problem? Please describe.
I am always frustrated when I open the widgets folder, there are just too many widgets and the organization is vague.

Describe the solution you'd like
An efficient folder structure. The present folder structure shouldn't be changed. Instead, new folders should be created inside it.

Additional context

One simple example of an efficient folder structure would be. In lib/widgets there are two files that are used by settings. So instead of keeping them there. Those two files should be kept in lib/widgets/settings.

Imports order of file shouldn't be changed. All relative imports should be relative, but correction may be needed after putting them into new folders but they should be relative too.

This applies to all the folders inside lib not only the widgets folder. An efficient folder structure for other folders should also be created. Even if it means putting a single file into a folder.

Add Alert Dialog Box

After adding tasks to It, If the user press the delete symbol by mistake then It will be deleted,
This can be solved easily by adding a Alert dialog box to it

@Kushalrock
@AyoubBoulahtar
Pls check my issue and, If the issue I described is true, then Assign this to me

If possible add hacktoberfest-accepted label to this issue

Shifting from hardcore values to variables

Is your feature request related to a problem? Please describe.
The app uses hard-coded values for border radius, which are tried and tested, but it is bound to change in the future. It will be very hectic to go to each file and change it. Instead, we can make a field in config file and import that field and use it.

Describe the solution you'd like
Going to config file, and creating well-named variables for hardcoded values and importing the same in the places of use.

Additional context
This will help fellow coders understand the code much easier, also it will make changes easier.

[BUG] Dark theme inactive.

Describe the bug
The dark theme button in the setting screen doesn't makes any changes.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Setting Screen.
  2. Toggle the dark screen button.

Expected behavior
Turn appearance to dark colors.

Ways to solve it
Add code for its implementation.

Ideas about why is this happening
It is not implemented yet.

I am wishing to work on it.

App uses deprecated version of the splash screen

Is your feature request related to a problem? Please describe.
The app uses a deprecated version of the splash screen which may be removed in the coming versions of flutter.

Describe the solution you'd like
Using a package to manage flutter splash screen.

Describe alternatives you've considered
Using flutter migration of splash screen tips.

Additional context
--Nope--

Fixing Imports to make the code more readable

The imports were organized by keeping in mind a specific style. But with the addition of new packages and imports, the imports have gone messy. We encourage beginners to take up this issue and fix the imports across all the files.

A simple example is
Capture
Capture2

The first image is of unorganized imports while the second image is of organized imports.
The general structure to be followed is

  • Dart Imports(Look for dart:__ to know what to include here)
  • Flutter Package Imports (Look for package:flutter to know what to include here)
  • Third-Party Packages (All the packages aside from dart and flutter should be in this category)
  • Then folder wise imports of local files

Imports should have a parent category like in the image, dart imports, helper imports, and so on..

The files having package:routinger are local files and should be accessed by relative location using ./ or ../ instead of using the package:routinger.

A new icon for the Routinger app

Visual aspects of an app are as important as the coding aspect.

The primary identity of an app is its icon. We are inviting people to make a new icon for the app. The same icon will be used as the primary app icon, the first image that is shown when the app loads & the same icon will be used in the notification service.

If you have ideas about using over one image in different areas. We duly invite it.

Where to place the icons?

We must respect contribution guidelines and Code of conduct at every point.

You can place your icons in dev_assets and issue a pull request. The new icon must be named accordingly and must not replace the original files. It should be named as new_splash_icon. If you have made an adaptive icon along with the original one. It should be named as new_splash_icon_adaptive.
Capture

The app doesn't show image of icon properly in the notifications

Describe the bug
The app doesn't show the icon of the app in the notifications.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the floating action button
  2. Add any scheduled or recurring notification.
  3. Wait for the notification to arrive
  4. You will see a white block in place of the icon. [SEE IMAGES BELOW]

Expected behavior
The app's icon should have been shown in place of a white square block.

Screenshots
Screenshot_20210925-012352

Additional context
The icon that should be used in the notifications is initialized in lib/services/notifications.dart.

Ways to solve it
Changing the icon size or creating proper adaptive icons.

Ideas about why is this happening
I am not completely sure, but perhaps the issue is the use of non-proper adaptive icons and the size of the icon.

Setting Up a Flutter GitHub workflow for Android

Is your feature request related to a problem? Please describe.
GitHub workflows have almost become essential for projects. It becomes easier on part of the maintainers to test the app. Setting up a GitHub workflow which builds the app's apk and retains it for 5 days

Describe the solution you'd like
A flutter workflow that builds the apk and retains it for 5 days.

Additional context
Using GitHub actions and creating a buildapk.yml file inside .github/worflows directory would help us achieve our goal.

BUG: Tasks not displaying when added

Describe the bug
The tasks are stored in the provider and DB but are not displaying in the expansion tile

To Reproduce
Steps to reproduce the behaviour:

  1. Click the FAB on the home page
  2. Fill a new task and select to do
  3. Click on add task

Expected behaviour
Logs in the console shows the task is in the DB and provider but isn't displayed in the home when the expansion tile is clicked

Screenshots

Additional context
Add any other context about the problem here.

Ways to solve it
[OPTIONAL]. If you have a way to tackle the issue. You can suggest it here. Try to summarise as much information as possible. Try not to make this part huge.

Ideas about why this is happening
I think it is related to the UI. An expansion panel is used and it doesn't seem to toggle.

BUG: RendexBox overflowing in home page

Describe the bug
RendexBox overflowing in tasks expansion panel in home page

To Reproduce
Add a scheduled task

Expected behavior
Text needs to wrap to next line when reaching its container constraintes

Ways to solve it
wrap in wrap widget

The app is using 4 different databases, instead it should use only one main database and 4 tables.

Is your feature request related to a problem? Please describe.
Nope. But it can optimize the performance of the app.

Describe the solution you'd like
Instead of using four databases with different names. A single Routinger database can be used in place of it and use four different tables to manage the data.

Describe alternatives you've considered
No alternatives considered

Additional context
The changes are to be made in the /lib/helper/db_helper.dart. Instead of using four databases, we can use single database and 4 different tables to optimize the performance of the app.
Screenshot (3)

Updating Readme to make it more informative

README.md is very vague and doesn't clearly imply:

  1. How the code works?
  2. The general workflow

It can be made more informative and easier to read to help newcomers to understand it better.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.