Service that expose a RESTful API to convert JPEG to PNG and vice versa and compress the image with the compression ratio specified by the user. The user has the ability to view the history and status of their requests (queued, processed, completed) and download the original image and the processed one.
- go 1.16
- docker
- golangci-lint (optional, used to run code checks)
- aws access and secret key
Create .env file in root directory and add following values:
API_PORT=
DB_USERNAME=
DB_PASSWORD=
DB_NAME=
DB_HOST=
DB_PORT=
DB_SSL_MODE=
AWS_BUCKET_NAME=
AWS_ACC_ID=
AWS_SECRET_KEY=
AWS_REGION=
MINIO_BUCKET_NAME=
MINIO_ACC_ID=
MINIO_SECRET_KEY=
MINIO_REGION=
MINIO_ENDPOINT=
JWT_SIGNING_KEY=
JWT_TOKEN_TTL=
Use make run
to build&run project, make lint
to check code with linter.
- /auth/signup - user registration [POST]
- /auth/login - user authorization [POST]
- /image/convert - convert and compress image [POST]
- /image/download/{id} - downloads needed image [GET]
- /requests - get the user's requests history [GET]
Grab a binary from releases page