Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gonews - Микросервисная платформа для новостей

Gonews — это микросервисная платформа на Go для парсинга RSS источников агрегации, хранения и распространения новостей с системой комментариев и цензуры.

Архитектура

Проект состоит из нескольких микросервисов:

🚀 api-gateway

  • Единая точка входа для всех клиентских запросов
  • Маршрутизация между сервисами
  • Агрегация данных

📰 newsservice

  • Парсинг RSS-лент и агрегация новостей
  • Хранение публикаций в PostgreSQL
  • API для работы с новостями
  • Пагинация и фильтрация

💬 commentservice

  • Управление комментариями к новостям
  • Хранение комментариев в базе данных
  • CRUD операции для комментариев

🔍 censorservice

  • Модерация контента
  • Проверка текстов на соответствие правилам
  • Фильтрация нежелательного контента

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

gonews/
├── api-gateway/          # API шлюз
│   ├── cmd/              # Точка входа
│   ├── internal/
│   │   ├── api/          # API handlers
│   │   ├── app/          # Логика приложения
│   │   ├── infrastructure/ # Инфраструктура
│   │   ├── models/       # Модели данных
│   │   └── transport/    # HTTP транспорт
│   ├── Dockerfile
│   └── go.mod
├── newsservice/          # Сервис новостей
│   ├── cmd/
│   ├── internal/
│   │   ├── app/
│   │   ├── infrastructure/
│   │   ├── models/       # Модели новостей
│   │   ├── pagination/   # Пагинация
│   │   ├── rss/          # RSS парсер
│   │   ├── storage/      # Хранилище
│   │   └── transport/    # HTTP handlers
│   ├── Dockerfile
│   └── go.mod
├── commentservice/       # Сервис комментариев
│   ├── cmd/
│   ├── internal/
│   │   └── storage/      # Хранилище комментариев
│   ├── Dockerfile
│   └── go.mod
├── censorservice/        # Сервис цензуры
│   ├── cmd/
│   ├── internal/
│   ├── Dockerfile
│   └── go.mod
└── docker-compose.yml    # Оркестрация контейнеров

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

Требования

  • Docker
  • Docker Compose

Запуск в production

docker-compose up -d

Остановка

docker-compose down

Разработка

Локальный запуск для разработки

# Запуск отдельных сервисов
cd newsservice && go run cmd/main.go
cd commentservice && go run cmd/main.go
cd censorservice && go run cmd/main.go
cd api-gateway && go run cmd/main.go

Технологии

  • Go - основной язык разработки
  • PostgreSQL - основная база данных
  • Docker - контейнеризация
  • REST API - коммуникация между сервисами
  • gRPC - коммуникация между сервисами комментариев и цензуры

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages