https://github.com/me-moghadasian/nodejs-learners-package
This package offers a concise introduction to Node.js using Jupyter Lab, focusing only on the essential concepts and skills. It covers the fundamental topics necessary for understanding and practicing (or reviewing) Node.js.
https://github.com/me-moghadasian/nodejs-learners-package
authentication authorization axios backend express javascript jupyter mongodb mongoose nodejs restful
Last synced: 5 months ago
JSON representation
This package offers a concise introduction to Node.js using Jupyter Lab, focusing only on the essential concepts and skills. It covers the fundamental topics necessary for understanding and practicing (or reviewing) Node.js.
- Host: GitHub
- URL: https://github.com/me-moghadasian/nodejs-learners-package
- Owner: me-moghadasian
- License: mit
- Created: 2024-08-22T10:27:34.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-08-21T17:14:11.000Z (10 months ago)
- Last Synced: 2025-08-21T19:57:42.223Z (10 months ago)
- Topics: authentication, authorization, axios, backend, express, javascript, jupyter, mongodb, mongoose, nodejs, restful
- Language: Jupyter Notebook
- Homepage:
- Size: 14.7 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Node.js Learners Package
## Description
This package offers a concise introduction to Node.js (using JupyterLab), focusing only on the essential concepts and skills. It covers the fundamental topics necessary for understanding and practicing (or reviewing) Node.js, including:
- [Introduction](01-intro.ipynb)
- [JSON Handling](02-objects.ipynb)
- [Working with Arrays](03-arrays.ipynb)
- [Working with Maps](04-maps.ipynb)
- [Working with Sets](05-sets.ipynb)
- [Function and Lambda](06-functions.ipynb)
- [Files Operations](07-files.ipynb)
- [Async-await, Promise and Event](08-asyncs.ipynb)
- [Simple HTTP server](09-http-server.ipynb) + [helper client](09-http-client.ipynb)
- [MongoDB](10-mongodb.ipynb)
- [Mongoose](11-mongoose.ipynb)
- [RESTful API using Express](12-express-server.ipynb) + [helper client](12-express-client.ipynb)
## Who should use this?
This project is designed for **intermediate-level** developers who are looking to deepen their understanding of *core concepts* in [Node.js](https://nodejs.org/) and [JS](https://javascript.com/). It is particularly beneficial for those who want to expand their knowledge, **review general principles**, or gain a broader perspective on [Node.js](https://nodejs.org/) and [JS](https://javascript.com/). If you are an **expert** in this field, you might find the material **NOT** directly applicable to advanced scenarios. However, if you are eager to refresh your foundational skills or explore different approaches, this resource may still offer valuable insights.
## Active Development
Please note that this package is still *being modified and updated*. We are continuously working to improve and expand the content based on feedback and new developments in [Node.js](https://nodejs.org/). New features, topics, and enhancements will be added over time. To ensure you have the *latest dependencies and updates*, you might need to run `npm install` periodically.
## Features
- **Variables and Functions**: Learn how to create and use *variables*, *functions* and *lambdas*.
- **Loops and Branching**: Understand different looping constructs and conditional statements.
- **JSON**: Work with *JSON* data, including parsing and stringifying *JSON*.
- **Collections**: Explore *arrays*, *maps*, and *sets*, and how to manipulate them.
- **File Handling**: Read from and write to files.
- **Async-await, Promise and Events**: Learn how to do *asynchronous* operations with *async-await*, *promise* and *events*.
- **Fetch and Axios**: Learn how to use *fetch* and *axios* to send request.
- **HTTP Connections**: Create basic HTTP servers and handle requests and responses.
- **MongoDB and Mongoose**: Connect to a [MongoDB](https://www.mongodb.com) database and perform CRUD operations using [Mongoose](https://www.mongoosejs.com).
- **Express**: Build simple *RESTfull* API with *authentioncation-authorization*, *files upload-download*,... using the [Express framework](https://www.expressjs.com).
- **And More...**
## Installation
To get started with this package, follow these steps:
1. **Install Python** (if not already installed):
- Refer to [Python](https://www.python.org/downloads/) to download and install python.
2. **Install JupyterLab** (if not already installed):
- If you don't have JupyterLab installed, you'll need Python and JupyterLab. You can install JupyterLab using:
```bash
pip install jupyterlab
```
3. **Install Node.js**:
- Ensure you have [Node.js](https://nodejs.org/) installed. This is required for running Node.js apps in this package.
4. **Install the Node.js Jupyter Kernel**:
- You need the [IJavascript kernel](https://github.com/n-riesco/ijavascript) for Jupyter to run JavaScript code. You can install it using the following commands:
```bash
npm install -g ijavascript
ijsinstall
```
5. **Clone the Repository**:
```bash
git clone https://github.com/me-moghadasian/nodejs-learners-package.git
```
6. **Navigate into the Project Directory**:
```bash
cd nodejs-learners-package
```
7. **Install Project Dependencies**:
- Install MongoDB too when you want to try MongoDB related sections.
```bash
npm install
```
8. **Start JupyterLab**:
```bash
jupyter lab
```
9. **Open and Explore the Notebooks and Scripts**:
- Use JupyterLab to open and explore the notebooks and scripts provided in the package.
## Note
This package is still under development. New features and improvements will be added over time. you might need to run `npm install` periodically.
## Useful References
- [Node.js Tutorialpoint](https://www.tutorialspoint.com/nodejs/index.htm)
- [Node.js W3Schools](https://www.w3schools.com/nodejs/)
- [Developing Back-End Apps with Node.js and Express](https://www.coursera.org/learn/developing-backend-apps-with-nodejs-and-express)
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Author
Mehdi Moghadasian