Приложение для отслеживания посылок и управления их статусами. Система позволяет регистрировать новые посылки, изменять их статусы, адреса доставки и отслеживать историю посылок клиентов.
- Регистрация новых посылок
- Изменение статуса посылки (registered → sent → delivered)
- Изменение адреса доставки (только для посылок в статусе "registered")
- Удаление посылки (только для посылок в статусе "registered")
- Просмотр всех посылок клиента
- Go 1.22 или выше
- SQLite
- main.go - основной файл приложения с бизнес-логикой и функцией main
- parcel.go - функционал для работы с БД и хранения посылок
- tracker.db - файл базы данных SQLite
- Dockerfile - конфигурация для создания Docker-образа
docker build -t parcel-tracker .docker run parcel-trackerЧтобы сохранить данные базы данных между запусками контейнера:
docker run -v $(pwd)/data:/app parcel-trackerУстановка зависимостей
go mod downloadСборка и запуск
go build -o parcel-tracker .
./parcel-trackerПримеры работы с приложением можно увидеть в функции main() файла main.go:
- Регистрация новой посылки
- Изменение адреса доставки
- Изменение статуса посылки
- Вывод списка посылок клиента
- Удаление посылки
- Структура базы данных
- number - уникальный номер посылки
- client - идентификатор клиента
- status - статус посылки (registered, sent, delivered)
- address - адрес доставки
- created_at - дата и время регистрации посылки
В проекте настроен GitHub Actions CI/CD. Пайплайн выполняет:
- автоматическую проверку кода (go vet) и запуск тестов (go test) на все push и pull request;
- автоматическую сборку и публикацию Docker-образа на Docker Hub при push-е тега вида v* (например, v1.0.0).
- Как опубликовать новый Docker-образ
Создайте git-тег с нужной версией:
git tag v1.0.0
git push --tagsВместо v1.0.0 подставьте нужную версию.
После этого GitHub Actions сам:
- прогонит тесты,
- соберет Docker-образ,
- опубликует его на DockerHub в формате:
<ваш DockerHub username>/<имя репозитория>:<ваш_тег>Например: ivanpetrov/parcel-tracker:v1.0.0
Для успешного пуша в DockerHub в настройках репозитория GitHub (Settings → Secrets and variables → Actions → secrets) должны быть:
- DOCKERHUB_USERNAME — ваш логин на DockerHub
- DOCKERHUB_TOKEN — DockerHub access token с правами “Read & Write”.
docker pull <ваш DockerHub username>/<имя репозитория>:v1.0.0