tournament-management

module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 29, 2024 License: MIT

README

MIT License

Copyright (c) 2024 Mustafa

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

Tournament Management

Описание проекта

"Tournament Management" — это микросервисное приложение на языке Go для управления турнирами. Проект состоит из нескольких сервисов, каждый из которых отвечает за определенную функциональность:

  • team-service: управление командами
  • division-service: управление дивизионами
  • match-service: управление матчами
  • playoff-service: управление этапом плей-офф
  • result-generation-service: генерация и обработка результатов
  • api-gateway: API шлюз, объединяющий все сервисы в единую точку входа

Все сервисы взаимодействуют с базой данных PostgreSQL и общаются между собой через API Gateway.

Требования

  • Go версии 1.17 или выше
  • Docker и Docker Compose
  • Git для клонирования репозитория

Установка и запуск

1. Клонирование репозитория
git clone https://github.com/ваш-логин/tournament-management.git
cd tournament-management

Использование

1. API Gateway

API Gateway доступен по адресу http://localhost:8080. Все запросы к сервисам проходят через него.

2. Работа с team-service
  • Получение списка команд:

    curl http://localhost:8080/teams
    
  • Добавление новой команды:

    curl -X POST -H "Content-Type: application/json" -d '{"name": "Team A"}' http://localhost:8080/teams
    
3. Работа с другими сервисами
division-service
  • Получение списка дивизионов:

    curl http://localhost:8080/divisions
    
  • Создание нового дивизиона:

    curl -X POST -H "Content-Type: application/json" -d '{"name": "Division A"}' http://localhost:8080/divisions
    
match-service
  • Получение списка матчей:

    curl http://localhost:8080/matches
    
  • Создание нового матча:

    curl -X POST -H "Content-Type: application/json" -d '{"team1_id": 1, "team2_id": 2, "date": "2024-11-08T10:00:00Z"}' http://localhost:8080/matches
    
playoff-service
  • Получение информации о плей-офф:

    curl http://localhost:8080/playoffs
    
  • Создание плей-офф:

    curl -X POST http://localhost:8080/playoffs
    
result-generation-service
  • Генерация результатов для Division A:

    curl -X POST http://localhost:8080/generate-results/divisionA
    
  • Генерация результатов для плей-офф:

    curl -X POST http://localhost:8080/generate-results/playoff
    

Makefile и Docker Compose

Makefile

Для удобного управления сервисами используется Makefile с основными командами:

.PHONY: build up down restart logs

build:
        docker-compose build

up:
        docker-compose up -d

down:
        docker-compose down

restart: down up

logs:
        docker-compose logs -f

Directories

Path Synopsis
Package main implements the API Gateway for tournament management.
Package main implements the API Gateway for tournament management.
services
division-service
Package divisionservice provides functionalities for managing divisions.
Package divisionservice provides functionalities for managing divisions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳