Skip to content

A cloud hosted backend microservice API built to be production ready with security, scalability, monitoring in mind.

License

Notifications You must be signed in to change notification settings

Auwate/taskmanager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Manager

The backend component to a task manager application. It features a structured REST API using Spring Boot built to manage operations on tasks.

Development Instructions

Running with Docker

To run the application with Docker, you need to run docker build and docker run on the provided Dockerfile.

Running without Docker

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.

Running all tests

To run all the tests, please run mvn clean verify to run all tests.

Features

Features are constantly being pushed out, but the following contains the list of current and planned features:

Current 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

Planned Features

  • 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

Current Endpoints

/api/tasks - GET

Returns all the tasks stored in the database up to that point

/api/tasks - POST

Adds a new task, stores it into the database, and returns the URI of the task

/api/tasks/{TASK_ID} - GET

Returns the task stored in the database based on the ID you provide

/api/tasks/{TASK_ID} - DELETE

Deletes the task from the database, based on the ID you provide. Does not return anything

/api/tasks/{TASK_ID} - PUT

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).

About

A cloud hosted backend microservice API built to be production ready with security, scalability, monitoring in mind.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published