You should have:
- The git command line tool or a Git tools like SourceTree installed on your computer.
- A Github account
- Your editor or IDE of choice
This case study should take you about three hours, depending on depth and ability. This study is mostly to see HOW you approach problems. We're not really worried about if your code looks like ours, obviously. We want to see a rigorously tested (unit, integration, whatever works) application that is maintainable.
Below is a prioritized backlog. The items at the top are the most important, with items lower on the list being less important. This is an exhaustive list. It is very unlikely you'll be able to get to everything in the list in 3 hours. Do not feel as though the expectation is that every item will be addressed. This is just in case you work much faster and more effectively than we could assume.
You may use ANY open source frameworks and packages/libraries that you wish to complete this project. All of the business logic, though, should be written from scratch.
- PHP
- Any PHP framework of choice
- Fork this repository into your Github account
- Create the project using ANY PHP framework
- Create a pull request back to this repository for review
Below are some instructions you may find helpful
Your task is to create a basic task manager (I know, I know, I'm sorry). The requirements are below. Our recommendation is to read through the whole list before you consider the architecture you wish to employ.
- As a user, I should be able to create a task.
- As a user, I should be able to describe that task.
- As a user, I should be able to assign a state to the task (for instance, 'Open' and 'Completed' or 'To do,' 'Doing', and 'Done')
- As a user, I should be able to CHANGE the state of the task.
- As a developer, I should be able to read documentation about this project.
- As a user, I should be able to display any information related to tasks (and lists, if applicable). As a user, I should be able to delete a task.
- As a user, I should be able to create a list that can house tasks.
- As a user, I should be able to assign tasks to a list.
- As a user, I should be able to assign tasks to MULTIPLE lists.
- As a user, I should have a basic frontend interface for this project.
- As a developer, I should be able to extend this project through RESTful API endpoints.
- As a developer, I should be able to automatically generate API Endpoint documentation for this project when I modify it.
- As a user, I should be able to generate a tweet every time I complete a task. As a user, I should be able to use twitter to change the state of a task.