This is a To Do list full-stack application. It has a user table and a task table. And a front-end that consumes the API.
Before you start, create a new user account by sending a post request to '/users'. It will return an object like this:
{ success: true, id: 1 }
The id will be your api_key for making requests to the following tasks endpoints.
URI | Type | Description | Request Body | Sample Response |
api/tasks?api_key=your_user_id | GET | Returns an object with a tasks property that contains an array of tasks belonging to you. | N/A |
{ tasks: [ { id: 1, content: 'A to do list task', complete: 'false', due: datetime, updated_at: datetime, created_at: datetime }, { id: 2, content: 'Another to do list task', complete: 'true', due: datetime, updated_at: datetime, created_at: datetime }, ] } |
api/tasks?api_key=your_user_id | POST | Creates a new task under your user account. |
{ task: { content: 'This is a task', due: 'Sat Oct 21 2017 14:05:00 GMT+0800 (HKT)' } } |
{ task: { id: 1, content: 'This is a task', complete: 'false', due: '2017-10-21T06:01:02.000Z', created_at: '2017-10-21T06:00:07.065Z' } } |
api/tasks/:id?api_key=your_user_id | PUT | Update the content or due time of the task specified by id. |
{ task: { content: 'This is not a task', due: 'Sat Oct 21 2017 14:09:38 GMT+0800 (HKT)', } } |
{ task: { id: 1, content: 'This is not a task', complete: 'true', due: '2017-10-21T06:09:38.000Z', created_at: '2017-10-21T06:00:07.065Z', updated_at: '2017-10-21T06:09:54.730Z' } } |
api/tasks/:id/mark_complete?api_key=your_user_id | PUT | Mark the complete property to true for the task specified by id. | N/A |
{ task: { id: 1, content: 'This is a task', complete: 'true', due: datetime, created_at: DateObject, updated_at: DateObject } } |
api/tasks/:id/mark_active?api_key=your_user_id | PUT | Mark the complete property to false for the task specified by id. | N/A |
{ task: { id: 1, content: 'This is a task', complete: 'false', due: datetime, created_at: DateObject, updated_at: DateObject } } |
api/tasks/:id?api_key=your_user_id | DELETE | Delete the task specified by id. | N/A |
{ success: true } |
Datetime objects are stored in UTC time.
The To Do List front-end is located at root /
. It uses the user id 1 to make requests.
After downloading the repository Install the gems
bundle
Create the database
rails db:create
Migrate the database
rails db:migrate
Seed the database
rails db:seed
Start server:
rails s
Visit localhost:3000 to see the To Do List.