Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parcel Tracker

Приложение для отслеживания посылок и управления их статусами. Система позволяет регистрировать новые посылки, изменять их статусы, адреса доставки и отслеживать историю посылок клиентов.

Функциональность

  • Регистрация новых посылок
  • Изменение статуса посылки (registered → sent → delivered)
  • Изменение адреса доставки (только для посылок в статусе "registered")
  • Удаление посылки (только для посылок в статусе "registered")
  • Просмотр всех посылок клиента

Требования

  • Go 1.22 или выше
  • SQLite

Структура проекта

  • main.go - основной файл приложения с бизнес-логикой и функцией main
  • parcel.go - функционал для работы с БД и хранения посылок
  • tracker.db - файл базы данных SQLite
  • Dockerfile - конфигурация для создания Docker-образа

Запуск с помощью Docker

Сборка Docker-образа

docker build -t parcel-tracker .

Запуск контейнера

docker run parcel-tracker

Запуск с сохранением данных

Чтобы сохранить данные базы данных между запусками контейнера:

docker run -v $(pwd)/data:/app parcel-tracker

Запуск без Docker

Установка зависимостей

go mod download

Сборка и запуск

go build -o parcel-tracker .
./parcel-tracker

Примеры использования

Примеры работы с приложением можно увидеть в функции main() файла main.go:

  • Регистрация новой посылки
  • Изменение адреса доставки
  • Изменение статуса посылки
  • Вывод списка посылок клиента
  • Удаление посылки
  • Структура базы данных

Приложение использует таблицу parcel в базе данных SQLite со следующими полями:

  • number - уникальный номер посылки
  • client - идентификатор клиента
  • status - статус посылки (registered, sent, delivered)
  • address - адрес доставки
  • created_at - дата и время регистрации посылки

CI/CD

Автоматизация сборки, тестирования и публикации Docker-образа

В проекте настроен 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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages