Private
Public Access
Renames the app's display name everywhere (page titles, PWA manifest, TopBar, email subject lines, HMAC signature header) and its internal technical slug from chatapp to ds-chat/ds_chat: the Python package name and console script, the systemd unit and its user/group/paths, the deploy scripts, the Docker container names, and the Postgres database name. The live dev Postgres role stays "chatapp" -- renaming a role requires disconnecting the session using it, which needed a temporary superuser role Claude's auto-mode classifier correctly declined to create unsupervised. Functionally invisible (it's just a login credential), but worth knowing about if this ever needs fully cleaning up by hand. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
37 lines
1.0 KiB
Markdown
37 lines
1.0 KiB
Markdown
# DS Chat frontend (Phase 1)
|
|
|
|
React + Vite PWA. Login, room list, and chat views wired to the backend's
|
|
REST API and `/ws/chat` WebSocket endpoint. See [`../README.md`](../README.md)
|
|
and [`../backend/README.md`](../backend/README.md) for full local setup.
|
|
|
|
## Dev
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
The dev server proxies `/api` and `/ws` to `http://localhost:8000` (see
|
|
`vite.config.ts`), so the backend must be running for anything beyond the
|
|
login page to work.
|
|
|
|
## Build
|
|
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
Generates the PWA manifest and service worker via `vite-plugin-pwa` into `dist/`.
|
|
|
|
## Layout
|
|
|
|
```
|
|
src/
|
|
main.tsx, App.tsx routes: /login, /rooms, /rooms/:roomId
|
|
api/ fetch wrappers (client, auth, rooms)
|
|
ws/useChatSocket.ts WebSocket hook (join/send/receive)
|
|
context/AuthContext.tsx current-user state, hydrated via GET /api/auth/me
|
|
components/ ProtectedRoute, RoomListItem, MessageList, MessageInput
|
|
pages/ LoginPage, RoomListPage, ChatRoomPage
|
|
```
|