# sheiblu/nodejs-practice architecture

> Architecture diagram of the GitHub repository sheiblu/nodejs-practice, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sheiblu/nodejs-practice
- Repository: https://github.com/sheiblu/nodejs-practice

## Overview

This repository is a collection of independent Node.js learning exercises, not one integrated application. Its examples cover fundamentals, asynchronous geocoding/weather lookups, Express servers, MongoDB-backed Todo APIs, a small rendered Todo app, and JWT login. The graph keeps those exercise branches separate; the README identifies the learning sources but does not document a unified user workflow. Edges are limited to relationships visible in excerpts or the source index; several listed exercises were not sampled.

Main entry points: [`2 udemy/04 Asyn Programming/35 calBack and weather together/app.js`](https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/04%20Asyn%20Programming/35%20calBack%20and%20weather%20together/app.js) (Weather CLI), [`2 udemy/07 MongoDB_ Mongoose_ and REST APIs (Todo API)/85 full Api (get , set , update, delete ) _ test-Case/server.js`](https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/07%20MongoDB_%20Mongoose_%20and%20REST%20APIs%20(Todo%20API)/85%20full%20Api%20(get%20%2C%20set%20%2C%20update%2C%20delete%20)%20_%20test-Case/server.js) (Todo REST API), [`jwt/index.js`](https://github.com/sheiblu/nodejs-practice/blob/master/jwt/index.js) (JWT Server), [`1 fast time/custom_modul/app.js`](https://github.com/sheiblu/nodejs-practice/blob/master/1%20fast%20time/custom_modul/app.js) (Module Demo)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_fundamentals["Node Fundamentals"]
  node_hello_app["Module Demo<br/>[app.js]"]
  node_hello_module["Greeting Module<br/>[hello3.js]"]
  node_calculator_app["Calculator Demo<br/>[app.js]"]
  node_calculator["Calculator<br/>[calculator.js]"]
  node_notes_examples["Notes CLI Examples"]
end

subgraph group_async["Async Examples"]
  node_async_basics["Async Exercises"]
  node_weather_cli["Weather CLI<br/>[app.js]"]
  node_geocoding["Geocoding<br/>[geocode.js]"]
  node_weather_lookup["Weather Lookup<br/>[weather.js]"]
end

subgraph group_web["Web Examples"]
  node_express_examples["Express Examples"]
  node_server_examples["Server Examples"]
  node_todo_web["Rendered Todo App<br/>[app.js]"]
  node_todo_controller["Todo Controller<br/>[todoController.js]"]
end

subgraph group_data_auth["Data And Auth"]
  node_mongo_api["Todo REST API<br/>[server.js]"]
  node_mongo_model["Todo Model<br/>[todo.js]"]
  node_mongo_connection["Mongoose Connection<br/>[mongoose.js]"]
  node_jwt_server["JWT Server<br/>[index.js]"]
  node_customer_routes["Customer Routes<br/>[customer.js]"]
  node_jwt_config["JWT Config<br/>[config.js]"]
end

node_learner(("Learner"))
node_mongo_service[("MongoDB")]

node_learner -->|"runs"| node_hello_app
node_hello_app -->|"imports"| node_hello_module
node_learner -->|"runs"| node_calculator_app
node_calculator_app -->|"imports"| node_calculator
node_learner -.->|"practices"| node_notes_examples
node_learner -.->|"practices"| node_async_basics
node_learner -->|"runs"| node_weather_cli
node_weather_cli -->|"requests coordinates"| node_geocoding
node_weather_cli -->|"requests forecast"| node_weather_lookup
node_learner -.->|"practices"| node_express_examples
node_learner -.->|"practices"| node_server_examples
node_learner -->|"runs"| node_todo_web
node_todo_web -->|"registers routes"| node_todo_controller
node_todo_controller -->|"reads and writes"| node_mongo_service
node_learner -.->|"sends requests"| node_mongo_api
node_mongo_api -->|"uses model"| node_mongo_model
node_mongo_api -->|"imports connection"| node_mongo_connection
node_learner -.->|"sends requests"| node_jwt_server
node_jwt_server -->|"mounts routes"| node_customer_routes
node_jwt_server -->|"loads config"| node_jwt_config

click node_hello_app "https://github.com/sheiblu/nodejs-practice/blob/master/1%20fast%20time/custom_modul/app.js"
click node_hello_module "https://github.com/sheiblu/nodejs-practice/blob/master/1%20fast%20time/custom_modul/hello3.js"
click node_calculator_app "https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/03%20Node_js%20Fundamentals%20(Note%20App)/10%20Custom%20Node/app.js"
click node_calculator "https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/03%20Node_js%20Fundamentals%20(Note%20App)/10%20Custom%20Node/calculator.js"
click node_notes_examples "https://github.com/sheiblu/nodejs-practice/tree/master/2%20udemy/03%20Node_js%20Fundamentals%20(Note%20App)"
click node_async_basics "https://github.com/sheiblu/nodejs-practice/tree/master/2%20udemy/04%20Asyn%20Programming"
click node_weather_cli "https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/04%20Asyn%20Programming/35%20calBack%20and%20weather%20together/app.js"
click node_geocoding "https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/04%20Asyn%20Programming/35%20calBack%20and%20weather%20together/geocode/geocode.js"
click node_weather_lookup "https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/04%20Asyn%20Programming/35%20calBack%20and%20weather%20together/weather/weather.js"
click node_express_examples "https://github.com/sheiblu/nodejs-practice/tree/master/1%20fast%20time/express"
click node_server_examples "https://github.com/sheiblu/nodejs-practice/tree/master/2%20udemy/05%20Web%20Servers%20and%20Application%20Deployment"
click node_todo_web "https://github.com/sheiblu/nodejs-practice/blob/master/mini%20project/app.js"
click node_todo_controller "https://github.com/sheiblu/nodejs-practice/blob/master/mini%20project/controllers/todoController.js"
click node_mongo_api "https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/07%20MongoDB_%20Mongoose_%20and%20REST%20APIs%20(Todo%20API)/85%20full%20Api%20(get%20%2C%20set%20%2C%20update%2C%20delete%20)%20_%20test-Case/server.js"
click node_mongo_model "https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/07%20MongoDB_%20Mongoose_%20and%20REST%20APIs%20(Todo%20API)/85%20full%20Api%20(get%20%2C%20set%20%2C%20update%2C%20delete%20)%20_%20test-Case/models/todo.js"
click node_mongo_connection "https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/07%20MongoDB_%20Mongoose_%20and%20REST%20APIs%20(Todo%20API)/85%20full%20Api%20(get%20%2C%20set%20%2C%20update%2C%20delete%20)%20_%20test-Case/db/mongoose.js"
click node_jwt_server "https://github.com/sheiblu/nodejs-practice/blob/master/jwt/index.js"
click node_customer_routes "https://github.com/sheiblu/nodejs-practice/blob/master/jwt/customer.js"
click node_jwt_config "https://github.com/sheiblu/nodejs-practice/blob/master/jwt/config.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_hello_app,node_hello_module,node_calculator_app,node_calculator,node_notes_examples toneBlue
class node_async_basics,node_weather_cli,node_geocoding,node_weather_lookup,node_mongo_service toneAmber
class node_express_examples,node_server_examples,node_todo_web,node_todo_controller toneMint
class node_mongo_api,node_mongo_model,node_mongo_connection,node_jwt_server,node_customer_routes,node_jwt_config toneRose
class node_learner toneIndigo
```

## Components

### Node Fundamentals

- [Module Demo](https://github.com/sheiblu/nodejs-practice/blob/master/1%20fast%20time/custom_modul/app.js): `1 fast time/custom_modul/app.js`
- [Greeting Module](https://github.com/sheiblu/nodejs-practice/blob/master/1%20fast%20time/custom_modul/hello3.js): `1 fast time/custom_modul/hello3.js`
- [Calculator Demo](https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/03%20Node_js%20Fundamentals%20(Note%20App)/10%20Custom%20Node/app.js): `2 udemy/03 Node_js Fundamentals (Note App)/10 Custom Node/app.js`
- [Calculator](https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/03%20Node_js%20Fundamentals%20(Note%20App)/10%20Custom%20Node/calculator.js): `2 udemy/03 Node_js Fundamentals (Note App)/10 Custom Node/calculator.js`
- [Notes CLI Examples](https://github.com/sheiblu/nodejs-practice/tree/master/2%20udemy/03%20Node_js%20Fundamentals%20(Note%20App)): `2 udemy/03 Node_js Fundamentals (Note App)`

### Async Examples

- [Async Exercises](https://github.com/sheiblu/nodejs-practice/tree/master/2%20udemy/04%20Asyn%20Programming): `2 udemy/04 Asyn Programming`
- [Weather CLI](https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/04%20Asyn%20Programming/35%20calBack%20and%20weather%20together/app.js): `2 udemy/04 Asyn Programming/35 calBack and weather together/app.js`
- [Geocoding](https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/04%20Asyn%20Programming/35%20calBack%20and%20weather%20together/geocode/geocode.js): `2 udemy/04 Asyn Programming/35 calBack and weather together/geocode/geocode.js`
- [Weather Lookup](https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/04%20Asyn%20Programming/35%20calBack%20and%20weather%20together/weather/weather.js): `2 udemy/04 Asyn Programming/35 calBack and weather together/weather/weather.js`

### Web Examples

- [Express Examples](https://github.com/sheiblu/nodejs-practice/tree/master/1%20fast%20time/express): `1 fast time/express`
- [Server Examples](https://github.com/sheiblu/nodejs-practice/tree/master/2%20udemy/05%20Web%20Servers%20and%20Application%20Deployment): `2 udemy/05 Web Servers and Application Deployment`
- [Rendered Todo App](https://github.com/sheiblu/nodejs-practice/blob/master/mini%20project/app.js): `mini project/app.js`
- [Todo Controller](https://github.com/sheiblu/nodejs-practice/blob/master/mini%20project/controllers/todoController.js): `mini project/controllers/todoController.js`

### Data And Auth

- [Todo REST API](https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/07%20MongoDB_%20Mongoose_%20and%20REST%20APIs%20(Todo%20API)/85%20full%20Api%20(get%20%2C%20set%20%2C%20update%2C%20delete%20)%20_%20test-Case/server.js): `2 udemy/07 MongoDB_ Mongoose_ and REST APIs (Todo API)/85 full Api (get , set , update, delete ) _ test-Case/server.js`
- [Todo Model](https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/07%20MongoDB_%20Mongoose_%20and%20REST%20APIs%20(Todo%20API)/85%20full%20Api%20(get%20%2C%20set%20%2C%20update%2C%20delete%20)%20_%20test-Case/models/todo.js): `2 udemy/07 MongoDB_ Mongoose_ and REST APIs (Todo API)/85 full Api (get , set , update, delete ) _ test-Case/models/todo.js`
- [Mongoose Connection](https://github.com/sheiblu/nodejs-practice/blob/master/2%20udemy/07%20MongoDB_%20Mongoose_%20and%20REST%20APIs%20(Todo%20API)/85%20full%20Api%20(get%20%2C%20set%20%2C%20update%2C%20delete%20)%20_%20test-Case/db/mongoose.js): `2 udemy/07 MongoDB_ Mongoose_ and REST APIs (Todo API)/85 full Api (get , set , update, delete ) _ test-Case/db/mongoose.js`
- [JWT Server](https://github.com/sheiblu/nodejs-practice/blob/master/jwt/index.js): `jwt/index.js`
- [Customer Routes](https://github.com/sheiblu/nodejs-practice/blob/master/jwt/customer.js): `jwt/customer.js`
- [JWT Config](https://github.com/sheiblu/nodejs-practice/blob/master/jwt/config.js): `jwt/config.js`

### Other components

- **Learner**
- **MongoDB**

## Connections

- Learner → Module Demo: runs
- Module Demo → Greeting Module: imports (evidence: `1 fast time/custom_modul/app.js`)
- Learner → Calculator Demo: runs
- Calculator Demo → Calculator: imports (evidence: `2 udemy/03 Node_js Fundamentals (Note App)/10 Custom Node/app.js`)
- Learner → Notes CLI Examples: practices
- Learner → Async Exercises: practices
- Learner → Weather CLI: runs
- Weather CLI → Geocoding: requests coordinates (evidence: `2 udemy/04 Asyn Programming/35 calBack and weather together/app.js`)
- Weather CLI → Weather Lookup: requests forecast (evidence: `2 udemy/04 Asyn Programming/35 calBack and weather together/app.js`)
- Learner → Express Examples: practices
- Learner → Server Examples: practices
- Learner → Rendered Todo App: runs
- Rendered Todo App → Todo Controller: registers routes (evidence: `mini project/app.js`)
- Todo Controller → MongoDB: reads and writes (evidence: `mini project/controllers/todoController.js`)
- Learner → Todo REST API: sends requests
- Todo REST API → Todo Model: uses model (evidence: `2 udemy/07 MongoDB_ Mongoose_ and REST APIs (Todo API)/85 full Api (get , set , update, delete ) _ test-Case/server.js`)
- Todo REST API → Mongoose Connection: imports connection (evidence: `2 udemy/07 MongoDB_ Mongoose_ and REST APIs (Todo API)/85 full Api (get , set , update, delete ) _ test-Case/server.js`)
- Learner → JWT Server: sends requests
- JWT Server → Customer Routes: mounts routes (evidence: `jwt/index.js`)
- JWT Server → JWT Config: loads config (evidence: `jwt/index.js`)
