How soumadip-dev/logiqo works
Logiqo is a coding-practice platform: users authenticate, browse challenges, edit and run code, and review submissions and profile progress; admins can manage problems. Users can also organize challenges into playlists. The graph follows the documented React/Express architecture and sampled problem and authentication flows. Playlist, execution, and submission internals are represented from the README and file tree; their detailed wiring was not sampled.
Main entry points: app.js Express app · axiosInstance.js HTTP client · App.jsx Client app · db.config.js PostgreSQL
Components 28
Web client
- Client app
client/src/App.jsx - Problem pages
client/src/pages/ProblemPage.jsx - Challenge browse
client/src/pages/HomePage.jsx - Sign-in pages
client/src/pages/LoginPage.jsx - Profile page
client/src/pages/ProfilePage.jsx - Playlist UI
client/src/components/PlaylistProfile.jsx - Submission views
client/src/components/SubmissionList.jsx - Auth state
client/src/store/useAuthStore.js - Problem state
client/src/store/useProblemStore.js - Execution state
client/src/store/useExecutionStore.js - Playlist state
client/src/store/usePlaylistStore.js - Submission state
client/src/store/useSubmissionStore.js - HTTP client
client/src/lib/axiosInstance.js
API and domain
- Express app
server/src/app.js - Auth API
server/src/routes/auth.routes.js - Problem API
server/src/routes/problem.routes.js - Playlist API
server/src/routes/playlist.routes.js - Submission API
server/src/routes/submission.routes.js - Auth services
server/src/services/auth.services.js - Problem services
server/src/services/problem.services.js - Playlist services
server/src/services/playlist.services.js - Submission services
server/src/services/submission.services.js
Code execution
- Execution API
server/src/routes/executeCode.routes.js - Execution services
server/src/services/executeCode.services.js - Judge0 adapter
server/src/utils/judge0.utils.js
Persistence
- PostgreSQL
server/src/config/db.config.js
Other components
- Developer
- Judge0 API
Connections 36
- Developer → Client app: uses
- Client app → Sign-in pages: routes
- Client app → Challenge browse: routes
- Client app → Problem pages: routes
- Client app → Profile page: routes
- Sign-in pages → Auth state: submits credentials
- Challenge browse → Problem state: loads challenges
- Problem pages → Problem state: loads challenge
- Problem pages → Execution state: runs code
- Profile page → Playlist UI: shows playlists
- Profile page → Submission views: shows activity
- Playlist UI → Playlist state: manages playlists
- Submission views → Submission state: loads submissions
- Auth state → HTTP client: sends requests
- Problem state → HTTP client: sends requests
- Execution state → HTTP client: sends requests
- Playlist state → HTTP client: sends requests
- Submission state → HTTP client: sends requests
- HTTP client → Express app: calls API
- Express app → Auth API: mounts routes
- Express app → Problem API: mounts routes
- Express app → Playlist API: mounts routes
- Express app → Submission API: mounts routes
- Express app → Execution API: mounts routes
- Auth API → Auth services: dispatches auth
- Problem API → Problem services: dispatches problems
- Playlist API → Playlist services: dispatches playlists
- Submission API → Submission services: dispatches queries
- Execution API → Execution services: dispatches runs
- Auth services → PostgreSQL: reads and writes
- Problem services → PostgreSQL: reads and writes
- Playlist services → PostgreSQL: reads and writes
- Submission services → PostgreSQL: reads submissions
- Problem services → Judge0 adapter: validates solutions
- Execution services → Judge0 adapter: submits code
- Judge0 adapter → Judge0 API: executes code