This application helps you organize creating and accessing tasks for users.
You can access Swagger and see all available endpoints by
visiting http://localhost:8080/swagger-ui/index.html
Main application communicates with cache (we use Redis), database (we use Postgresql), storage (we use MinIO).
We have two main classes - User and Task.
User class represents user in this application. User can log in, create and update tasks.
User can have roles - ROLE_USER
or ROLE_ADMIN
.
Task class represents task in this application. Task can be created by user.
Task can have images.
To run this application you need to create .env
file in root directory with
next environments:
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_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 MinIOSPRING_MAIL_HOST
- host of mail serverSPRING_MAIL_PORT
- port of mail serverSPRING_MAIL_USERNAME
- username of mail serverSPRING_MAIL_PASSWORD
- password of mail server
You can use example .env.example
file with some predefined environments.
You can find step-by-step creating of this project here.