Add Taskfile, update README and CLAUDE.md with dev instructions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
70
README.md
70
README.md
@@ -1,3 +1,71 @@
|
||||
# walkies
|
||||
|
||||
A web-based application for an animal shelter to manage volunteer scheduling, time off, check-in/check-out, and notifications.
|
||||
A web-based application for an animal shelter to manage volunteer scheduling, time off, check-in/check-out, and notifications.
|
||||
|
||||
## Requirements
|
||||
|
||||
- [Go](https://golang.org/) 1.21+
|
||||
- [Node.js](https://nodejs.org/) 18+
|
||||
- [Task](https://taskfile.dev/) (`brew install go-task` or see [install docs](https://taskfile.dev/installation/))
|
||||
- [Docker](https://www.docker.com/) (optional, for containerised deployment)
|
||||
|
||||
## Development
|
||||
|
||||
Run `task` to list all available tasks.
|
||||
|
||||
### Quick start (two terminals)
|
||||
|
||||
**Terminal 1 — backend:**
|
||||
```bash
|
||||
task web:build # build frontend once so the Go server has static files
|
||||
task go:run # starts API server on :8080
|
||||
```
|
||||
|
||||
**Terminal 2 — frontend dev server:**
|
||||
```bash
|
||||
task web:dev # hot-reload dev server on :3000, proxies /api/v1 → :8080
|
||||
```
|
||||
|
||||
Then open [http://localhost:3000](http://localhost:3000).
|
||||
|
||||
### With live backend reload
|
||||
|
||||
Install [air](https://github.com/air-verse/air) for hot-reloading the Go server:
|
||||
|
||||
```bash
|
||||
go install github.com/air-verse/air@latest
|
||||
task web:build
|
||||
task dev:backend
|
||||
```
|
||||
|
||||
### Common tasks
|
||||
|
||||
| Task | Description |
|
||||
|------|-------------|
|
||||
| `task build` | Build frontend and Go binary |
|
||||
| `task go:test` | Run Go tests |
|
||||
| `task web:test` | Run frontend tests |
|
||||
| `task go:lint` | Run `go vet` |
|
||||
| `task tidy` | Tidy Go modules |
|
||||
| `task clean` | Remove build artifacts |
|
||||
|
||||
## Docker
|
||||
|
||||
```bash
|
||||
task docker:up # build image and start container
|
||||
task docker:logs # tail logs
|
||||
task docker:down # stop
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The server is configured via environment variables:
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `PORT` | `8080` | HTTP listen port |
|
||||
| `DATABASE_DSN` | `walkies.db` | SQLite file path |
|
||||
| `JWT_SECRET` | `change-me-in-production` | HMAC signing key — **change this** |
|
||||
| `STATIC_DIR` | `./web/build` | Path to compiled React app |
|
||||
|
||||
Copy `.env.example` to `.env` to set these locally (the server reads environment variables directly; use a process manager or Docker to inject them).
|
||||
|
||||
Reference in New Issue
Block a user