https://github.com/volchok96/todoapp
API для приложения todo list для создания задач на день.
https://github.com/volchok96/todoapp
docker docker-compose golang makefile postgresql swagger testing
Last synced: 3 months ago
JSON representation
API для приложения todo list для создания задач на день.
- Host: GitHub
- URL: https://github.com/volchok96/todoapp
- Owner: volchok96
- License: mit
- Created: 2025-04-13T12:44:48.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-14T11:56:50.000Z (about 1 year ago)
- Last Synced: 2025-06-01T16:18:47.054Z (about 1 year ago)
- Topics: docker, docker-compose, golang, makefile, postgresql, swagger, testing
- Language: Go
- Homepage:
- Size: 43.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 📋 TodoApp
Простое ToDo API-приложение на Go для создания задач на день
## ✨ Возможности
- CRUD для задач
- Фильтрация по дате и статусу
- Пагинация по статусу
- Swagger-документация
- Локальный и Docker-режимы
- Покрытие тестами
- Makefile
---
## 📦 Стек
- **Go**
- **Fiber**
- **GORM**
- **zap (logger)**
- **PostgreSQL**
- **Docker + docker-compose**
- **Swagger (swaggo)**
- **golangci-lint**
- **Makefile**
---
## ⚖️ Установка и запуск
### 🛠 Требования
- Go 1.24.2
- Docker + Docker Compose ( для контейнерного запуска )
- PostgreSQL ( локально )
- `golangci-lint`, `swag`
### 💾 Локальный запуск
```bash
git clone git@github.com:volchok96/todoapp.git
cd todoapp
go mod tidy
make db-create db-migrate db-seed
make run
```
Приложение: [http://localhost:8080](http://localhost:8080)
Swagger: [http://localhost:8080/swagger/index.html](http://localhost:8080/swagger/index.html)
### 🐳 Docker
```bash
make docker-up
```
Приложение: [http://localhost:8081](http://localhost:8081)
Swagger: [http://localhost:8081/swagger/index.html](http://localhost:8081/swagger/index.html)
Остановка:
```bash
make docker-down
```
---
## 🧪 Тесты
```bash
make test
```
---
## 📚 Swagger-документация
Генерация:
```bash
make go-generate
```
---
## 🔍 Линт
```bash
make lint
```
---
## 🛠 Makefile команды
| Команда | Описание |
|---------------------|--------------------------------------------|
| `make run` | Запустить приложение локально |
| `make build` | Собрать бинарник |
| `make test` | Запустить тесты |
| `make lint` | Запустить линтер |
| `make go-generate` | Сгенерировать Swagger-доки в `docs/` |
| `make docker-up` | Поднять Docker-контейнеры |
| `make docker-down` | Остановить Docker-контейнеры |
| `make docker-logs-app` | Логи приложения из Docker |
| `make docker-psql` | Подключиться к базе PostgreSQL в Docker |
| `make db-create` | Создать базу данных |
| `make db-migrate` | Выполнить миграции |
| `make db-seed` | Заполнить БД тестовыми данными |
| `make db-reset` | Сбросить и заново инициализировать БД|
| `make local-start` | Создать БД с тестовыми данными и запустить локально|
---