This REST API application allows you to organize the creation and tracking of your tasks.
Spring(Boot, Security, JPA), JWT, Swagger, Docker, PostgreSQL, Redis, Mybatis, MinIO, Liquibase, JUnit, Mockito, JaCoCo
- User can:
- Login and register(with jwt tokens)
- Create tasks
- Upload profile
- Upload images for tasks(use MinIO storage)
- Util
- Checkstyle and Github Actions
- Swagger UI
- JaCoCo plugin
Main application communicates with cache (Redis), main database (Postgresql), file storage (MinIO).
We have two main tables - Users and Tasks.
Users table represents user in this application. User can login, create and update tasks.
User can have roles - ROLE_USER
or ROLE_ADMIN
.
Tasks table represents task in this application. Task can be created and deleted by user.
Task can have images.
To run this application you need to create .env
file in root directory with next environments:
POSTGRES_HOST
- host of Postgresql databasePOSTGRES_USERNAME
- username for Postgresql databasePOSTGRES_PASSWORD
- password for Postgresql databasePOSTGRES_DATABASE
- name of Postgresql databasePOSTGRES_SCHEMA
- name of Postgresql schemaREDIS_HOST
- host of Redis instanceREDIS_PORT
- port of Redis instanceREDIS_PASSWORD
- password for RedisJWT_SECRET
- secret string for JWT tokensMINIO_BUCKET
- name of bucket for MinIOMINIO_URL
- URL of MinIO instanceMINIO_ACCESS_KEY
- access key of MinIOMINIO_SECRET_KEY
- secret key of MinIO
- Clone this repo into folder.
git clone https://github.com/qReolq/tasklist.git
cd tasklist
- Start docker compose
docker compose up
- Go to localhost:8080/swagger-ui/index.html#/