https://github.com/fvckinginsxne/lyrics-library
https://github.com/fvckinginsxne/lyrics-library
docker gin golang migrations postgresql redis rest-api swagger tests
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/fvckinginsxne/lyrics-library
- Owner: fvckinginsxne
- Created: 2025-03-19T17:37:06.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-04T09:04:33.000Z (about 1 year ago)
- Last Synced: 2025-05-08T01:45:22.125Z (about 1 year ago)
- Topics: docker, gin, golang, migrations, postgresql, redis, rest-api, swagger, tests
- Language: Go
- Homepage:
- Size: 6.83 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Lyrics Library API
RESTful microservice in Go for receiving song lyrics with Russian translation.
## Features
- Save new lyrics with translation by artist and title
- Get song lyrics by artist and track title
- Delete lyrics by UUID
- Automatic translation into Russian
## Stack
- **Language**: Go 1.24+
- **Web framework**: Gin
- **Logging**: log/slog
- **Testing**: testify
- **Database**: PostgreSQL
- **Migrations**: golang-migrate
- **Caching**: Redis
- **Containerization**: Docker
- **External APIs**:
- [LyricsOVH](https://lyricsovh.docs.apiary.io/#reference) - fetching lyrics
- [Yandex.Translate](https://yandex.cloud/ru/docs/translate/quickstart) - translation into Russian
- **Documentation**: Swagger
## Quick Start
### 1. Clone Repository
```
git clone https://github.com/fvckinginsxne/lyrics-library.git
cd app
```
### 2. Setup environment
```
cp .env.example .env
nano .env
```
### 3. Start application
```
docker-compose --env-file .env up -d
```
### 4. The documentation is located at
```
localhost:8080/swagger/index.html
```
## TODO
- [x] Tests
- [ ] Add integration with auth service using gRPC
- [ ] Make frontend
- [ ] Deploy fullstack app on server