{"id":24502681,"url":"https://github.com/th92rodr/notebook","last_synced_at":"2026-04-12T09:03:23.331Z","repository":{"id":38390547,"uuid":"209686905","full_name":"th92rodr/notebook","owner":"th92rodr","description":"Web application to take your notes.","archived":false,"fork":false,"pushed_at":"2023-03-03T00:44:15.000Z","size":6969,"stargazers_count":0,"open_issues_count":15,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-21T23:13:12.654Z","etag":null,"topics":["docker","express","mongodb","nodejs","rest-api"],"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/th92rodr.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":"2019-09-20T02:19:37.000Z","updated_at":"2021-11-06T18:03:59.000Z","dependencies_parsed_at":"2024-11-21T05:12:12.454Z","dependency_job_id":"d1ca0223-e6da-4ffe-971b-3753c22052c4","html_url":"https://github.com/th92rodr/notebook","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/th92rodr%2Fnotebook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/th92rodr%2Fnotebook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/th92rodr%2Fnotebook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/th92rodr%2Fnotebook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/th92rodr","download_url":"https://codeload.github.com/th92rodr/notebook/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243701466,"owners_count":20333631,"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":["docker","express","mongodb","nodejs","rest-api"],"created_at":"2025-01-21T23:13:19.378Z","updated_at":"2026-04-12T09:03:23.297Z","avatar_url":"https://github.com/th92rodr.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Notebook 📝\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"GitHub language count\" src=\"https://img.shields.io/github/languages/count/th92rodr/notebook?color=%237519C1\"\u003e\n  \u003cimg alt=\"Repository size\" src=\"https://img.shields.io/github/repo-size/th92rodr/notebook\"\u003e\n  \u003cimg alt=\"Made by ThiagoRodrigues\" src=\"https://img.shields.io/badge/made%20by-ThiagoRodrigues-%237519C1\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.docker.com/\"\u003e\u003cimg alt=\"\" src=\"https://img.shields.io/badge/Docker-container-2496ED.svg?logo=docker\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.postman.com/\"\u003e\u003cimg alt=\"\" src=\"https://img.shields.io/badge/Postman-API-FF6C37.svg?logo=Postman\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## Stack\n\n- API Server: \u003ca href=\"https://nodejs.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Node.js-green.svg?logo=node.js\" alt=\"Node.js\"\u003e\u003c/a\u003e / \u003ca href=\"https://expressjs.com/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Express-green.svg?logo=node.js\" alt=\"Express\"\u003e\u003c/a\u003e\n- SPA App (Web Frontend): \u003ca href=\"https://reactjs.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/React.js-blue.svg?logo=react\" alt=\"React.js\"\u003e\u003c/a\u003e\n- API Architeture: `REST`\n- Database: \u003ca href=\"https://www.mongodb.com/\"\u003e\u003cimg src=\"https://img.shields.io/badge/MongoDB-47A248.svg?logo=mongodb\" alt=\"MongoDB\"\u003e\u003c/a\u003e\n\n## How To Run\n\n### API Server\n\n- Go to `server` directory:\n\n```\ncd server\n```\n\n- Run `docker-compose`:\n\n```sh\ndocker-compose up\n```\n\n### SPA App (Web Frontend)\n\n- Go to `web` directory:\n\n```\ncd web\n```\n\n- Install project dependencies:\n\n```\nnpm i\n```\n\n- Start app:\n\nThe app will be running on port `3000`.\n\n```\nnpm start\n```\n\n## Dependencies\n\n### API Server\n\n- **`express`**\u003c/br\u003e\n  Fast, unopinionated, minimalist web framework for node.\u003c/br\u003e\n  https://www.npmjs.com/package/express\n\n- **`mongoose`**\u003c/br\u003e\n  ODM for MongoDB. It's a MongoDB object modeling tool designed to work in an asynchronous environment. Provides a straight-forward, schema-based solution to model your application data. It includes built-in type casting, validation, query building, business logic hooks and more.\u003c/br\u003e\n  https://www.npmjs.com/package/mongoose\n\n- **`body-parser`**\u003c/br\u003e\n  Parse incoming request bodies in a middleware before the app's handlers. Able to parser requests in JSON format.\u003c/br\u003e\n  https://www.npmjs.com/package/body-parser\n\n- **`jsonwebtoken`**\u003c/br\u003e\n  An implementation of JSON Web Tokens.\u003c/br\u003e\n  https://www.npmjs.com/package/jsonwebtoken\n\n- **`bcrypt`**\u003c/br\u003e\n  A library to help you hash passwords.\u003c/br\u003e\n  https://www.npmjs.com/package/bcrypt\n\n- **`dotenv`**\u003c/br\u003e\n  Dotenv is a zero-dependency module that loads environment variables from a .env file into process.env. Storing configuration in the environment separate from code is based on The Twelve-Factor App methodology.\u003c/br\u003e\n  https://www.npmjs.com/package/dotenv\n\n- **`express-validator`**\u003c/br\u003e\n  An express.js middleware for validator.\u003c/br\u003e\n  https://www.npmjs.com/package/express-validator\n\n- **`helmet`**\u003c/br\u003e\n  Helmet helps you secure your Express apps by setting various HTTP headers.\u003c/br\u003e\n  https://www.npmjs.com/package/helmet\n\n- **`morgan`**\u003c/br\u003e\n  HTTP request logger middleware for node.js.\u003c/br\u003e\n  https://www.npmjs.com/package/morgan\n\n- **`redis`**\u003c/br\u003e\n  A high performance Node.js Redis client.\u003c/br\u003e\n  https://www.npmjs.com/package/redis\n\n### Web Frontend\n\n- **`react`**\u003c/br\u003e\n  React is a JavaScript library for creating user interfaces.\u003c/br\u003e\n  https://www.npmjs.com/package/react\n\n- **`react-dom`**\u003c/br\u003e\n  This package serves as the entry point to the DOM and server renderers for React. It is intended to be paired with the generic React package, which is shipped as react to npm.\u003c/br\u003e\n  https://www.npmjs.com/package/react-dom\n\n- **`react-router-dom`**\u003c/br\u003e\n  DOM bindings for React Router.\u003c/br\u003e\n  https://www.npmjs.com/package/react-router-dom\n\n- **`styled-components`**\u003c/br\u003e\n  Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress.\u003c/br\u003e\n  https://www.npmjs.com/package/styled-components\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fth92rodr%2Fnotebook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fth92rodr%2Fnotebook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fth92rodr%2Fnotebook/lists"}