How shivam2-tech/fullstack-learning-journey works
This repository is a curated collection of independent learning projects, not a single unified application. The main architectural boundary is the folder-level separation: each subproject has its own entry point, assets, and runtime assumptions, and there is very little shared code across projects.
1. Top-level structure as progression
The repo is organized by learning stage: frontend basics, API-driven apps, DOM exercises, Node.js backend exercises, and React apps. A diagram should show these as parallel tracks rather than one dependency chain.
2. Static browser apps
The 01-api-projects, 02-mini-projects, and 03-dom-projects folders are mostly plain HTML/CSS/JavaScript apps. Each one runs directly in the browser, with index.html/script.js/style.css or similar as the whole application boundary.
3. API consumer apps
The API projects include Pokémon, Weather, and Movie apps. Their core flow is:
browser UI → JavaScript fetch logic → external public API → render results back into the DOM.
These projects are important because they introduce asynchronous data loading and API response handling, but they do not have their own backend.
4. Local state and browser persistence
Several mini-projects, especially to-do list variants, rely on browser-side state and likely localStorage for persistence. In architecture terms, the “database” is the browser storage layer, not an external service.
5. DOM-interaction exercises
The 03-dom-projects folder is centered on event handling and UI updates: clock, counter, and calculator. These are client-only apps with direct user interaction loops:
user event → JS state update → DOM re-render/update.
6. Node.js fundamentals
The 04-Node js/01-Basic, 02-file-system, 03-Modules, and 04-npm folders are backend/Node practice modules. They demonstrate server-side JavaScript primitives, filesystem access, module exports/imports, and package management, but they are not a single product service.
7. Express REST API layer
The 04-Node js/05-express-basics and 04-Node js/Movie API folders introduce an HTTP server boundary. Here the flow becomes:
client request → Express route → middleware/handler → JSON response.
This is the first real server-side API layer in the repo.
8. In-memory API service
04-Node js/Movie API uses a file-based data module (data/movies.js) rather than a database. The architecture is a classic REST API with route handlers and middleware for logging, validation, and error handling, but persistence is in-memory/static data.
9. MongoDB-backed backend apps
04-Node js/Movie-API-MongoDB and 04-Node js/Notes-API-MongoDB add a real persistence layer through MongoDB. These projects have a clearer backend architecture:
Express routes → middleware → Mongoose models → MongoDB.
Authentication is introduced in these versions through dedicated auth middleware and auth routes.
10. Backend cross-cutting concerns
Both MongoDB-backed services include middleware for auth, validation, logging, and error handling. These are shared architectural concerns that sit between incoming requests and the domain models/routes.
11. React frontend apps
The 05-React folder contains separate Vite-based React projects: health tracker, score keeper, to-do list, and username preview. Each has its own src/main.jsx, App.jsx, and styling entry point, so they should be diagrammed as standalone SPAs.
12. React component boundaries
These React projects are small component trees rather than multi-page systems. For example, score-keeper includes a reusable Player component, while others are mostly single-root App apps managing local component state.
13. Build/runtime tooling
The repo mixes runtime models: browser-only static files, Node.js scripts/servers, and Vite-bundled React apps. Package manifests and lockfiles appear only where npm-based tooling is needed, while plain HTML/JS exercises do not require a build step.
14. Overall architectural story
The repository is best represented as a learning portfolio of isolated apps that progressively evolve from:
static UI → DOM interaction → public API consumption → Node/Express servers → database-backed REST APIs → React component apps.
There is no central shared backend or monorepo orchestration layer.
Main entry points: COUNTER APP Counter · file.js File system · greetings.js Modules · index.js NPM setup
Components 27
Browser learning apps
Static HTML/CSS/JS projects, DOM exercises, and API-consuming browser apps.
- Pokemon fetch · Client-side Pokémon app that fetches public API data and renders results in the DOM.
01-api-projects/Pokemon ( fetch Api ) - Weather API · Browser weather app centered on asynchronous API requests and DOM rendering.
01-api-projects/Weather API - Movie API · Client-side movie search app with fetch logic and result rendering.
01-api-projects/Movie API - Advanced Pokémon · More involved Pokémon browser app with richer client-side interaction.
01-api-projects/ADVANCED POKEMON - To-do list · Simple browser to-do app with local state and DOM updates.
02-mini-projects/TO-DO LIST - Advanced todo · Todo variant with richer client-side state and persistence concerns.
02-mini-projects/Advanced To-do List - Number game · Interactive guessing game driven by input handling and UI feedback loops.
02-mini-projects/NUMBER GUESSING GAME - Stopwatch · Timer-style mini project with repeated UI updates in the browser.
02-mini-projects/STOPWATCH - Unit converter · Client-side conversion exercise built as a static page app.
02-mini-projects/UNIT CONVERTER - Clock · Client-only clock built around scheduled DOM updates.
03-dom-projects/CLOCK - Counter · Event-driven counter app with local UI state.
03-dom-projects/COUNTER APP - Calculator · Interactive calculator focused on user events and DOM state updates.
03-dom-projects/Simple Calculator - Browser storage · Local browser persistence layer used by stateful mini projects.
- Public APIs · External public APIs consumed by the browser API projects.
Node backends
Node.js fundamentals, Express APIs, and MongoDB-backed services.
- Basic Node · Introductory Node.js script demonstrating runtime fundamentals.
04-Node js/01-Basic/app.js - File system · Node file-system exercises built around reading and writing local files.
04-Node js/02-file-system/file.js - Modules · CommonJS module examples showing imports, exports, and reuse.
04-Node js/03-Modules/greetings.js - NPM setup · Package-managed Node exercise showing npm-based project scaffolding.
04-Node js/04-npm/index.js - Express basics · First Express server boundary with routing and request/response handling.
04-Node js/05-express-basics/index.js - Movie API · Express REST API using routes, middleware, and a file-backed movie data module.
04-Node js/Movie API/index.js - Movie API Mongo · MongoDB-backed Express API with auth, validation, and model-driven persistence.
04-Node js/Movie-API-MongoDB/index.js - Notes API Mongo · MongoDB-backed notes service with auth routes and model-based persistence.
04-Node js/Notes-API-MongoDB/index.js - MongoDB · External persistence layer used by the MongoDB-backed backend projects.
React apps
Standalone Vite-powered React single-page apps.
- Health tracker · Vite-based React app with a small component tree and local UI state.
05-React/Health_Tracker/health_tracker - Score keeper · React score-keeping app with reusable player component boundaries.
05-React/score-keeper - React todo · React todo application organized as a standalone Vite app.
05-React/to_doList - Username preview · Small React app for live previewing username input.
05-React/username_preview
Connections 19
- Pokemon fetch → Public APIs: fetches · Browser app requests Pokémon data from a public API.
- Weather API → Public APIs: fetches · Browser app loads weather data from a public API.
- Movie API → Public APIs: fetches · Browser app queries an external movie API.
- Advanced Pokémon → Public APIs: fetches · Enhanced Pokémon app still depends on external API responses.
- To-do list → Browser storage: persists · Todo state is kept in browser storage rather than a backend.
- Advanced todo → Browser storage: persists · Advanced todo variants rely on local browser persistence.
- Clock → Counter: shares pattern · Both are client-only event/update exercises.
- Counter → Calculator: shares pattern · Calculator continues the DOM interaction learning track.
- Basic Node → File system: progresses to · Node fundamentals lead into filesystem exercises.
- File system → Modules: progresses to · Filesystem practice is followed by module system exercises.
- Modules → NPM setup: progresses to · Module basics transition into npm-managed projects.
- NPM setup → Express basics: progresses to · Package-managed Node work expands into an HTTP server.
- Express basics → Movie API: extends · Express basics evolve into a structured REST API.
- Movie API → Movie API Mongo: upgrades persistence · Movie API gains real database-backed storage and auth.
- Movie API Mongo → MongoDB: stores in · Mongo-backed service persists data in MongoDB.
- Notes API Mongo → MongoDB: stores in · Notes service also persists data in MongoDB.
- Health tracker → Score keeper: same runtime · Standalone React/Vite apps with similar SPA structure.
- Score keeper → React todo: same runtime · All React projects are separate entry points, not one app.
- React todo → Username preview: same runtime · Each React folder is an isolated Vite-based SPA.