Giter VIP home page Giter VIP logo

flutter_planner's Introduction

Flutter Planner

style: very good analysis Codecov License: MIT

A Flutter application to plan personal daily tasks, activities and routines that can be used with Supabase or Isar for the backend.

Planner

Schedule

Dark theme


Features

  • 2 backend alternatives: Supabase and Isar.
  • Email authentication (if used with Supabase).
  • Calendar and timeline view for daily tasks and activities.
  • Timetable for weekly routines.
  • Settings for appearance and user configuration.
  • Responsive ui, tested on android and windows.

Set up

Supabase

This step is only needed if you want to use this app with Supabase.

  1. Create a new project.

  2. Create a new table, named routines with the following rows (RLS enable).

    Name Type Extra Other
    id int8 Is identity -
    user_id uuid Is nullable Foreign key (table: users, column: id)
    name text - -
    day int2 - -
    start_time time - -
    end_time time - -
  3. Create a new table, named 'activities', with the following rows (RLS enable).

    Name Type Extra Other
    id int8 Is identity -
    user_id uuid Is nullable Foreign key (table: users, column: id)
    name text Is nullable -
    type int2 - Default value: 0
    date date - -
    start_time time - -
    end_time time - -
    description text Is nullable -
    links text Is nullable, define as array -
    routine_id int8 Is nullable Foreign key (table: routines, column: id)
  4. Create a new table, named 'tasks', with the following rows (RLS enable).

    Name Type Extra Other
    id int8 Is identity -
    user_id uuid Is nullable Foreign key (table: users, column: id)
    title text Is nullable -
    date date - -
    completed bool - -
  5. Create a new policy for all tables.

    • Allowed operation: ALL.
    • USING expression: auth.uid() = user_id.
    • WITH CHECK expression: (role() = 'authenticated'::text).
  6. In authentication settings, disable email confirmations.

Flutter

  1. Clone this repo.
  2. In the root directory, create a new file named '.env' with the following lines.
SUPABASE_URL=<YOUR_URL>
SUPABASE_ANON_KEY=<YOUR_KEY>

Running the project⚡

Run the desired flavor (production is the flavor that uses Isar, development and staging are the same and use Supabase).

# Development (Supabase)
$ flutter run --flavor development --target lib/main_development.dart

# Staging (Supabase)
$ flutter run --flavor staging --target lib/main_staging.dart
  
# Production (Isar)
$ flutter run --flavor production --target lib/main_production.dart

Running Tests 🧑‍🔬

To run all unit and widget tests use the following command:

flutter test --coverage --test-randomize-ordering-seed random

Dependencies


Future features

This application is been developed in my free time for personal use, some future features that will be added are

  • Categories for activities and routines, and charts for the user's stats.
  • dart_frog backend alternative.

Contribution

If you have a suggestion or would to contribute feel free to contact me, fill an issue or make a pull request :).

flutter_planner's People

Contributors

ivanherreracasas avatar

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.