🏥Финальный проект: GoHospital (микросервисная система для клиники)

Описание

GoHospital — это проект высокой сложности, демонстрирующий реализацию микросервисной архитектуры на Go. Система предназначена для автоматизации записей к врачу в современной клинике.

Цель проекта — научиться строить распределённые системы, использовать gRPC, обмен сообщениями (NATS) и применять Docker-композицию.


Архитектура и компоненты

🧩Сервисы

1. API Gateway (Gin)

2. Patient Service (gRPC + PostgreSQL)

3. Appointment Service (NATS + PostgreSQL)


Сущности (в каждом сервисе — своя БД)

patients

Поле Тип Описание
id UUID Идентификатор
name string Имя пациента
birthdate date Дата рождения

appointments

Поле Тип Описание
id UUID Идентификатор
patient_id UUID Ссылка на пациента
doctor string Имя врача
time time Время приёма
status string created, canceled, …

Технологии

Go (1.21+) gRPC + Protobuf NATS Gin PostgreSQL Docker

Этапы разработки (17 дней)

1. Инфраструктура и шаблоны (3 дня)

  • Настройка Docker-окружения
  • Базовые структуры проектов
  • Конфигурация Protobuf

2. Patient Service (gRPC) (4 дня)

  • Реализация gRPC-методов
  • Подключение к PostgreSQL
  • Базовые тесты

3. Appointment Service (NATS) (4 дня)

  • Обработка событий
  • Логика работы с записями
  • Интеграция с Patient Service

4. API Gateway и маршруты (3 дня)

  • Настройка Gin-роутера
  • gRPC-клиент
  • Валидация запросов

5. Интеграция и тесты (3 дня)

  • Полная сборка системы
  • Нагрузочное тестирование
  • Документирование API

Особенности реализации


Критерии приемки


Дополнительно (по желанию)


🚀 Совет: Выполнение этого проекта докажет вашу готовность к работе с микросервисами и распределёнными системами в продакшене.