This web app provides a very simple to-do list anyone can use on the go. This app has a model-view-controller architecutral pattern with Spring MVC. The view layer is supported by the Thymeleaf template engine.
Since this project uses the free version of Heroku, it may take up to 30 seconds to start the container for the app.
Containers sleep after 30 minutes of inactivity.
- User Sign Up
- User Login
- User Task Page (Add, Delete, Edit Task)
- API (View Tasks, Add and Delete Task)
The schema is set up with two tables:
- A "users" table - This table contains the columns "id" (unique auto generated INT), "username" (provided by user), and "password" (encrypted password provided by user).
- A "tasks" table - This table contains the columns "id" (unique auto generated INT), "task" (task provided by user), and "user_id" (foreign key mapping to the user which "owns" this task.
Mapping: There is a OneToMany relationship from "users" to "tasks" and a ManyToOne relationship from "tasks" to "users".
The API for this project uses Spring REST and Basic Authentication with Spring Security (stateful due to sessions). A user that has signed up for AgendaToday will be able to make API calls for adding, deleting, and viewing their tasks.
For example, the command curl -u username:password https://agendatoday.herokuapp.com/api/tasks
on command prompt or terminal would return a list of tasks belonging to user [ "username" ] and their password ["password].
You can find the documentation for this API here