Hey, I’m Pritom Biswas. This repo is basically my Node.js revision log — me re-walking through the basics, poking at the internals, and slowly stacking up to modern stuff: sockets, GraphQL, Prisma, and all that is intuitive. Each folder here is either a tiny sandbox or a mini-workflow where I test the concepts. 😊
- Hello_World
- node_server
- project-01
- url_shortener
- discord-bot
- sokcet_chat (real-time demo)
- blog
- graphql
- thread_backend
A lot of this started with (and later drifted beyond) this playlist: https://www.youtube.com/playlist?list=PLinedj3B30sDby4Al-i13hQJGQoRQDfPo
And a great main source: https://nodejs.org/en/learn/getting-started/introduction-to-nodejs
What it is: A warm-up sandbox. Played with module exports, imports, and the CommonJS cache just to remind myself how Node actually attaches codes together.
Stack: Pure Node core, CommonJS require, export tricks, console I/O.
Takeaway: Before I let frameworks abstract everything, I want to know the main machines.
What it is: Built servers two ways — raw http vs Express — to really feel the trade-off: control vs speed.
Stack: Node’s http + url, some FS logging experiments, Express 5 routes/middleware.
Takeaway: Use Express by choice, not ignorance.
What it is: My first structured REST API with CRUD verbs and MVC separation. Middleware became my new toy here.
Stack: Express 5, custom middlewares (logReqRes), Mongoose for persistence, modular routes + controllers.
Takeaway: Scaling chaos? Structure saves lives.
What it is: Yep, built my own Bitly clone. IDs, redirects, auth — the full utility vibe.
Stack: Express 5, Mongoose, nanoid / uuid, EJS templating, JWT + cookies for auth.
Takeaway: Storage + identity + UI = suddenly feels like a product. Also learned the difference between stateful and stateless methods.
What it is: A Discord bot that chats with AI. Basically, event-driven design + external API juggling.
Stack: discord.js, OpenAI-compatible API, async streaming.
Takeaway: Node shines at real-time + integration chaos.
What it is: Real-time chat app demo. Socket.IO + Express. Added streams + compression on the side for fun.
Stack: Express 5, socket.io, Node streams, gzip (zlib), tiny clustering hints.
Takeaway: This is the jump from request/response into the reactive world.
What it is: Classic blog backend: CRUD + auth + templates. JWTs join in here.
Stack: Express 5, Mongoose, EJS, JWT, cookies, modular routes.
Takeaway: Once you add identity, it stops being just endpoints and starts being a platform.
What it is: First taste of GraphQL. Hooked Apollo to Express, fetched JSONPlaceholder, resolved some nested fields.
Stack: Apollo Server 4, Express 5 middleware, GraphQL SDL, resolvers, axios fetches.
Takeaway: REST is asking for what’s cooked; GraphQL is cooking it your way. GraphQL does not magically makes the system efficient, but gives the client-side more freedom.
What it is: More “serious” backend skeleton — like a Threads clone but modular, typed, and DB-backed.
Stack: TypeScript, Apollo Server 4, Express 5, Prisma, PostgreSQL, modular schema, env configs.
Takeaway: Type safety + schema-first + Prisma = the grown-up table.
- From bare Node → Express → GraphQL.
- From memory → Mongo (Mongoose) → Postgres (Prisma).
- From stateless → JWT/session identity.
- From sync scripts → APIs → sockets → integrations.
- From ad-hoc files → MVC → typed modularity.
- The other 60% NodeJS is remaining 😊
This repo is layered on purpose — every project builds intuition first, then throws in abstraction. I don’t want “breadth without depth.” I want depth, repeated until it sticks. 🚀
Explore, fork, remix, whatever. Always open to suggestions.
— Pritom Biswas