diff --git a/README.md b/README.md index b059da4..8e86261 100644 --- a/README.md +++ b/README.md @@ -55,9 +55,18 @@ npm run dev - [x] Giphy GIF search + trending - [x] Terminal/Gruvbox dark aesthetic - [x] Voice/video rooms (LiveKit) -- [ ] Roles + permissions (Phase 3) -- [ ] PWA push notifications (Phase 3) -- [ ] WebAuthn passkeys (Phase 3) +- [x] Online presence (online/idle/dnd/offline) +- [x] Typing indicators +- [x] Message reactions (emoji picker, counts) +- [x] Message replies/threads +- [x] PWA with service worker +- [x] Invite link system +- [x] @mention autocomplete +- [x] Dark/light mode toggle +- [x] Mobile-responsive layout (bottom nav, drawer) +- [ ] Push notifications (backend VAPID keys needed) +- [ ] Roles + permissions (Phase 4) +- [ ] WebAuthn passkeys (future) - [ ] TUI client (Phase 5) ## Project Structure @@ -79,11 +88,13 @@ dumpsterChat/ │ ├── middleware/ # Session auth middleware │ ├── server/ # Server CRUD + membership │ ├── upload/ # MinIO file upload + serve -│ └── voice/ # LiveKit voice/video integration +│ ├── voice/ # LiveKit voice/video integration +│ ├── reaction/ # Message reactions +│ └── invite/ # Server invite links ├── web/ # React frontend (PWA) │ ├── src/ -│ │ ├── components/ # Layout, ChatArea, LoginForm, UserSettings, GiphyPicker, VoiceChannel, VoicePanel, VoiceControls -│ │ ├── stores/ # Zustand (auth, server, channel, message, ws, voice) +│ │ ├── components/ # Layout, ChatArea, LoginForm, UserSettings, GiphyPicker, VoiceChannel, VoicePanel, VoiceControls, TypingIndicator, ReactionBar, EmojiPicker, ReplyBar, MentionPopup, InviteModal, JoinServer, MobileNav, MobileDrawer, ThemeToggle, InstallPrompt +│ │ ├── stores/ # Zustand (auth, server, channel, message, ws, voice, presence, typing, push) │ │ └── lib/ # API client, WebSocket client │ └── tailwind.config.js ├── docker/ # Docker Compose, Dockerfile, Caddyfile, LiveKit config