Skip to content

PhoenixBureau/atodo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

a todo list management web application where:
 * I can have my todo list displayed.
 * I can manipulate my list (add/remove/modify entries).
   * add
   * remove
   * modify
 * Assign priorities and due dates to the entries.
   * priorities
   * due dates
 * I can sort my entry list using due date and priority.
   * priorities
   * due dates
 * I can mark an entry as completed.
   * un-set completed (by using the edit form.)
 * Minimal UI/UX design is needed.
 * I need every client operation done using JavaScript, reloading the page
   is not an option.
 * Write a RESTful API which will allow a third-party application to
   trigger actions on your app (same actions available on the webpage).
 - You need to be able to pass credentials to both the webpage and the API.
   - OAuth1a for API
   * User login/out Flask sessions.
 * As complementary to the last item, one should be able to create users in
   the system via an interface, probably a signup/register screen.
   * OpenID (tested with my Google Account, YMMV.)


Additional:
  - log file rotation..
  - arrange to NOT serve static assets in "production"..
    TODO: CDN for JS
  - Arrange for a REAL (not SQLite) db in "production"..

Installation

  Run the INSTALL.sh script.

Running the development server

  Set an environment variable INSTALL_DIR to the path to the directory
  containing the code.  See go.sh for an example, or just run it.

Notes

  For "production" there should be a file INSTALL_DIR/sekrit that contains
  a single line with the app "secret" in it.  There should also exist a
  file INSTALL_DIR/production the presence of which signals that we're
  running in production environment.

  If running not in production and there's no connection available
  (because your neighbors watch videos all night on the shared wifi) you
  can set an env var NO_CONN to any non-empty string to bypass OpenID
  login.  You'll be automatically logged in (as the 'Simon Forman' user)
  by visiting the '/login' URL.

  Using Basket:

    Set an environment variable to point to the dependencies dir.
    $ export BASKET_ROOT=<Install-directory>/dependencies

    Then you can use Pip to install the dependecies from that dir.
    $ pip install --no-index -f file://$BASKET_ROOT <package>

    It is recommended to use virtualenv. The .gitignore has a pattern for
    <Install-directory>/venv

About

A simple to-do web app to show off techniques and stuff.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published