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
- php 5.3+
- mysql
- A github account
/!\ You need to fork this repository. See How to submit your work?
php composer.phar install
cp config/config.yml.dist config/config.yml
mysql -u root <database> < resources/database.sql
mysql -u root <database> < resources/fixtures.sql
php -S localhost:1337 -t web/ web/index.phpYou can change the database connection from the file config/config.yml.
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}
- We care about UI/UX, any attention to detail in the UI will be noticed. Please dont hack in UI changes.
- Simple clear code comments are helpful.
- 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.
- Hint: Use session FlashBag.
- TASK 5: As a user I can see my list of todos paginated.
- TASK 6: Choose a task below:
BACKEND (focus) Implement an ORM database access layer so we don’t have SQL in the controller code.
OR
FRONTEND (focus) Using JQuery, VueJs, or React render the todo list dynamically and allow the delete + completed buttons to work dynamically via an Ajax
(You do not need to make pagination to work). We care about the user experience here, this might be animation?
Extra tasks:
- Fix any bugs you may find.
- Fix any security issues you may find.
- Adding a few unit tests to show us that you undersatnd how they work is a bonus.
This app use Silex, a micro-framework based on the Symfony2 Components. Documentation can be found here: http://silex.sensiolabs.org/documentation
And you're done!
More documentation on Github:






