|
1 | | -# Soc Ops |
| 1 | +# 🎯 Soc Ops — Social Bingo |
2 | 2 |
|
3 | | -Social Bingo game for in-person mixers. Find people who match the questions and get 5 in a row! |
| 3 | +> **Break the ice, make connections, win at networking!** |
4 | 4 |
|
5 | | -🎮 **[Play the Game](https://madebygps.github.io/vscode-github-copilot-agent-lab/)** • 📚 **[View Lab Guide](https://madebygps.github.io/vscode-github-copilot-agent-lab/docs/)** |
| 5 | +Soc Ops is an interactive social bingo game designed for in-person mixers, team events, and conferences. Find people who match the prompts, mark your card, and race to get 5 in a row! |
6 | 6 |
|
7 | | ---- |
| 7 | +## ✨ Features |
8 | 8 |
|
9 | | -## 📚 Lab Guide |
| 9 | +- 🎲 **Randomized boards** — Every player gets a unique arrangement |
| 10 | +- 💾 **Auto-save progress** — Pick up where you left off |
| 11 | +- 🏆 **Bingo detection** — Automatic win detection for rows, columns, and diagonals |
| 12 | +- 🎉 **Celebration modal** — Confetti-worthy victory screen |
| 13 | +- 📱 **Mobile-first** — Works great on phones at events |
10 | 14 |
|
11 | | -| Part | Title | |
12 | | -|------|-------| |
13 | | -| [**00**](https://madebygps.github.io/vscode-github-copilot-agent-lab/docs/step.html?step=00-overview) | Overview & Checklist | |
14 | | -| [**01**](https://madebygps.github.io/vscode-github-copilot-agent-lab/docs/step.html?step=01-setup) | Setup & Context Engineering | |
15 | | -| [**02**](https://madebygps.github.io/vscode-github-copilot-agent-lab/docs/step.html?step=02-design) | Design-First Frontend | |
16 | | -| [**03**](https://madebygps.github.io/vscode-github-copilot-agent-lab/docs/step.html?step=03-quiz-master) | Custom Quiz Master | |
17 | | -| [**04**](https://madebygps.github.io/vscode-github-copilot-agent-lab/docs/step.html?step=04-multi-agent) | Multi-Agent Development | |
| 15 | +## 🚀 Quick Start |
18 | 16 |
|
19 | | -> 📝 Lab guides are also available in the [`workshop/`](workshop/) folder for offline reading. |
20 | | -
|
21 | | ---- |
22 | | - |
23 | | -## Prerequisites |
24 | | - |
25 | | -- [Python 3.13](https://www.python.org/downloads/) or higher |
26 | | -- [uv](https://docs.astral.sh/uv/) package manager |
27 | | - |
28 | | -## Setup |
| 17 | +### Prerequisites |
| 18 | +- [Python 3.13+](https://www.python.org/downloads/) |
| 19 | +- [uv](https://docs.astral.sh/uv/) (Python package manager) |
29 | 20 |
|
| 21 | +### Run Locally |
30 | 22 | ```bash |
31 | 23 | uv sync |
| 24 | +uv run uvicorn app.main:app --reload --port 8000 |
| 25 | +# Open http://localhost:8000 |
32 | 26 | ``` |
33 | 27 |
|
34 | | -## Run |
| 28 | +### Test |
| 29 | +```bash |
| 30 | +uv run pytest |
| 31 | +``` |
35 | 32 |
|
| 33 | +### Lint |
36 | 34 | ```bash |
37 | | -uv run uvicorn app.main:app --reload |
| 35 | +uv run ruff check . |
38 | 36 | ``` |
39 | 37 |
|
40 | | -Then open http://localhost:8000 in your browser. |
| 38 | +## 🎨 Customize Your Game |
| 39 | + |
| 40 | +### Change Questions |
| 41 | +Edit `app/data.py` to add your own icebreaker prompts: |
| 42 | +```python |
| 43 | +questions_list: list[str] = [ |
| 44 | + "has a pet", |
| 45 | + "speaks more than 2 languages", |
| 46 | + "your custom question here", |
| 47 | + # ... 24+ questions for a full board |
| 48 | +] |
| 49 | +``` |
41 | 50 |
|
42 | | -## Test |
| 51 | +### Workshop Guide |
| 52 | +👉 Follow the [Lab Guide](workshop/GUIDE.md) for a hands-on workshop experience with GitHub Copilot agents. |
43 | 53 |
|
44 | | -```bash |
45 | | -uv run pytest |
46 | | -``` |
| 54 | +## 🛠️ Tech Stack |
47 | 55 |
|
48 | | -## Lint |
| 56 | +- **Framework**: FastAPI + Jinja2 + HTMX |
| 57 | +- **Styling**: Custom CSS utilities (Tailwind-inspired) |
| 58 | +- **State**: Server-side sessions with cookie persistence |
| 59 | +- **Deployment**: GitHub Pages via Actions |
| 60 | + |
| 61 | +## 📁 Project Structure |
49 | 62 |
|
50 | | -```bash |
51 | | -uv run ruff check . |
52 | | -uv run ruff format . |
53 | 63 | ``` |
| 64 | +app/ |
| 65 | +├── templates/ # Jinja2 templates |
| 66 | +│ ├── base.html |
| 67 | +│ ├── home.html |
| 68 | +│ └── components/ # bingo_board, bingo_modal, game_screen, start_screen |
| 69 | +├── static/ # CSS & JS assets |
| 70 | +├── models.py # Game state & data models |
| 71 | +├── game_logic.py # Bingo detection & board generation |
| 72 | +├── game_service.py # Session management |
| 73 | +├── data.py # Question bank |
| 74 | +└── main.py # FastAPI routes |
| 75 | +tests/ |
| 76 | +├── test_api.py # API endpoint tests |
| 77 | +└── test_game_logic.py # Game logic unit tests |
| 78 | +``` |
| 79 | + |
| 80 | +## 🚢 Deployment |
| 81 | + |
| 82 | +Automatically deploys to GitHub Pages on push to `main`: |
| 83 | +- Your game: `https://{username}.github.io/{repo-name}` |
| 84 | + |
| 85 | +## 📝 License |
54 | 86 |
|
55 | | -Deploys automatically to GitHub Pages on push to `main`. |
| 87 | +MIT — use it for your next event! |
0 commit comments