djack2485/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.
* 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..
- the test for "in_production" in settings.py should be more robust..
- arrange to NOT serve static assets in "production"..
TODO: CDN for JS
- Arrange for a REAL (not SQLite) db in "production"..
For "production" there should be a file INSTALL_DIR/sekrit that contains
a single line with the app "secret" in it. There is a better way to do
this.
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.
Pycrypto is a dependency of Flask-OAuthlib that has to be gotten
separately (from the basket deps.)
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