Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qreolq/tasklist
This REST API application allows you to organize the creation and tracking of your tasks.
https://github.com/qreolq/tasklist
checkstyle docker github-actions jacoco-plugin junit jwt-authorization liquibase minio mockito mybatis postgresql redis springboot swagger-ui
Last synced: 16 days ago
JSON representation
This REST API application allows you to organize the creation and tracking of your tasks.
- Host: GitHub
- URL: https://github.com/qreolq/tasklist
- Owner: qReolq
- Created: 2023-09-17T16:37:45.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-11-07T15:52:11.000Z (3 months ago)
- Last Synced: 2024-11-22T20:37:50.498Z (3 months ago)
- Topics: checkstyle, docker, github-actions, jacoco-plugin, junit, jwt-authorization, liquibase, minio, mockito, mybatis, postgresql, redis, springboot, swagger-ui
- Language: Java
- Homepage:
- Size: 249 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![codecov](https://codecov.io/github/qReolq/tasklist/graph/badge.svg?token=EJGNX53563)](https://codecov.io/github/qReolq/tasklist)
# tasklist
This REST API application allows you to organize the creation and tracking of your tasks.
* [Diagrams](#sequence-diagram)
* [Environments](#environments)
* [Quick start](#quick-start)## Technologies
Spring(Boot, Security, JPA), JWT, Swagger, Docker, PostgreSQL, Redis, Mybatis, MinIO, Liquibase, JUnit, Mockito, JaCoCo, Testcontainers
## Features
* 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## Sequence diagram
![Sequence diagram](docs/sequence-diagram.png)
## Component diagram
![Component diagram](docs/component-diagram.png)
Main application communicates with cache (Redis), main database (Postgresql), file storage (MinIO).
## Class diagram
![Class diagram](docs/er-diagram.png)
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.
## Environments
To run this application you need to create `.env` file in root directory with next environments:
- `POSTGRES_HOST` - host of Postgresql database
- `POSTGRES_USERNAME` - username for Postgresql database
- `POSTGRES_PASSWORD` - password for Postgresql database
- `POSTGRES_DATABASE` - name of Postgresql database
- `POSTGRES_SCHEMA` - name of Postgresql schema
- `REDIS_HOST` - host of Redis instance
- `REDIS_PORT` - port of Redis instance
- `REDIS_PASSWORD` - password for Redis
- `JWT_SECRET` - secret string for JWT tokens
- `MINIO_BUCKET` - name of bucket for MinIO
- `MINIO_URL` - URL of MinIO instance
- `MINIO_ACCESS_KEY` - access key of MinIO
- `MINIO_SECRET_KEY` - secret key of MinIO## Quick start
1. Clone this repo into folder.```Bash
git clone https://github.com/qReolq/tasklist.git
cd tasklist
```
2. Start docker compose```Bash
docker compose up
```
3. Go to localhost:8080/swagger-ui/index.html#/