How anoop-kumar-31/queueflow works
1. Repository scope
- This repo is the QueueFlow frontend only: a React 18 + Vite single-page app that talks to an external REST API and a Socket.io backend.
- There is no server code here; the architectural boundary is the browser UI, Redux state, and service adapters.
2. App bootstrap
- src/main.jsx is the entry point that mounts the React app and connects it to the Redux store.
- src/App.jsx is the top-level route/shell coordinator, while src/store.js wires together the feature slices.
3. Routing and screen boundaries
- src/pages/ contains the primary route-level screens: Login, Register, Dashboard, ProjectBoard, TasksBoard, AnalyticsDashboard, and Profile.
- This suggests a role-driven SPA where authenticated users move between workspace, task, analytics, and profile views rather than separate server-rendered pages.
4. Global application shell
- src/components/AppLayout.jsx plus the src/components/layout/ folder form the persistent UI shell.
- The shared header/sidebar area includes AppSidebar, SearchBar, NotificationBell, and ThemeToggle, which implies navigation, global search, real-time alerts, and theme state are always available across authenticated screens.
5. State management layer
- Redux Toolkit is the central state boundary in src/features/.
- The slices are split by domain: authSlice.js for session/user state, projectSlice.js for workspace/project data, and tasksSlice.js for task/board state.
- This is the main client-side source of truth for both REST-fetched and socket-driven updates.
6. Backend integration layer
- src/services/api.js is the REST adapter, likely handling CRUD, auth, project membership, tasks, and analytics fetches.
- src/services/socket.js is the real-time adapter, responsible for connecting to Socket.io and broadcasting/receiving collaborative events.
- The architecture separates request/response traffic from push-based updates instead of mixing them in components.
7. Real-time collaboration flow
- User actions such as task moves, project membership changes, invite generation, and notes feed into the API and/or socket service.
- Socket events then update Redux slices, which immediately refresh the Kanban board, notification feed, and activity timeline without a page reload.
- This push-based loop is the core interaction model of the app.
8. Project and task workflows
- Project-level actions are surfaced through modal components such as CreateProjectModal, JoinProjectModal, GenerateInviteModal, and ManageAccessModal.
- Task-level actions are handled by CreateTaskModal and TaskDetailsModal, indicating most mutations happen in focused overlays rather than full-page forms.
- TasksBoard and ProjectBoard are the main working surfaces for these flows.
9. Collaboration and visibility features
- ActivityTimeline.jsx represents the event stream for workspace history.
- NotificationBell.jsx provides unread, real-time awareness of teammate actions.
- These are separate from the main board, which helps distinguish operational work from audit/visibility surfaces.
10. Analytics and reporting
- AnalyticsDashboard.jsx is a dedicated reporting surface for workflow intelligence.
- It likely consumes task/project state from the store and/or API responses to render bottlenecks, completion trends, and workload views.
- This is a read-heavy subsystem distinct from the task mutation path.
11. Authentication boundary
- Login.jsx and Register.jsx isolate unauthenticated access from the rest of the workspace.
- The rest of the app appears to assume an authenticated session and role-aware UI, so auth is a gateway dependency for all project/task features.
12. Shared UI and loading state
- Loading.jsx is a standalone boot/loading experience, separate from normal navigation.
- src/App.css and src/index.css provide app-wide styling, while src/assets/ holds static UI assets.
- Visual presentation is likely utility-first with Tailwind, but the architectural point is that styling is centralized and shared across all screens.
13. External systems
- The frontend depends on a backend REST API and a Socket.io server, configured through the Vite environment variable noted in the README.
- The app is built and served as a static SPA via Vite, so all business logic shown here is client-side orchestration around those backend services.
14. High-level data flow
- User interaction starts in a page or modal, dispatches Redux actions, calls the REST API for persistence, and then receives socket broadcasts for cross-user synchronization.
- The store updates drive the visible UI: boards, timelines, analytics, notifications, and access management all read from the same shared client state.
Main entry points: App.jsx App · AppLayout.jsx AppLayout · ProjectBoard.jsx Project Board · store.js Store
Components 28
UI Shell
Persistent app chrome and shared overlays
- AppLayout · Persistent authenticated application layout
src/components/AppLayout.jsx - Sidebar · Primary workspace navigation
src/components/layout/AppSidebar.jsx - Search · Shared search entry in the shell
src/components/layout/SearchBar.jsx - Alerts · Unread notifications and event awareness
src/components/layout/NotificationBell.jsx - Theme · Global theme switching
src/components/layout/ThemeToggle.jsx - Timeline · Workspace history and event stream
src/components/ActivityTimeline.jsx - Loading · Startup and loading state
src/components/Loading.jsx - Create Project · Project creation workflow
src/components/CreateProjectModal.jsx - Join Project · Project join and invite entry
src/components/JoinProjectModal.jsx - Invite · Invite link generation
src/components/GenerateInviteModal.jsx - Access · Membership and permission management
src/components/ManageAccessModal.jsx - Create Task · Task creation workflow
src/components/CreateTaskModal.jsx - Task Details · Task inspection and editing
src/components/TaskDetailsModal.jsx
Pages
Route-level screens
- Login · Authenticated entry gate
src/pages/Login.jsx - Register · Account creation screen
src/pages/Register.jsx - Dashboard · Authenticated landing view
src/pages/Dashboard.jsx - Project Board · Project-level collaboration surface
src/pages/ProjectBoard.jsx - Tasks Board · Task planning and execution board
src/pages/TasksBoard.jsx - Analytics · Workflow metrics and trends
src/pages/AnalyticsDashboard.jsx - Profile · User account and preferences
src/pages/Profile.jsx
State
Redux store and domain slices
Services
REST and realtime adapters
Connections 32
- main → App: mounts · Bootstraps the React application
- main → Store: provides store · Connects Redux to the app
- App → AppLayout: renders shell · Wraps authenticated content in persistent chrome
- App → Login: routes to · Unauthenticated gateway
- App → Register: routes to · Account creation route
- App → Dashboard: routes to · Default workspace view
- App → Project Board: routes to · Project collaboration view
- App → Tasks Board: routes to · Task board view
- App → Analytics: routes to · Reporting view
- App → Profile: routes to · User account view
- AppLayout → Sidebar: contains · Primary navigation
- AppLayout → Search: contains · Global search entry
- AppLayout → Alerts: contains · Real-time notification indicator
- AppLayout → Theme: contains · Theme switching control
- AppLayout → Timeline: shows · Activity and history feed
- Store → Auth: includes · Session state
- Store → Projects: includes · Project state
- Store → Tasks: includes · Task state
- Auth → API: syncs via · Auth and session persistence
- Projects → API: syncs via · Project CRUD and membership reads
- Tasks → API: syncs via · Task persistence and fetches
- Projects → Socket: receives events · Collaborative project updates
- Tasks → Socket: receives events · Realtime task and board updates
- Socket → Alerts: drives · Pushes unread activity into alerts
- Socket → Timeline: feeds · Streams collaborative activity
- Project Board → Create Project: opens · Project creation overlay
- Project Board → Join Project: opens · Join workflow overlay
- Project Board → Invite: opens · Invite generation overlay
- Project Board → Access: opens · Permission management overlay
- Tasks Board → Create Task: opens · Task creation overlay
- Tasks Board → Task Details: opens · Task inspection and edit overlay
- Loading → main: precedes · Startup experience before app render