{"id":22792889,"url":"https://github.com/quaddarv1ne/course-management-platform","last_synced_at":"2026-04-29T17:39:00.259Z","repository":{"id":263186455,"uuid":"889617779","full_name":"QuadDarv1ne/course-management-platform","owner":"QuadDarv1ne","description":"Платформа управления онлайн-курсами с использованием современных технологий API взаимодействий","archived":false,"fork":false,"pushed_at":"2024-11-17T07:34:19.000Z","size":10,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T17:18:06.351Z","etag":null,"topics":["2024","analytics","api","api-rest","app","course","courses","grpc","maximdupley","platform","quadd4rv1n7","rest","web","webhook","websocket"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QuadDarv1ne.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-16T19:30:04.000Z","updated_at":"2024-11-21T17:16:49.000Z","dependencies_parsed_at":"2025-02-05T18:57:10.697Z","dependency_job_id":"dca05a7e-0627-4919-a17f-782722dab7c4","html_url":"https://github.com/QuadDarv1ne/course-management-platform","commit_stats":null,"previous_names":["quaddarv1ne/course-management-platform"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/QuadDarv1ne/course-management-platform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuadDarv1ne%2Fcourse-management-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuadDarv1ne%2Fcourse-management-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuadDarv1ne%2Fcourse-management-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuadDarv1ne%2Fcourse-management-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QuadDarv1ne","download_url":"https://codeload.github.com/QuadDarv1ne/course-management-platform/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuadDarv1ne%2Fcourse-management-platform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32437109,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T17:34:55.123Z","status":"ssl_error","status_checked_at":"2026-04-29T17:34:45.749Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2024","analytics","api","api-rest","app","course","courses","grpc","maximdupley","platform","quadd4rv1n7","rest","web","webhook","websocket"],"created_at":"2024-12-12T03:17:04.727Z","updated_at":"2026-04-29T17:39:00.242Z","avatar_url":"https://github.com/QuadDarv1ne.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧑‍🏫 Course Management Platform\n\n**Платформа управления онлайн-курсами** с использованием современных технологий API взаимодействий:\n\n- **REST API** для CRUD-операций.\n- **gRPC** для межсервисного взаимодействия.\n- **WebSocket** для уведомлений в реальном времени.\n- **Webhook** для интеграции с внешними системами.\n\n---\n\n## 📋 Содержание\n\n- [Описание](#описание)\n- [Функционал](#функционал)\n- [Технологии](#технологии)\n- [Установка](#установка)\n- [Использование](#использование)\n- [Примеры API](#примеры-api)\n- [Контакты](#контакты)\n\n---\n\n## 📝 Описание\n\nЭтот проект представляет собой модульную систему для управления курсами. Он демонстрирует использование различных способов взаимодействия API, что позволяет интегрировать платформу с другими сервисами, обеспечивать высокую производительность и поддерживать реальное время работы.\n\n---\n\n## ✨ Функционал\n\n1. **REST API**:\n   - Управление курсами (CRUD-операции).\n   - Авторизация и аутентификация.\n\n2. **gRPC**:\n   - Взаимодействие с микросервисом аналитики.\n\n3. **WebSocket**:\n   - Уведомления о новых курсах и активностях пользователей.\n\n4. **Webhook**:\n   - Обработка уведомлений от платёжных систем.\n\n---\n\n## 🛠️ Технологии\n\n- Backend:\n  - **FastAPI**\n  - **gRPC**\n  - **WebSocket**\n- Брокеры сообщений:\n  - **Kafka**\n  - **RabbitMQ**\n- СУБД:\n  - **PostgreSQL**\n- Инфраструктура:\n  - **Docker**\n  - **NGINX** (для прокси и балансировки).\n  \n---\n\n## 🚀 Установка\n\n### 1. Клонируйте репозиторий\n```bash\ngit clone https://github.com/username/course-management-platform.git\ncd course-management-platform\n```\n\n### 2. Установите зависимости\n\n**Создайте и активируйте виртуальное окружение:**\n\n```bash\npython -m venv venv\nsource venv/bin/activate  # Linux/MacOS\nvenv\\Scripts\\activate  # Windows\n```\n\n**Установите зависимости:**\n\n```bash\npip install -r requirements.txt\n```\n\n### 3. Запустите сервисы через Docker\n\nУбедитесь, что Docker установлен.\n\n**Запустите контейнеры:**\n\n```\ndocker-compose up -d\n```\n\n### 4. Запустите приложение\n\n```bash\nuvicorn main:app --reload\n```\n\n**Приложение будет доступно по адресу:** `http://localhost:8000`\n\n### 🛡️ Использование\n\n1. Документация API\n\n**Откройте в браузере:**\n\n1. `Swagger UI:` http://localhost:8000/docs\n2. `ReDoc:` http://localhost:8000/redoc\n\n2. Тестирование WebSocket\n\n`Подключитесь к WebSocket`: ws://localhost:8000/ws/\n\n### 📚 Примеры API\n\n1. REST API\n\n**Создание курса:**\n\n```bash\ncurl -X POST http://localhost:8000/courses/ -H \"Content-Type: application/json\" -d '{\"title\": \"Python Basics\", \"description\": \"Learn Python from scratch\"}'\n```\n\n**Получение списка курсов:**\n\n```bash\ncurl http://localhost:8000/courses/\n```\n\n2. gRPC\n\nИспользуйте клиента, чтобы отправить данные на микросервис аналитики.\n\n3. Webhook\n\n**Симулируйте запрос от внешней системы:**\n\n```bash\ncurl -X POST http://localhost:8000/webhook/payment/ -H \"Content-Type: application/json\" -d '{\"payment\n```\n\n### 📈 Структура репозитория\n\n```\ncourse-management-platform/\n│\n├── app/\n│   ├── __init__.py           # Инициализация приложения\n│   ├── main.py               # Основное приложение FastAPI\n│   ├── grpc/                     # gRPC-сервис и клиент\n│   │   ├── server.py             # gRPC сервер\n│   │   ├── client.py             # gRPC клиент\n│   │   └── course.proto          # Определение gRPC сервиса\n│   │\n│   ├── routes/                   # Маршруты (REST API, Webhook, WebSocket)\n│   │   ├── course_routes.py      # Маршруты для работы с курсами (REST)\n│   │   ├── websocket_routes.py   # Маршруты для WebSocket\n│   │   └── webhook_routes.py     # Маршруты для Webhook\n│   │\n│   ├── models/                   # Модели базы данных\n│   │   └── course_model.py       # Модель курса для работы с базой данных\n│   │\n│   ├── websocket/                # Логика для WebSocket\n│   └── config.py                 # Конфигурация приложения            \n│\n├── docker-compose.yml         # Конфигурация Docker\n├── requirements.txt           # Зависимости проекта\n├── README.md                  # Документация\n└── .env                       # Переменные окружения\n```\n\n### 🤝 Контакты\n\n**Автор:** Дуплей Максим Игоревич\n\n**Email:** maksimqwe42@mail.ru\n\n**Дата:** 16.11.2024\n\n- ✨ Этот проект создан для демонстрации взаимодействий API и обучения разработке веб-сервисов.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquaddarv1ne%2Fcourse-management-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquaddarv1ne%2Fcourse-management-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquaddarv1ne%2Fcourse-management-platform/lists"}