{"id":16213838,"url":"https://github.com/solygambas/node-task-manager-rest-api","last_synced_at":"2026-02-09T13:04:40.749Z","repository":{"id":38966049,"uuid":"260633803","full_name":"solygambas/node-task-manager-rest-api","owner":"solygambas","description":"A task manager REST API using MongoDB, Mongoose and Express (plus 3 other Node.js projects).","archived":false,"fork":false,"pushed_at":"2023-03-04T18:54:34.000Z","size":1636,"stargazers_count":0,"open_issues_count":45,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-10T06:22:52.220Z","etag":null,"topics":["express","expressjs","hbs","javascript","jest","mongodb","mongoose","mustache","node","nodejs","socket-io"],"latest_commit_sha":null,"homepage":"https://node-api-restful.onrender.com/","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/solygambas.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,"publiccode":null,"codemeta":null}},"created_at":"2020-05-02T07:11:15.000Z","updated_at":"2022-09-09T06:24:10.000Z","dependencies_parsed_at":"2024-10-27T20:40:39.093Z","dependency_job_id":null,"html_url":"https://github.com/solygambas/node-task-manager-rest-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/solygambas/node-task-manager-rest-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solygambas%2Fnode-task-manager-rest-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solygambas%2Fnode-task-manager-rest-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solygambas%2Fnode-task-manager-rest-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solygambas%2Fnode-task-manager-rest-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solygambas","download_url":"https://codeload.github.com/solygambas/node-task-manager-rest-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solygambas%2Fnode-task-manager-rest-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29266133,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T12:53:16.161Z","status":"ssl_error","status_checked_at":"2026-02-09T12:52:30.244Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["express","expressjs","hbs","javascript","jest","mongodb","mongoose","mustache","node","nodejs","socket-io"],"created_at":"2024-10-10T11:08:45.116Z","updated_at":"2026-02-09T13:04:40.729Z","avatar_url":"https://github.com/solygambas.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task App and Node.js projects\n\nA task manager REST API using MongoDB, Mongoose and Express (plus 3 other Node.js projects).\n\n| #   | Project                         | Description                                                                 |\n| --- | ------------------------------- | --------------------------------------------------------------------------- |\n| 01  | [**Notes App**](#notes-app)     | A simple CLI note-taking application to understand Node.js basics.          |\n| 02  | [**Weather App**](#weather-app) | A weather app using Express, Handlebars templates, fetch API and callbacks. |\n| 03  | [**Task App**](#task-app)       | A task manager REST API using Express, MongoDB and Mongoose.                |\n| 04  | [**Chat App**](#chat-app)       | A simple chat room app to work with WebSocket protocol.                     |\n\n## \u003ca name=\"notes-app\"\u003e\u003c/a\u003e1) Notes App\n\nA simple CLI note-taking application to understand Node.js basics.\n\n[See notes-app folder](notes-app)\n\n### Features\n\n- handling Command Line Args (add, remove, list, read) and options (--title, --body) with Yargs.\n- writing JSON files with JSON.stringify() and fs.writeFileSync().\n- reading JSON files with fs.readFileSync(), toString() and JSON.parse().\n- printing success/error messages in color with Chalk.\n- sanitizing data with validator.\n- watching for changes in development mode with nodemon.\n- debugging Node.js with debugger, node inspect and Chrome inspector.\n\n## \u003ca name=\"weather-app\"\u003e\u003c/a\u003e2) Weather App\n\nA weather app using Express, Handlebars templates, fetch API and callbacks.\n\n[See weather-app folder for the first part](weather-app)\n\n[See web-server folder for the final project](web-server)\n\n[See Demo deployed on Render](https://node-weather-fetch.onrender.com/)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://node-weather-fetch.onrender.com/\"\u003e\n    \u003cimg src=\"web-server/screenshot.png\" alt=\"See Demo deployed on Render\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n### Features\n\n- making http requests in Node.js with request.\n- protecting Weatherstack and Mapbox API keys with dotenv.\n- using JSON Formatter in Chrome to work with JSON data.\n- handling errors.\n- using callbacks and callback chaining to make asynchronous requests.\n- serving up HTML, JSON and static assets with Express.\n- creating dynamic pages with Handlebars and hbs.\n- styling the app with flexbox.\n- accessing JSON HTTP endpoint from browser with fetch API.\n- handling search by location for current weather.\n- deploying on Render.\n\n## \u003ca name=\"task-app\"\u003e\u003c/a\u003e3) Task App\n\nA task manager REST API using Express, MongoDB and Mongoose.\n\n[See task-manager folder](task-manager)\n\n[See REST API deployed on Render](https://node-api-restful.onrender.com/)\n\n### Features\n\n- performing CRUD operations (create, read, update, delete) using MongoDB.\n- using promises and async/await method.\n- modeling data with Mongoose.\n- validating user data with validator.\n- enabling REST API routes (post, get, patch, delete) with Express.\n- adding registered users to MongoDB and hashing passwords with bcryptjs.\n- storing the user/task relationship.\n- granting access to the API with JSON Web Tokens.\n- testing routes with Postman environment variables.\n- adding timestamps to sort data, filtering completed/uncompleted tasks and enabling pagination.\n- managing file uploads for user avatar with multer and sharp.\n- sending subscribe/unsubscribe emails with Sendgrid.\n- writing tests with Jest and supertest using mocks and fixtures.\n- deploying on Render and MongoDB Atlas.\n\n## \u003ca name=\"chat-app\"\u003e\u003c/a\u003e4) Chat App\n\nA simple chat room app to work with WebSocket protocol.\n\n[See chat-app folder](chat-app)\n\n[See Demo deployed on Render](https://node-chat-rooms-app.onrender.com/)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://node-chat-rooms-app.onrender.com/\"\u003e\n    \u003cimg src=\"chat-app/screenshot.png\" alt=\"See Demo deployed on Render\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n### Features\n\n- handling realtime communication between web clients and server with Socket.IO.\n- sending messages with emit() and waiting for messages with on().\n- managing chat rooms with socket.join and io.to.emit().\n- sharing location with Geolocation API and Google Maps.\n- avoiding inappropriate messages with bad-words.\n- creating templates in Express server with Mustache.\n- managing timestamps with Moment.js.\n\nBased on [The Complete Node.js Developer Course](https://www.udemy.com/course/the-complete-nodejs-developer-course-2/) by Andrew Mead (3rd edition, 2019)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolygambas%2Fnode-task-manager-rest-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolygambas%2Fnode-task-manager-rest-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolygambas%2Fnode-task-manager-rest-api/lists"}