You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.0 KiB
Markdown
41 lines
1.0 KiB
Markdown
# quotesdb
|
|
|
|
A quotes web application — browse, submit, and manage memorable quotes.
|
|
|
|
## What
|
|
|
|
quotesdb is a full-stack web application with:
|
|
- A JSON REST API (`api` binary) backed by Cloudflare Workers + D1 (SQLite)
|
|
- A Yew/Wasm frontend (`ui` binary) hosted on Cloudflare Pages
|
|
- NanoID-identified quotes protected by a 4-word passphrase auth code
|
|
|
|
## How
|
|
|
|
Single Cargo crate with two binaries sharing common types via `src/lib.rs`:
|
|
- `api`: Axum on Tokio, targeting Cloudflare Workers via workers-rs, SQLx + D1
|
|
- `ui`: Yew compiled to `wasm32-unknown-unknown` via Trunk
|
|
|
|
## Run
|
|
|
|
```sh
|
|
# Start API server (local dev)
|
|
cargo run
|
|
|
|
# Start UI dev server (requires wasm32 toolchain + trunk)
|
|
trunk serve
|
|
```
|
|
|
|
## Test
|
|
|
|
```sh
|
|
cargo fmt && cargo check && cargo clippy && cargo test
|
|
```
|
|
|
|
## License
|
|
|
|
Licensed under either of [Apache License, Version 2.0](../LICENSE-APACHE) or [MIT License](../LICENSE-MIT) at your option.
|
|
|
|
## Disclaimer
|
|
|
|
This software was written with [Claude Code](https://claude.ai/claude-code) (claude-sonnet-4-6).
|