How hh12356/dotpub works
DotPub is a technical-article community. Visitors browse, search, and read articles; registered users authenticate to publish and manage articles, comments, likes, and bookmarks; administrators moderate users/content and view analytics. The frontend routes pages and calls the FastAPI API layer, whose handlers enforce permissions and operate on ORM models. The README documents additional user, moderation, and analytics capabilities whose implementation was not sampled, so those links are shown only at the subsystem level. The AI assistant is documented and its frontend streaming call is visible; backend wiring beyond the chat router registration was not sampled.
Main entry points: index.jsx Community layout · main.py FastAPI application · apis API clients · models Community records
Components 23
Web application
- React application
frontend/src/index.jsx - Page routing
frontend/src/router/index.jsx - Community layout
frontend/src/pages/Layout/index.jsx - Article discovery
frontend/src/pages/Home/index.jsx - Article detail
frontend/src/pages/Article/index.jsx - Article editor
frontend/src/pages/Write/index.jsx - Article search
frontend/src/pages/Search/index.jsx - User lists and profile
frontend/src/pages/User - Admin dashboard
frontend/src/pages/Admin/index.jsx - AI chat widget
frontend/src/components/ChatFloat/index.jsx - API clients
frontend/src/apis
API services
- FastAPI application
backend/main.py - Authentication endpoints
backend/apis/login.py - Registration endpoints
backend/apis/sign_up.py - Article and comment endpoints
backend/apis/article.py - User endpoints
backend/apis/user.py - Administration endpoints
backend/apis/admin.py - Chat endpoint
backend/apis/chat.py - Authentication and permissions
backend/core/security.py
Community domain
- Community records
backend/models
Runtime platform
- MySQL database
- AI service
Other components
- Visitor / user
Connections 35
- Visitor / user → React application: uses
- React application → Page routing: renders
- Page routing → Community layout: routes pages
- Community layout → Article discovery: shows discovery
- Community layout → Article detail: opens article
- Community layout → Article editor: opens editor
- Community layout → Article search: opens search
- Community layout → User lists and profile: opens account
- Page routing → Admin dashboard: guards admin
- Community layout → AI chat widget: mounts assistant
- Article discovery → API clients: requests lists
- Article search → API clients: requests search
- Article detail → API clients: requests article actions
- Article editor → API clients: submits article
- User lists and profile → API clients: requests user data
- Admin dashboard → API clients: requests metrics
- AI chat widget → API clients: streams prompts
- API clients → FastAPI application: calls API
- FastAPI application → Authentication endpoints: mounts router
- FastAPI application → Registration endpoints: mounts router
- FastAPI application → Article and comment endpoints: mounts router
- FastAPI application → User endpoints: mounts router
- FastAPI application → Administration endpoints: mounts router
- FastAPI application → Chat endpoint: mounts router
- Authentication endpoints → Authentication and permissions: uses token security
- Registration endpoints → Community records: creates accounts
- Authentication endpoints → Community records: checks accounts
- Article and comment endpoints → Authentication and permissions: checks permissions
- Article and comment endpoints → Community records: reads and writes
- User endpoints → Authentication and permissions: checks identity
- User endpoints → Community records: reads and updates
- Administration endpoints → Authentication and permissions: checks admin role
- Administration endpoints → Community records: aggregates and moderates
- Community records → MySQL database: persists records
- Chat endpoint → AI service: streams responses