Un-hard-wrap all Markdown documentation
Every prose paragraph and list item was manually wrapped at ~80-100
columns; joined each back into a single line. Headings, table rows,
and fenced code blocks are untouched -- tables already had one row per
line, and wrapping inside a code fence is the code's own formatting,
not something this applies to.
Also fixed two pre-existing typos this surfaced (both from wrapping
without leaving the space that was actually intended): a missing space
in "{ challenge_id, options }" and a stray "+ TypeScript" that had
accidentally been written as if it were a new line, in web/README.md
and README.md respectively.
Code comments are explicitly out of scope for this -- left exactly as
they were.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,17 +1,10 @@
|
||||
# PHP Project Manager
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
## Documentation
|
||||
|
||||
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/).
|
||||
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/).
|
||||
|
||||
## Getting started
|
||||
|
||||
@@ -21,29 +14,17 @@ The only requirement is Docker with the Compose plugin.
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
|
||||
## Provenance
|
||||
|
||||
|
||||
Reference in New Issue
Block a user