2026-09-04 11:28:59 +01:00
|
|
|
# PHP Project Manager
|
2026-09-03 17:35:10 +01:00
|
|
|
|
2026-09-05 01:41:55 +01:00
|
|
|
A small project-management app: each user owns **projects**, and each
|
|
|
|
|
project holds **cards** you can organise as a flat list or a drag-and-drop
|
|
|
|
|
kanban board. It's a REST API in PHP (Slim 4) backed by SQLite, with a Vue 3
|
|
|
|
|
+ TypeScript PWA frontend. There's no password — signing in is a link
|
|
|
|
|
emailed to you, which creates your account the first time, and you can add
|
|
|
|
|
a passkey afterwards for a quicker sign-in next time.
|
2026-09-03 17:35:10 +01:00
|
|
|
|
2026-09-05 01:41:55 +01:00
|
|
|
## Documentation
|
2026-09-03 17:35:10 +01:00
|
|
|
|
2026-09-05 01:41:55 +01:00
|
|
|
This page covers running the app. For anything more technical — the REST
|
|
|
|
|
API, configuration, running without Docker, project layout, and the
|
|
|
|
|
development history — see [docs/](docs/).
|
2026-09-03 18:12:31 +01:00
|
|
|
|
2026-09-05 01:41:55 +01:00
|
|
|
## Getting started
|
2026-09-03 17:35:10 +01:00
|
|
|
|
2026-09-03 17:45:35 +01:00
|
|
|
The only requirement is Docker with the Compose plugin.
|
2026-09-03 17:35:10 +01:00
|
|
|
|
2026-09-03 17:45:35 +01:00
|
|
|
```bash
|
|
|
|
|
docker compose up -d
|
|
|
|
|
```
|
|
|
|
|
|
2026-09-05 01:41:55 +01:00
|
|
|
Then open <http://localhost:8080>. A **[Mailpit](https://mailpit.axllent.org/)**
|
|
|
|
|
mail-catcher also starts alongside the app, at <http://localhost:8025> —
|
|
|
|
|
since a default local setup has nowhere else to send the sign-in emails.
|
|
|
|
|
|
|
|
|
|
### First-time login
|
|
|
|
|
|
|
|
|
|
1. Enter any email address and submit. There's no separate sign-up step and
|
|
|
|
|
no password to choose — this both creates your account and sends it a
|
|
|
|
|
sign-in link.
|
|
|
|
|
2. Open <http://localhost:8025> (Mailpit) instead of a real inbox, and open
|
|
|
|
|
the message that just arrived there.
|
|
|
|
|
3. Click the link inside it. You're now signed in, on a new,
|
|
|
|
|
already-verified account.
|
|
|
|
|
|
|
|
|
|
From then on, your profile page (top right, your email address) lets you add
|
|
|
|
|
a **passkey** — your device's fingerprint, face, or PIN — so you don't need
|
|
|
|
|
to wait on an email to sign in next time.
|
|
|
|
|
|
|
|
|
|
Everything the app stores (your account, projects, cards) lives in a Docker
|
|
|
|
|
volume, so it survives `docker compose restart` / `down` + `up`;
|
|
|
|
|
`docker compose down -v` wipes it for a clean slate. See
|
|
|
|
|
[docs/setup.md](docs/setup.md) for configuration, running without Docker,
|
|
|
|
|
and running the test suite.
|
2026-09-03 17:37:20 +01:00
|
|
|
|
|
|
|
|
## Provenance
|
|
|
|
|
|
|
|
|
|
This project was generated with [Claude Code](https://claude.com/claude-code).
|