Git Product home page Git Product logo

owly's Introduction

Owly

I designed this task management or to-do app for myself. Every time I plan to go to somewhere, I make sure to have my to-do prepared the day before. So, I created this app to meet all my needs as a pro to-do app user!

My feedback as a user is that the app needs to be improved, both UI-wise and feature-wise, so it is still under development.😁

Implementation of this app is NOT yet done, UI is not fancy at all. But building blocks are done and core features are implemented.

Development

This app has 3 flavors, dev, free and paid. For now I'm focusing on dev and free, the paid one will probably only be used for educational purposes in the future when working with different payment providers and overcoming challenges and trying to learn more about them.

Backend

For backend I used NHost. While I haven't had a chance to work with all of their features yet, my experience has been outstanding so far.

DEV

dev

For local development we can use NHost CLI. Setting it up is very easy and straightforward. You can read more about it from develop locally documentation.

Run in DEV mode

When everything is up and docker containers are running, we can use the following simple script to create the local database and fill it with the development's data:

Inside server directory there is a shell script that you can run it:

sh run_server.bash

There is a user with the following credentials that you can test the app with:

email: [email protected]
password: 12345678

Now when server is up and running, we need to run the app on dev flavor.

Free

free

This flavor is for pushing the tested implemented features to users of the app to the NHost server we created for.

There is a production branch that when we push to it, it will pushes the changes to NHost.

Run in FREE mode

In order to use a real database and allow others to test it, we need to create an account in NHost and migrate changes to the database.

Then all we need to do is to simply update nhostBackendUrl in the app => private_credential => nhost.dart and finally run the app on free flavor.

Paid

paid

Nothing fancy for now!(With the exception of those heart emojis in the logo! :DD)

owly's People

Contributors

rafoolin avatar

Watchers

 avatar

owly's Issues

sort sub-tasks

In order to avoid changes in sub-tasks order while adding them, it's better to sort them based on something other than name.

Also cover updating and using the full potential of the sub-task's features.

cover Ads

Config ad in the app. A NONE ANNOYING ONE!

ads

Fill credential

Store latest used email and password locally, and fill the corresponding input fields with that value to make it easier for users to log in when they're is logged out.

Tasks and sub tasks database structure

A Task can have several tasks or nothing(standalone one)
If a parent task is marked as done, all the children will be marked as done as well.

For example:
Task project has 3 other sub-tasks: write documentation, write code, write test.

🟩 Project
    🟩 write documentation.
    🟩 write code.
    🟩 write test.

We can have it like:
🟩 Project
    🟩 write documentation.
    ✅ write code.
    🟩 write test.

or
🟩 Project
    🟩 write documentation.
    ✅ write code.
    ✅ write test.

And
✅ Project
    ✅ write documentation.
    ✅ write code.
    ✅ write test.

Task in database:

type name
id uuid
user_id uuid
category_id uuid
parent_id uuid
title text
date_time timestamp
done_at timestamp
created_at timestamp
updated_at timestamp
completed boolean
note text

Categories database structure

A category contains X number of tasks. Category is like a type/tag, it shows of what type a task is.

Like work indicates the tasks that are related to work.

In UI we can show/filter tasks of a the day by category, something like this:

category

So we save some information about the category in database.

name type
id uuid
user_id uuid
create_at datetime
updated_at datetime
name string
color bigint

Keep last sub_tasks `completed` value

When we mark a task as done, all the sub-tasks(from sub_tasks table) will get a true value for their completed column.

Although it would be cool that this value be saved and then if user deselect the parent task(from tasks table), we reassign their old values again.

add categories view

In categories, show/filter showing tasks of that category and group them in dates.

main view

The view that shows the today's tasks!

tasks and sub_tasks are as follow:

sub_tasks

type name
id uuid
user_id uuid
task_id uuid
title text
created_at timestamp
updated_at timestamp
completed boolean
completed_at timestamp
due_to time
note text
index_value int

tasks

type name
id uuid
category_id uuid
user_id uuid
title text
created_at timestamp
due_datetime timestamp
updated_at timestamp
completed boolean
due_to timestamp
completed_at timestamp
note text
index_value int
category_color bigint

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.