A Flutter application to plan personal activities and routines that uses Supabase for the backend.

Overview

Flutter Planner

style: very good analysis License: MIT

Generated by the Very Good CLI πŸ€–

A Flutter application to plan personal activities and routines that uses Supabase for the backend.

Planner

Schedule


Features

  • Responsive ui, tested on android and windows.
  • Calendar and timeline view for daily activities.
  • Timetable for weekly routines.
  • Email authentication

Set up

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 policy for both tables.

    • Allowed operation: ALL.
    • USING expression: auth.uid() = user_id.
    • WITH CHECK expression: (role() = 'authenticated'::text).
  5. 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>
  1. Run the desired flavor (for the moment all are the same).
# Development
$ flutter run --flavor development --target lib/main_development.dart

# Staging
$ flutter run --flavor staging --target lib/main_staging.dart

# Production
$ flutter run --flavor production --target lib/main_production.dart

*Flutter Planner works on iOS, Android, Web, and Windows.


Dependencies


Future features

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

  • 100% test coverage. (See the progress here)
  • Settings page for custom theme and user configuration.
  • Projects or tasks page.

Contribution

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

Comments
  • fix: missing notification icons on dev and stag

    fix: missing notification icons on dev and stag

    Description

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [x] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by IvanHerreraCasas 1
  • fix: missing internet permission

    fix: missing internet permission

    Description

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [x] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by IvanHerreraCasas 1
  • Feat/all day activities

    Feat/all day activities

    Description

    All-day activities are considered as those that have zero start and end times (24==0), but these kinds of activities can't be shown in a timeline.

    This PR adds a new isAllDay property to the activity model to easily identify if it is or not all day (hor and minutes of start and times must be zero), the all-day activities are shown above the timeline, and a switch was added in the activity page to make easier the use of this feature for the user.

    Type of Change

    • [x] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by IvanHerreraCasas 1
  • fix: tests overflows errors

    fix: tests overflows errors

    Description

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [x] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by IvanHerreraCasas 1
  • Feat/events

    Feat/events

    Description

    In a daily-planner application is important that users can easily identify which days they have important events.

    An event is just a type of activity, so this PR first adds a picker to select the activity type (task, event, or routine) and shows indicators of the events on the calendar.

    To show the indicator, the app streams the events from a range (2 months before and after the focused day); so a streamEvents method was created in activitiesApi and its implementations, in the case of supabaseApi an eventActivitiesController was created to control the stream and avoid problems using directly the stream method given by supabase (can fail when date filters are applied).

    Type of Change

    • [x] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by IvanHerreraCasas 1
  • Docs/update readme

    Docs/update readme

    Description

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [x] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by IvanHerreraCasas 1
  • Fix/tasks scroll behavior

    Fix/tasks scroll behavior

    Description

    Fix: tasks doesn't scroll automatically to make visible the focused new task when is necessary

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [x] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by IvanHerreraCasas 1
  • Test/95 code coverage

    Test/95 code coverage

    Description

    This PR adds missing tests to existing functionality e.g in PlannerAddRoutines, ScheduleTimetable, and Planner and Home layout. Additionally, the action was modified to have a min code coverage of 95.

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [x] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [x] πŸ—‘οΈ Chore
    opened by IvanHerreraCasas 1
  • Refactor/clean code

    Refactor/clean code

    Description

    This PR cleans the codebase.

    Repositories:

    • Authentication, activities, and routines repositories export their used models.
    • The files of the app now only use the repository packages, with the exception of the main files.

    Test:

    • Shared mocks were added to avoid repetitive code, e.g bloc and repository mocks.
    • Some widgets of the home feature were moved to its correspondent folder.

    Other

    • Fix: some files such as app and widgets weren't exporting all their correspondent components.
    • task bloc.dart file was removed because it was causing incorrect import issues.

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [x] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by IvanHerreraCasas 1
  • Feat/error handling

    Feat/error handling

    Description

    Now each feature handles its possible errors when interacting with its repository, (save, delete, stream).

    Type of Change

    • [x] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by IvanHerreraCasas 1
  • Refactor: router

    Refactor: router

    Description

    Previously each page had its route defined separately, making it difficult to test. Now it has been replaced with a more declarative and safe way.

    • Created a router in a different class, this file contains all the routes.
    • The names of the routes were defined in an abstract class, and the go navigation was replaced with goNamed.

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [x] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by IvanHerreraCasas 1
Owner
Ivan
Ivan
Personal-Expense - Personal expense application in Flutter

expenseapp Personal expense application in Flutter / Application de dΓ©pense en F

Tommy 1 Feb 10, 2022
This is an example project for the article about implementing clean architecture in flutter with riverpod and supabase as backend service.

The Example This is an example how to implement clean architecture with domain driven design and riverpod in flutter projects. Getting Started Rename

Volodymyr Hodiak 45 Dec 30, 2022
Be together, whenever. A simple way to text chat and plan things all in one place for flutter developers.

Flutterdevconnect Be together, whenever. A simple way to text chat and plan things all in one place for flutter developers. Android IOS Web PWA Androi

Sanskar Tiwari 69 Aug 27, 2022
App to control your health activities like calorie, water, medicine consumption, sleeping and weight control.

Handy Configuration for yourself This project contains google-services.json file of my own. You can connect your own firebase project using the follow

KanZa Studio 104 Jan 3, 2023
A Flutter plugin to use iOS 16.1+ Live Activities ⛹️ & iPhone 14 Pro Dynamic Island ⚫️ features

Live Activities A Flutter plugin to use iOS 16.1+ Live Activities & iPhone 14 Pro Dynamic Island features. ?? What is it ? This plugin use iOS Activit

Dimitri Dessus 53 Dec 26, 2022
Food-app-flutter - A simple food ordering application with an admin panel coded with flutter and uses firebase as a backend

shop_ui A new Flutter project. Getting Started This project is a starting point

Ryan Egbejule-jalla 3 Oct 5, 2022
IoTF app is a smart farming app for IoT and AI-powered tomato plant disease detection. It is built with Flutter and uses Firebase as its backend.

Internet of Tomato Farming IoTF app is a smart farming app for IoT and AI-powered tomato plant disease detection. It is built with Flutter and uses Fi

ILYAS IMZAGNAN 4 Dec 9, 2022
School Project to complete a course,uses a python backend and a flutter frontend

hit_400_app Getting Started This project is a starting point for a Flutter application. #Run flutter packages get #Run the python main.py after instal

null 0 Dec 28, 2021
🎯 A powerful multiplatform application with Flutter and Supabase for the Komentory project.

?? Multiplatform application for Komentory project A powerful multiplatform application with Flutter and Supabase for the Komentory project. Currently

Komentory 3 Mar 1, 2022
A Flutter mobile application built completely using DhiWise and Supabase without coding single line of code. With 100% system generated code

Flutter Expension Getting Started with Flutter ?? Generated with ❀️ from Dhiwise A Flutter mobile application built completely using DhiWise and Supab

DhiWise 11 Oct 23, 2022
An example Flutter application built with Very Good CLI and Supabase πŸ¦„

Supabase Example Generated by the Very Good CLI ?? An example Flutter application built with Very Good CLI and Supabase ?? Getting Started ?? This pro

Very Good Ventures 46 Dec 27, 2022
Addons to supabase dart (and Flutter), to make development easier.

supabase_addons Make great apps with a great backend! Supabase is an open source Firebase alternative. It has support for auth, database and storage u

Bruno D'Luka 20 Dec 3, 2022
Flutter integration for Supabase. This package makes it simple for developers to build secure and scalable products.

supabase_flutter Flutter package for Supabase. What is Supabase Supabase is an open source Firebase alternative. We are a service to: listen to databa

Supabase 251 Jan 7, 2023
A fully functional Furniture App Clone made using Flutter, Supabase and Getx State Management.

?? Flutter Furniture App ?? Timberr is a fully functional Furniture App Clone Developed using Flutter, Supabase and Getx State Management which is bas

Aditya 54 Nov 22, 2022
A fully functional Movies Application built with Flutter. The application built with null safety and clean architecture, also uses OMDB API for fetching movies in the search item

Cinema DB Project Details This project uses null safety feature Project uses clean code architecture (Uncle Bob's Architecture) Project can run on bot

Dhruvam 2 Oct 1, 2022
Dart client library to interact with Supabase Storage

storage-dart Dart client library to interact with Supabase Storage. Contributing Fork the repo on GitHub Clone the project to your own machine Commit

Supabase 22 Dec 14, 2022
A Dart client for Supabase

supabase-dart A Dart client for Supabase. What is Supabase Supabase is an open source Firebase alternative. We are a service to: listen to database ch

Supabase Community 392 Jan 7, 2023
UI library to easily implement auth functionalities of Supabase in your app.

flutter-auth-ui A simple library of predefined widgets to easily and quickly create a auth compooents using Flutter and Supabase. ⚠️ Developer Preview

Supabase Community 20 Dec 13, 2022