ClubDAO is a club activity and chat platform built with React + TypeScript + Vite. It supports activity publishing, joining, room-based chat, profile cards, notifications, and a lightweight admin panel.
- Username + password login/register flow
- Activity square with search and category filtering
- Create/join/quit/cancel/complete activities
- Room view with visual seats and member profile preview
- In-room chat and global square chat
- Notification center and message jump
- QR poster generation for activity sharing
- Basic admin operations for activity management
- React 19
- TypeScript
- Vite 7
- Tailwind CSS
- laf-client-sdk (cloud function calls)
src/
App.tsx # Main app logic and UI
main.tsx # App bootstrap
index.css # Global styles and animations
components/
AnnouncementModal.tsx
npm installnpm run devnpm run buildnpm run previewThe frontend invokes cloud functions through laf-client-sdk in src/App.tsx.
Current baseUrl is configured directly in code:
src/App.tsx
If you deploy your own backend, update that URL and related cloud function contracts.
npm run devstart local developmentnpm run buildtype-check + production buildnpm run lintrun ESLintnpm run previewpreview built assets
- Core business logic is still highly centralized in
src/App.tsx(large file). - API contracts are currently inferred from runtime responses; stronger shared typing between frontend and backend is still pending.
- The cloud
baseUrlis still hardcoded insrc/App.tsxand should be moved to env-driven config in a later refactor.
- This repository currently focuses on product iteration speed.
src/App.tsxis intentionally centralized and can be modularized later.