{"id":21373340,"url":"https://github.com/duquejo/bootcamp-node-js","last_synced_at":"2026-05-17T13:32:47.929Z","repository":{"id":133693019,"uuid":"401868870","full_name":"duquejo/BootCamp-Node-JS","owner":"duquejo","description":"Code repository for the Node JS BootCamp (Udemy) memories.","archived":false,"fork":false,"pushed_at":"2021-10-02T03:48:04.000Z","size":6294,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T21:16:14.863Z","etag":null,"topics":["javascript","node","nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/duquejo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-08-31T23:21:48.000Z","updated_at":"2021-10-02T03:48:06.000Z","dependencies_parsed_at":"2024-02-07T16:59:27.766Z","dependency_job_id":"eccd2b50-a42b-4695-ac89-27f16e3ead46","html_url":"https://github.com/duquejo/BootCamp-Node-JS","commit_stats":null,"previous_names":["duquejo/bootcamp-node-js"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duquejo%2FBootCamp-Node-JS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duquejo%2FBootCamp-Node-JS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duquejo%2FBootCamp-Node-JS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duquejo%2FBootCamp-Node-JS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/duquejo","download_url":"https://codeload.github.com/duquejo/BootCamp-Node-JS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243847061,"owners_count":20357317,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","node","nodejs"],"created_at":"2024-11-22T08:27:30.070Z","updated_at":"2026-05-17T13:32:47.897Z","avatar_url":"https://github.com/duquejo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BootCamp Node JS (Ceiba - Globant)\n### Experience memories\n\n[![made-with-javascript](https://img.shields.io/badge/Made%20with-JavaScript-1f425f.svg)](https://www.javascript.com)\n[![made-with-nodejs](https://img.shields.io/badge/Made_with-Node_JS-green.svg)](https://nodejs.org/es/)\n\n## Projects\n\n- *Notes App*: Node JS Tasks App with JSON datasets.\n  - Chalk (2.4.1)\n  - Yargs (12.0.2)\n\n- *Weather App*: Node JS Weather App application using live endpoints and a REST API Structure.\n  - [Geolocation|Geocoding API](https://www.mapbox.com/): Geocoding Address API\n  - [Weather Forecast](https://weatherstack.com/): Forecast by location API.\n  - Express (4.16.4): Server management module\n  - Handlebars (4.0.1): Server HTML Templatting module\n  - Postman Request (2.88.1-postman.30): HTTP Requests API management module.\n  - [Weather App Git](https://github.com/duquejo01/Weather-App-Node): GIT Source.\n  - [Weather App Demo](https://duque-weather-application.herokuapp.com/): Live Weather App Public Demo.\n\n- *Task Manager App*: Node JS Task Manager App using live endpoints, REST API Structure and a MongoDB Database Model.\n  - *Dependencies*\n    - Express (4.17.1): Server management module.\n    - MongoDB (4.1.2): Generate MongoDB Support, connections, and more.\n    - Mongoose (6.0.5): Manages database model sanitization and validation, also makes the MongoDB database general operations.\n    - Validator (13.6.0): Allows backend to manage complex validations.\n    - JsonWebToken (8.5.1): Manages user sessions (Login).\n    - Bcryptjs (2.4.3): Encrypt passwords securely.\n    - Multer (1.4.3): Manages file uploading.\n    - Mailgun-JS (0.22.0): Email Messaging Service.\n    - Sharp (0.29.1): Image manipulation and optimization library.\n  - *Dev Dependencies*\n    - Env-cmd: (10.1.0): Enviroment variables management.\n    - Jest: (27.2.2): Node JS Testing suite with mocking support.\n    - Nodemon (2.0.12): Listens any JS (or whatever) file changes.\n    - Supertest: (6.1.6): Improves Jest with asyncronous tasks and HTTP Request testing support.\n  - [Task Manager App Git](https://github.com/duquejo01/Task-Manager): GIT Source.\n  - [Task Manager App Demo](https://duque-task-manager.herokuapp.com/): Live Task Manager App Public Demo.\n\n- *Chat App*: Node JS Built Chat App.\n  - *Dependencies*\n    - Express (4.17.1): Server management module.\n    - bad-words (3.0.4): Bad string words filter\n    - Socket.io (4.2.0): Socket i/o event emitting and listening module.\n  - *Dev Dependencies*\n    - Nodemon (2.0.13): Persistent dev server demon.\n  - [Chat App Git](https://github.com/duquejo01/Chat-App): GIT Source.\n  - [Chat App Demo](https://duque-chat-app.herokuapp.com/): Live Chat App Public Demo.\n\n\n## Tech\n\nI used a number of open source projects to work properly:\n\n- [node.js] - evented I/O for the backend\n\n## Package.json recommended setup\n\nUse the following structure to start a heroku application well and setup local nodemon dependencies easily\n```json\n  ...,\n  \"scripts\": {\n    \"start\": \"node src/app.js\",\n    \"dev\": \"nodemon src/app.js -e js,hbs\"\n  },\n  ...\n```\n## MongoDB Tips\n\n- noSQL Database\n- Uses the default 27017 system port.\n- Its recommended the use of https://www.npmjs.com/package/mongodb Node JS driver\n- Windows Command to kill MongoDB process (Service) - Run CMD as administrator\n  ```sh\n  net stop mongodb\n  ```\n\n\n## Heroku setup\n\nWhen we're deploying to production we need to login into heroku and\ncreate SSH Keys\n\n```sh\nssh-keygen -t rsa -b 4096 -C \"something\"\n```\n\n```sh\nid_rsa is private\nis_rsa is public -\u003e It'll be our integrator between Git and heroku\n```\n\n```sh\neval \"$(ssh-agent -s)\" -\u003e Gets process for ssh-agent\nssh-add -K ~/.ssh/id_rsa -\u003e Adds identity to ssh (MAC)\nssh-add ~/.ssh/id_rsa -\u003e Adds identity to ssh (Windows)\n```\n\n```sh\nGet SSH Key code for apply it in Git Settings\ncat ~/.ssh/id_rsa.pub \n```\n\nAuthorizing github\n```sh\nssh -T git@github.com\n```\n\nAssign keys to heroku\n```sh\nheroku keys:add\n```\n\nCreate heroku project\n```sh\nheroku create '--name--'\n```\n\nSetup heroku enviroment getting server port and assign heroku remote git\n```sh\nheroku git:remote -a git-name\n``` \n\nPush repository to Heroku\n```sh\ngit push heroku main\n```\n\n## Git remote tip vs local untracked files\n\nFor upload to Git an untracked files to a new Git Repository first execute git in local:\n```sh\ngit init\n```\n\nAdd the remote URL\n```sh\ngit remote add origin URL\n```\n\nCheck if the URL is saved successfully\n```sh\ngit remote\ngit remote -v\n```\n\nFetch \u0026 Merge the remote changes over local instance files\n```sh\ngit pull origin master --allow-unrelated-histories\n```\n\nAdd files to Stage, Commit them and push it to Git\n```sh\ngit push origin master\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduquejo%2Fbootcamp-node-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fduquejo%2Fbootcamp-node-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduquejo%2Fbootcamp-node-js/lists"}