Todo is a task management service that enables registered users to easily manage their tasks. Each task has a name as well as other optional values including due date, status, and description. Note: This project is no longer maintained because the Todo app's data store has been migrated to DynamoDB. However, this project is useful for learning and experimenting with Spring Boot and embedded HSQL. The new version of the Todo API is at https://github.com/johnboyer/todo.
The Todo RESTful API is implemented as a Spring Boot app running an embedded version of Tomcat. For demonstration purposes, the data store is a HSQLDB in-memory database accessed via Spring JPA. It uses JSON Web Tokens (JWT) for authentication.
To build and run the project in place type: $ gradle bootRun
To just build the project type: $ gradle build
For information on installing Gradle go to https://gradle.org/install
To create and manage tasks, first create a user. See signup in the User section below.
Note: All dates are specified as strings, i.e., yyyy-MM-dd
or yyyy-MM-dd'T'hh:mm:ss
.
For a detailed reference of the Todo RESTful API go to https://todo.restlet.io.
Method | HTTP Requests | Description | Returns |
---|---|---|---|
signup | POST /users |
Create a user | A JWT object |
profile | GET /me |
View current user | User info |
login | POST/access-tokens |
Login user | A JWT object |
logout | DELETE/access-tokens |
Logout user | Nothing |
refresh | POST /access-tokens/refresh |
Refresh user token | JWT access token |
Method | HTTP Requests | Description | Returns |
---|---|---|---|
insert | POST /tasks |
Create a task | A task object |
list | GET /tasks |
Returns tasks | An array of task objects |
update | PUT /tasks/:id |
Update a task | A task object |
delete | DELETE /tasks/:id |
Delete a task | Nothing |
To reach a milestone for a major release, we'd like contributions for the following:
- Add task for ranking and priority sorting
- Implement task lists or categories
- Add support for SQL or NoSQL persistent data store
Contributions can be made by following these steps:
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
If you have any questions, please don't hesitate to contact me at john@rodaxsoft.com.
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
By John Boyer, Rodax Software, Inc.