Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions 04-formats/tic-tac-toe-lioshik-caheska-kiruxalight/.be
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
//tictactoe/app
14 changes: 14 additions & 0 deletions 04-formats/tic-tac-toe-lioshik-caheska-kiruxalight/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Этот репозиторий создан для того чтобы написать простое веб приложение на JavaScript, которое реализует игру в крестики и нолики. Игра должна быть коллаборативной.

Само по себе задание довольно простое. Но все осложняется тем, что нужно использовать кастомную систему контроля версий Beagle.
Это собственная разработка нашего преподавателя на курсе по децентрализованным системам (на этом курсе нам и задали задания с крестиками и ноликами).

Тебе обязательно нужно прочитать эти две статьи чтобы понимать что это за система контроля версий
1. https://replicated.wiki/blog/partI.html
2. https://replicated.wiki/blog/partII.html

Поскольку эта система контроля версий имеет HTTP-api, приложение должно быть как-бы "задеплоино" в эту систему контроля версий. То есть предполагается, что человек в браузере просто откроет ссылку в системе beagle на какой-то один файл (например index.html) и у него запуститься приложение.

Важный нюанс: в качестве БД должен использоваться тоже beagle. То есть какие-то состояния игроков и/или игр тоже должны храниться внутри Beagle.

Для того чтобы понять какими командами можно поднимать beagle сервер, и пользоваться им стоит изучить сам репозиторий с проектом https://github.com/gritzko/librdx. Вроде как в нем есть также какая-то библиотека, для того чтобы делать запросы в beagle репозиторий прямо из браузера.
10 changes: 10 additions & 0 deletions 04-formats/tic-tac-toe-lioshik-caheska-kiruxalight/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.PHONY: serve commit proxy

serve:
be-srv 8080

proxy:
python3 proxy.py 9090

commit:
be post
56 changes: 56 additions & 0 deletions 04-formats/tic-tac-toe-lioshik-caheska-kiruxalight/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Крестики-Нолики на Beagle

Коллаборативная игра в крестики-нолики. В качестве хранилища и хостинга используется система контроля версий [Beagle](https://github.com/gritzko/librdx).

## Зависимости

- Собранный `be` и `be-srv` из [librdx](https://github.com/gritzko/librdx) (см. инструкцию по сборке в README репозитория)
- Python 3

## Быстрый старт

### 1. Инициализация Beagle-репозитория

```bash
be post //tictactoe/app
```

### 2. Коммит файлов в Beagle

```bash
make commit
```

### 3. Запуск Beagle-сервера

```bash
make serve
```

Сервер запустится на порту 8080.

### 4. Запуск прокси (в отдельном терминале)

```bash
make proxy
```

Прокси запустится на порту 9090. Он нужен потому что HTTP-парсер Beagle некорректно обрабатывает заголовки от браузера.

### 5. Открыть в браузере

```
http://localhost:9090/index.html
```

Для игры вдвоём откройте эту ссылку в двух вкладках/браузерах.

## Полезные команды

```bash
# Посмотреть содержимое файла в Beagle
curl http://localhost:8080/game_index.txt

# Посмотреть конкретную игру
curl http://localhost:8080/game_<id>.txt
```
Loading