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.3or above - For the 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-allsetup-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 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- 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.
| React | Angular | GraphQL | Typescript | HTML & CSS | Styling | NextJS | Python | NestJS |
|---|---|---|---|---|---|---|---|---|