PhoenixBureau/atodo
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
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