Это групповой проект, выполненный в рамках командной разработки коммерческого REST API для онлайн-аптеки на языке Go.
🌎 Ссылка на репозиторий проекта
- Управление каталогом лекарств, категорий и подкатегорий
- Работа с корзиной пользователя (с фиксацией цен в момент добавления)
- Оформление заказов на основе корзины покупателя
- Гибкая система промокодов (расчет скидок в % и фиксированных суммах)
- Поэтапная оплата заказов несколькими платежами
- Система отзывов и оценок к лекарствам с проверкой факта покупки
Для запуска проекта локально вам необходимо установить зависимости:
go mod tidy
После настройки конфигурационного файла базы данных PostgreSQL (.env), запустите сервер командой:
go run main.go
- Разработка модуля Промокодов: спроектировал логику валидации кодов по датам, активности и лимитам использования, а также перерасчет полей
discount_totalиfinal_priceзаказа. - Разработка финансового модуля (Платежи): реализовал поддержку нескольких транзакций для одного заказа, контроль переплаты и автоматическое обновление статуса заказа на
paidпри полной оплате. - Разработка модуля Отзывов: написал функционал добавления/редактирования/удаления отзывов, динамический пересчет среднего рейтинга лекарства (
avg_rating) и интеграцию строгой бизнес-валидации.
В рамках своей зоны ответственности я полностью изолировал SQL-запросы на уровне слоя repository для сущностей платежей, промокодов и отзывов, а также подготовил соответствующие DTO-структуры для безопасной записи и обновления данных.
- Gin Gonic — для построения чистых REST-эндпоинтов, обработки HTTP-статусов и валидации входящего JSON.
- Интерфейсы в Go — для связывания слоев
transport,servicesиrepository, что обеспечивает слабую связанность компонентов. - Data Transfer Objects (DTO) — для входящих запросов на создание и частичное обновление (
PATCH) сущностей, чтобы защитить таблицы БД от сквозной перезаписи.