Node Practice
April 3, 2026 · View on GitHub
Repository created to record my practice learning NodeJs with exercises based on the Udemy Course of Andrew Mead.
Table of contents
- Status
- Requirements
- Setup
- How to run it
- Repo structure & what i learned in each exercise
- Other practice repos
Status
- Current repo's version is
- This course has been completed on 22/03/2020 - Certificate
Why does it not have any updated dependencies?
After finishing its related Udemy course, I archive this repository and unarchive it when I start a new training and add a link in the Other practice repos section referring to its new repo. But I don't update any associated dependency due to technology changes during the years between each practice, and the produced code which works with the mentioned requirements.
Requirements
- Node
v10.16.3or above - For the fourth exercise only
Setup
After cloning the repo, go to the created folder and install the node packages.
git clone https://github.com/NicolasOmar/node-practice.git
cd node-practice
npm run setup-all
setup-all is the command to install all the projects, but if you want to do it one by one, you can change that last line for one of the following:
| App Setup | Command |
|---|---|
| All | npm run setup-all |
| Notes | npm run setup-notes |
| Weather console | npm run setup-weather-console |
| Weather web | npm run setup-weather-web |
| Task manager | npm run setup-task-manager |
| Chat | npm run setup-chat |
How to run it
To use any app, you just have to enter its folder and run any of the scripts listed in its 'package.json' file. Each command runs with the following structure:
npm run <command-name>
In case you want to run all available commands on a row, execute the following command:
npm start
Repo structure & what I learned in each exercise
- Notes app (
1-notesfolder) - Weather console app (
2-weather-consolefolder) - Weather web app (
3-weather-appfolder)- Create a local server with express.
- Automate server updates with nodemon.
- Load dynamic & partial views with hbs and inject them data.
- Build a JSON HTTP endpoint (using files, packages, and knowledge from exercise #2).
- How to fetch data from the internal url (based on the previous point) in a JavaScript file.
- Use user interaction (by a search form) to make API requests based on user data input and return a result.
- Task manager app (
4-task-managerfolder)- How to create a Mongo database and connect it in Node with mongodb.
- How to handle CRUD operations (Create, Read, Update & Delete) in a Mongo database.
- Improve Mongo CRUD operations using an Object-document mapper with mongoose.
- Improve Mongoose model validations with validator.
- Create a REST API structure.
- Use promise chaining to avoid callback nesting.
- How to use
Async/Awaitfunctions. - Use Mongoose middleware at the Model and endpoint level.
- Use password encryption with bcryptjs.
- JWT (JSON Web Token) integration with jsonwebtoken.
- How to test API endpoints with Postman (learning about Requests, Collections and Environments).
- Create document relationships based on documents´ ids, getting them by
Model.populateand virtual fields. - Use
timestampsto record create and update dates. - Add filtering, pagination, and sorting in a
GETendpoint. - Upload files using Multer.
- Handle images in an endpoint and save them in a Mongo database.
- Use and implement environment variables with env-cmd.
- Unit testing with Jest.
- API requests Unit testing with supertest.
- Chat app (
5-chatfolder)- Create a project using the WebSocket protocol with Socket.io.
- Emit and send events with data (from client to server and vice versa).
- How to use Gelocation API and send location on a Google Maps link.
- Event acknowledgments.
- Render messages with Mustache.
- Associate users in different channels/rooms and handle messages for specific channels.
Other practice repos
| React | Angular | GraphQL | Typescript | HTML & CSS | Styling | NextJS | Python | NestJS |
|---|---|---|---|---|---|---|---|---|