Install the required modules
pip install -r requirements.txt
Initialize the migration setup
python migration db init
Make the revision for the database looking for the orm.py file where the modals stands
python migration db revision
Make the upgrade after the revision to take effect
python migration db upgrade head
Make the migrations
python migration db migrate
Add the default entries from resources/fixtures.sql
python main initdb
Launch the app
python main
The TODO App allows a user to add reminders of thing he needs to do. Here are the requirement for the app.
- Users can add, delete and see their todos.
- All the todos are private, users can't see other user's todos.
- Users must be logged in order to add/delete/see their todos.
Credentials:
- username: user1
- password: user1
- python 5.7
- virtualenv
- sqlite3
- A github account
/!\ You need to fork this repository. See How to submit your work?
virtualenv .
bin/pip install -r requirements.txt
bin/python main.py initdb
bin/python main.py
You will be asked to improve the code of this app with the following tasks.
You can complete the tasks in any order.
Separate your commits by task and use the following format for your commit messages: TASK-{task number}: {meaningful message}
- TASK 1: As a user I can't add a todo without a description.
- TASK 2: As a user I can mark a todo as completed.
- Write a database migration script in
resources/
- Write a database migration script in
- TASK 3: As a user I can view a todo in a JSON format.
- Ex: /todo/{id}/json => {id: 1, user_id: 1, description: "Lorem Ipsum"}
- TASK 4: As a user I can see a confirmation message when I add/delete a todo.
- TASK 5: As a user I can see my list of todos paginated.
- TASK 6: Implement an ORM database access layer so we don’t have SQL in the controller code.
Extra tasks:
- Fix any bug you may find.
- Fix any security issue you may find.
This app use Flask.
And you're done!
More documentation on Github: