Phase 1: auth, room CRUD, WebSocket chat, PWA frontend

Invite-only FastAPI + SQLAlchemy(async) + Postgres backend (session-cookie
auth via CLI-provisioned accounts, open-room CRUD, single-instance /ws/chat)
and a React + Vite PWA frontend (login, room list, chat view). Backend tests
pass against a local Postgres DB. See README.md and backend/README.md for
setup, and ARCHITECTURE.md for the full phased design.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 20:01:17 -06:00
co-authored by Claude Sonnet 5
parent 8ac35062dc
commit 99aa029c0d
77 changed files with 9042 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
import { Navigate, Route, Routes } from 'react-router-dom'
import { AuthProvider } from './context/AuthContext'
import { ProtectedRoute } from './components/ProtectedRoute'
import { LoginPage } from './pages/LoginPage'
import { RoomListPage } from './pages/RoomListPage'
import { ChatRoomPage } from './pages/ChatRoomPage'
function App() {
return (
<AuthProvider>
<Routes>
<Route path="/login" element={<LoginPage />} />
<Route
path="/rooms"
element={
<ProtectedRoute>
<RoomListPage />
</ProtectedRoute>
}
/>
<Route
path="/rooms/:roomId"
element={
<ProtectedRoute>
<ChatRoomPage />
</ProtectedRoute>
}
/>
<Route path="*" element={<Navigate to="/rooms" replace />} />
</Routes>
</AuthProvider>
)
}
export default App