How ishan8727/csjourney works
Repository Shape
This is a collection of independent web-development learning projects, not a single deployable application. It combines Node.js/Express-style backend exercises, authentication examples, server-rendered CRUD work, and several standalone React/Vite frontends. Each directory with its own package.json is an independent runtime boundary.
Backend Entry Points
Node-based exercises expose separate executable entry points:
• Todo service: WebDev/Todo/index.js, with persistence setup in WebDev/Todo/db.js.
• Course-selling backend: WebDev/courseSellingApp/index.js, with database integration in WebDev/courseSellingApp/db.js.
• JWT/auth examples: WebDev/JWTCode/index.js, WebDev/authMiddlewareJwt/index.js, and WebDev/AuthEtc/index.js.
• CRUD/server experiments: WebDev/CRUD/active.js, WebDev/CRUD/http.js, and WebDev/CRUD/middlewareServer.js.
These should be treated as unrelated applications or lessons, with no shared server bootstrap or common package workspace.
Course-Selling API Architecture
WebDev/courseSellingApp is the most structured backend. Its likely control flow is:
1. WebDev/courseSellingApp/index.js initializes the HTTP application and mounts route modules.
2. Request domains are separated into admin, user, and course routers: WebDev/courseSellingApp/router/admin.js, WebDev/courseSellingApp/router/user.js, and WebDev/courseSellingApp/router/course.js.
3. Protected operations pass through role-specific middleware: WebDev/courseSellingApp/middleware/admin.js and WebDev/courseSellingApp/middleware/user.js.
4. Routers access the persistence layer configured by WebDev/courseSellingApp/db.js.
The admin/user middleware boundary is the core authorization boundary; route modules are the API/domain boundary; the database module isolates storage connectivity.
CRUD and Server-Rendered Flow
WebDev/CRUD contains small HTTP and middleware experiments alongside an EJS-rendered CRUD interface. Server logic in WebDev/CRUD/active.js or WebDev/CRUD/middlewareServer.js is expected to render or serve the templates in WebDev/CRUD/views/index.ejs and WebDev/CRUD/views/edit.ejs. This is distinct from the React projects: HTML is generated on the server rather than solely in the browser.
Authentication Samples
Authentication is explored in isolated implementations rather than a shared identity service:
• JWT creation/validation example: WebDev/JWTCode/index.js.
• JWT middleware and a static browser page: WebDev/authMiddlewareJwt/index.js, WebDev/authMiddlewareJwt/public/index.html.
• General auth exercise: WebDev/AuthEtc/index.js.
The course-selling application separately embeds its role authorization logic under WebDev/courseSellingApp/middleware/. There is no visible common auth library across these projects.
React Frontend Projects
Five separate Vite-style React applications have browser entry points in src/main.jsx and root composition in src/App.jsx:
• Learning examples: WebDev/REACT/LearningReact/src/main.jsx, WebDev/REACT/LearningReact/src/App.jsx.
• SPA experiments: WebDev/REACT/SPA/src/main.jsx, WebDev/REACT/SPA/src/App.jsx.
• Website-style frontend: WebDev/REACT/Website/src/main.jsx, WebDev/REACT/Website/src/App.jsx, with page components under WebDev/REACT/Website/src/public/.
• Hook demonstrations: WebDev/REACT/custom-hooks/src/main.jsx, WebDev/REACT/custom-hooks/src/hooks/useFetch.js, WebDev/REACT/custom-hooks/src/hooks/Swr.js.
• State experiments: WebDev/REACT/state-experiments/src/main.jsx, WebDev/REACT/state-experiments/src/App.jsx.
These are client-side projects with independent package manifests and Vite configurations, not consumers of a clearly shared backend API.
Supporting Learning Utilities and Infrastructure
WebDev/node_learn contains standalone Node/CLI and filesystem exercises, centered on WebDev/node_learn/index.js, WebDev/node_learn/cli.js, and WebDev/node_learn/fileCounter.js. Dump/run.js and related files are separate async/file-processing experiments.
Material runtimes are Node.js for backend/CLI code and browser-based React/Vite for frontend projects. Package manifests and lockfiles define dependencies per project; no container, cloud deployment, CI pipeline, or shared external-service configuration is present in the tree.
Components 24
Course-Selling API
Independent Node backend with role-based API boundaries.
- HTTP application · Initializes the course-selling API and mounts routers.
WebDev/courseSellingApp/index.js - Admin routes
WebDev/courseSellingApp/router/admin.js - User routes
WebDev/courseSellingApp/router/user.js - Course routes
WebDev/courseSellingApp/router/course.js - Admin authorization
WebDev/courseSellingApp/middleware/admin.js - User authorization
WebDev/courseSellingApp/middleware/user.js - Database integration · Isolates storage connectivity for the API.
WebDev/courseSellingApp/db.js
CRUD Lessons
Independent server-rendered HTTP experiments.
- CRUD servers · HTTP, middleware, and EJS CRUD server implementations.
WebDev/CRUD/active.js - EJS CRUD views
WebDev/CRUD/views/index.ejs
Auth Samples
Separate authentication exercises without a shared identity service.
- JWT example
WebDev/JWTCode/index.js - JWT middleware server
WebDev/authMiddlewareJwt/index.js - Static auth page
WebDev/authMiddlewareJwt/public/index.html - General auth exercise
WebDev/AuthEtc/index.js
React/Vite Projects
Independent browser runtimes.
- Learning React app
WebDev/REACT/LearningReact/src/main.jsx - SPA experiments
WebDev/REACT/SPA/src/main.jsx - Website frontend
WebDev/REACT/Website/src/main.jsx - Website pages
- Custom-hooks app
WebDev/REACT/custom-hooks/src/main.jsx - Data-fetch hooks
WebDev/REACT/custom-hooks/src/hooks/useFetch.js - State experiments
WebDev/REACT/state-experiments/src/main.jsx
Node Utilities
Standalone CLI and file-processing exercises.
- Node CLI exercises
WebDev/node_learn/cli.js - File counter
WebDev/node_learn/fileCounter.js
Other components
- Todo service · Independent persistence-backed exercise.
WebDev/Todo/index.js - Todo persistence
WebDev/Todo/db.js
Connections 14
- HTTP application → Admin routes: mounts
- HTTP application → User routes: mounts
- HTTP application → Course routes: mounts
- Admin routes → Admin authorization: protects operations
- User routes → User authorization: protects operations
- Admin authorization → Database integration: authorized access
- User authorization → Database integration: authorized access
- Course routes → Database integration: persists courses
- CRUD servers → EJS CRUD views: renders
- Static auth page → JWT middleware server: browser requests
- Website frontend → Website pages: composes
- Custom-hooks app → Data-fetch hooks: uses
- Node CLI exercises → File counter: uses
- Todo service → Todo persistence: connects to