https://github.com/egorsborschikov/conferences_api
Video conferencing API with using REST & WebSocket
https://github.com/egorsborschikov/conferences_api
python rest-api streaming-data websockets
Last synced: 10 months ago
JSON representation
Video conferencing API with using REST & WebSocket
- Host: GitHub
- URL: https://github.com/egorsborschikov/conferences_api
- Owner: EgorSborschikov
- Created: 2025-03-16T06:03:38.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-17T09:56:33.000Z (11 months ago)
- Last Synced: 2025-06-06T08:08:48.997Z (10 months ago)
- Topics: python, rest-api, streaming-data, websockets
- Language: Python
- Homepage:
- Size: 254 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
C O N F E R E N C E - B A C K E N D
Backend-сервис для мобильного приложения ComfortComfy
[Mobile app](https://github.com/EgorSborschikov/comfort_confy/)
> [!IMPORTANT]
> Проект относится к типу "С окрытым исходным кодом" и не способен выдержать большую нагрузку!
> [!IMPORTANT]
> [Документация к REST API](http://127.0.0.1:8000/docs)
## Технологический стек:

### API Frameworks:


### Валидация моделей:

### Менеджер пакетов:

## Прочие инструменты:
### Хранилище данных:

### Контейнеризация:

### Тестирование API:

## REST API:
Сервер для выполнение базовых операций с конференциями (создание, присоединение, покидание, список конференций, история конференций).
### Маршруты
- [X] **/create_conference**: Создание конференции (название конференции, UUID автора);
- [X] **/join_conference{room_id}**: Присоединение к конференции (по идентификатору комнаты);
- [X] **/leave_conference{room_id}**: Покидание конференции (по идентификатору текущей комнаты);
- [X] **list_conferences?created_by**: Вывод списка конференций (фильтрация по UUID автора для истории созданных конференций);
- [X] **update_conference_name**: Обновление названия конференции(идентификатор комнаты, новое название);
- [X] **delete_conference**: удаление конференции (по идентификатору комнаты);
## WebSocket:
Сервер для обработки входящих потоков бинарных данных и последующей передачей обработнных данных в комнату конференции по сокету.
- [X] **ws://host:port/ws/{room_id}**: Конечная точка для обмена сообщениями в реальном времени
## Установка и запуск:
1. Для работы с сервером необходимо склонировать репозиторий с исходным кодом:
```shell
git clone https://github.com/EgorSborschikov/conferences_backend
2. Необходимо создать проект реляционной базы данных в [Supabase](https://supabase.com) и создать базу данных;
3. В корневом каталоге склонированного проекта необходимо создать файл .env и записать в него данные о supabase_key (их можно посмотреть в инструкции по подключению для выбранной технологии или выполнив cURL-запрос по supabaseURL (В разделе Project Settings > General)):
``` shell
curl -X GET '{supabaseUrl}/rest/v1/todos' \
-H "apikey: {supabaseKey}" \
-H "Authorization: Bearer {supabaseKey}"
```
4. В Docker Engine запускаем контейнер с Backend:
```shell
docker-compose --env-file server/conferences/.env -f server/docker/docker-compose.yml --project-directory server/conferences/ up --build
```
5. Когда контейнер запустился, можно отслеживать информацию в логах с помощью команды:
```shell
docker logs -f
```