Skip to content

0xRektora/backend-python-test

 
 

Repository files navigation

Alayacare Python skill test

DB Setup

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

Application

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

Homepage:

Homepage

Login page:

Login page

Todos:

Todos

Requirements

  • python 5.7
  • virtualenv
  • sqlite3
  • A github account

Installation

/!\ 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

Instructions

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}

Tasks

  • 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/
  • 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.

Documentation

This app use Flask.

How to submit your work?

  1. First you need to fork this repository.

Forking a repo

  1. Then clone your fork locally.

Cloning a repo

  1. Install the app locally. See the [Installation Guide] (#Installation).
  2. Once you've completed your work, you can submit a pull-request to the remote repository.

 a Pull Request

  1. Review your changes and validate.

Validating a Pull Request

And you're done!

More documentation on Github:

About

Python code test

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 60.9%
  • HTML 34.4%
  • Mako 2.6%
  • TSQL 1.7%
  • CSS 0.4%