Repository created to record my practice learning NodeJs with exercises based on the Udemy Course of Andrew Mead.
- Status
- Requirements
- Setup
- How to run it
- Repo structure & what i learned in each exercise
- Other practice repos
- Current repo's version is
- This course has been completed on 22/03/2020 - Certificate
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
.
- Node
v10.16.3
or above - For fourth exercise only
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 |
To use any app, you just have to enter into its folder and run any of the scripts listed on 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
- Notes app (
1-notes
folder) - Weather console app (
2-weather-console
folder) - Weather web app (
3-weather-app
folder)- 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 previous point) on 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-manager
folder)- 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 a 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/Await
functions - Use Mongoose middleware at 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 documents relationships based on document´s ids, getting them by
Model.populate
and virtual fields - Use
timestamps
to record create and update dates - Add filtering, pagination and sorting in a
GET
endpoint - 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-chat
folder)- Create a project using WebSocket protocol with Socket.io
- Emit and send events with data (from client to server and visceversa)
- 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
React | Angular | GraphQL | Typescript | HTML & CSS | Styling | Docker | Next.js |
---|---|---|---|---|---|---|---|