Add Go to .tool-versions, update .gitignore for Go build output and cache, document seed data regeneration in README, and change API port from 8000 to 8080 in docker-compose. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
76 lines
2.0 KiB
Markdown
76 lines
2.0 KiB
Markdown
# nuzlocke-tracker
|
|
|
|
A full-stack Nuzlocke run tracker for Pokemon games.
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
- Docker & Docker Compose
|
|
|
|
### Start the Stack
|
|
|
|
```bash
|
|
docker compose up
|
|
```
|
|
|
|
This starts three services:
|
|
|
|
| Service | URL |
|
|
|------------|--------------------------|
|
|
| Frontend | http://localhost:5173 |
|
|
| API | http://localhost:8000 |
|
|
| API Docs | http://localhost:8000/docs|
|
|
| PostgreSQL | localhost:5432 |
|
|
|
|
### Run Migrations
|
|
|
|
```bash
|
|
docker compose exec api alembic -c /app/alembic.ini upgrade head
|
|
```
|
|
|
|
### Seed the Database
|
|
|
|
The seeder reads from pre-generated JSON files in `backend/src/app/seeds/data/` (committed to the repo) and loads them into PostgreSQL. No external API access is needed — everything runs from local files inside the container.
|
|
|
|
```bash
|
|
docker compose exec api python -m app.seeds
|
|
```
|
|
|
|
To seed and verify the data was loaded correctly:
|
|
|
|
```bash
|
|
docker compose exec api python -m app.seeds --verify
|
|
```
|
|
|
|
This loads game data, Pokemon, routes, and encounter tables for FireRed, LeafGreen, Emerald, HeartGold, and SoulSilver.
|
|
|
|
### Regenerating Seed Data
|
|
|
|
The seed JSON files don't normally need regenerating. If you need to update them (e.g., to pull in new PokeAPI data), run the Go fetch tool against a local PokeAPI instance:
|
|
|
|
1. Start a local PokeAPI (e.g., using [pokeapi/pokeapi](https://github.com/PokeAPI/pokeapi)):
|
|
|
|
```bash
|
|
# In a separate directory
|
|
git clone https://github.com/PokeAPI/pokeapi.git && cd pokeapi
|
|
docker compose up
|
|
```
|
|
|
|
This serves the API at `http://localhost:8000/api/v2` by default.
|
|
|
|
2. Run the fetch tool (requires Go 1.22+):
|
|
|
|
```bash
|
|
cd tools/fetch-pokeapi && go run .
|
|
```
|
|
|
|
Set `POKEAPI_URL` if your instance is at a different address:
|
|
|
|
```bash
|
|
POKEAPI_URL=http://localhost:9000/api/v2 go run .
|
|
```
|
|
|
|
Use `--clear-cache` to discard cached API responses and re-fetch everything.
|
|
|
|
3. Review and commit the updated JSON files in `backend/src/app/seeds/data/`. |