The backend component to a task manager application. It features a structured REST API using Spring Boot built to manage operations on tasks.
To run the application with Docker, you need to run docker build and docker run on the provided Dockerfile.
To run without Docker, you need to first build the JAR file, which can be done with mvn clean package. This will run your tests, then package the JAR file. You then need to run java -jar <JAR_FILE_NAME> to run the application.
To run all the tests, please run mvn clean verify to run all tests.
Features are constantly being pushed out, but the following contains the list of current and planned features:
- REST API Structure
- Customized exception handling and data transfer object responses
- Includes the status code, message (including errors), timestamp, and data
- Fully-functional CI/CD pipeline to test & build, push the latest image, and deploy the image on an Oracle VM
- Unit & integration tests with simulate REST API interactions with an H2 database
- Cloud storage using Oracle SQL ADB (Autonomous database)
- Automatic data removal after 24 hours, and cascading deletion
- JWT + Basic Authentication for secure sign on and registration
- PostgreSQL database for efficient data storage with replicas for redundancy
- Actuator for live monitoring for DevOps
- Redis for caching current tasks
Returns all the tasks stored in the database up to that point
Adds a new task, stores it into the database, and returns the URI of the task
Returns the task stored in the database based on the ID you provide
Deletes the task from the database, based on the ID you provide. Does not return anything
Updates the task using provided data. You do not need to fully fill out the Task object provided. Fill in any fields that need updating but leave the rest blank (null).