|
|
@@ -1,16 +1,81 @@
|
|
|
# Drafter
|
|
|
|
|
|
-# UI
|
|
|
+A web-based assistant for Magic: The Gathering Limited players.
|
|
|
|
|
|
-Install with `npm install`.
|
|
|
+Load your drafts from [17Lands](https://www.17lands.com/) and analyse your picks.
|
|
|
|
|
|
-Run with `npm run start`.
|
|
|
+> ⚠️ **Early development**
|
|
|
+>
|
|
|
+> Drafter is pre-alpha software. It's very incomplete. Expect bugs and breaking changes.
|
|
|
|
|
|
-Build with `npm run build`.
|
|
|
+---
|
|
|
|
|
|
-## Backend
|
|
|
+## Project structure
|
|
|
|
|
|
-## Adding a new set
|
|
|
+| Path | Purpose |
|
|
|
+| ---- | ------- |
|
|
|
+| `src/` | Elm source for the front-end UI |
|
|
|
+| `css/`, `tailwind.config.js` | Tailwind CSS styling |
|
|
|
+| `html/` | Static HTML entry point served by Parcel |
|
|
|
+| `server/` | FastAPI backend that exposes set/card endpoints |
|
|
|
+| `data/` | Raw data files and helper scripts used to generate JSON served by the backend |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Prerequisites
|
|
|
+
|
|
|
+Front-end
|
|
|
+* Node ≥ 14 and npm (or yarn)
|
|
|
+
|
|
|
+Back-end
|
|
|
+* Python ≥ 3.10
|
|
|
+* (Recommended) `virtualenv` or `pyenv`
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Running locally
|
|
|
+
|
|
|
+### 1. Clone & install
|
|
|
+
|
|
|
+```bash
|
|
|
+# clone and enter the repo
|
|
|
+# git clone https://github.com/kdelwat/drafter.git
|
|
|
+cd drafter
|
|
|
+
|
|
|
+# Front-end deps
|
|
|
+npm install
|
|
|
+
|
|
|
+# Back-end deps (inside a venv)
|
|
|
+python3 -m venv .venv
|
|
|
+source .venv/bin/activate
|
|
|
+pip install fastapi uvicorn[standard] httpx
|
|
|
+```
|
|
|
+
|
|
|
+### 2. Start development servers
|
|
|
+
|
|
|
+| Service | Command | URL |
|
|
|
+| ------- | ------- | --- |
|
|
|
+| UI (Parcel) | `npm run start` | http://localhost:1234 |
|
|
|
+| API (FastAPI) | `uvicorn server.main:app --reload --port 8000` | http://localhost:8000 |
|
|
|
+
|
|
|
+The UI is configured to call the API on `localhost:8000` during development via CORS.
|
|
|
+
|
|
|
+### 3. Build for production (optional)
|
|
|
+
|
|
|
+```bash
|
|
|
+npm run build # outputs static assets to dist/
|
|
|
+```
|
|
|
+
|
|
|
+### 4. Running tests
|
|
|
+
|
|
|
+There are a few frontend tests, run with:
|
|
|
+
|
|
|
+```bash
|
|
|
+elm-test
|
|
|
+```
|
|
|
+---
|
|
|
+
|
|
|
+## Generating & adding new set data
|
|
|
|
|
|
0. Create a new folder in data/sets
|
|
|
|