Code Monkey home page Code Monkey logo

simple-tasks's Introduction

About

A simple todo mobile application and server for self-hosting and synchronization.

Protocol

Storage

Instead of VTODO, a custom protocol is used to store and manipulate the data.

A single json file is used to store the task data. Below is an example of a task collection named my-daily-groceries containing a single task that recurs every 7 days.

my-daily-groceries.json

{
  "lastModified": 1711149159,
  "tasks": [
    {
      "id": 0,
      "title": "Buy Bread",
      "description": "Buy some bread while grocery shopping. Preferably something sourdough or baguette.",
      "location": "Best Bread Bakery, Vaughan, ON A1A 1A1",
      "category": "Grocery",
      "dueDate": 1711149159,
      "recurrence": [
        {
          "recurrenceRange": "noEnd",
          "interval": 10080,
          "endDate": 1713136359
        }
      ],
      "completed": false
    }
  ]
}

Syncing

Each collection has a single dateModified parameter. This parameter is used to keep track of the latest task collection on each device.

When the mobile app updates a task collection, it will decide to overwrite the local task collection file based on the dateModified parameter of the remote task collection. If the lastModified value of the remote server's task collection is earlier than the local task collection, the local task collection will be pushed to the remote server. Otherwise, it will update the local task collection with the remote server's task collection.

Server

Configuration/Installation

Simple Tasks comes with a self-hostable server. Once configured, it will store all task collections. The application is written with Flask, so it needs a production server to run in a stable environment. Gunicorn can be used.

$ pip3 install gunicorn

Then, start the server on the desired port.

$ gunicorn -b 0.0.0.0:443 app:app

Once the server is up, add the server in the application. Each added server has its own password that is used in a Basic Authentication header.

img here showing a server being added in the android app

Backup

Android App

In the app folder you will find the project to build app. The APK will be added as a release as well.

simple-tasks's People

Contributors

stefanman125 avatar theeducational 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.