{"id":19863766,"url":"https://github.com/danyst/nodepop","last_synced_at":"2026-04-14T05:31:15.064Z","repository":{"id":136411438,"uuid":"140228784","full_name":"DanyST/nodepop","owner":"DanyST","description":"Keepcoding Bootcamp Node Exam","archived":false,"fork":false,"pushed_at":"2018-07-30T03:48:26.000Z","size":75,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-01T00:25:58.010Z","etag":null,"topics":["api-rest","expressjs","javascript","mongodb","mongoose","node","nodejs"],"latest_commit_sha":null,"homepage":null,"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/DanyST.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":"2018-07-09T03:52:46.000Z","updated_at":"2018-12-01T10:16:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"ce7cea2a-cc32-410a-b923-278d45475011","html_url":"https://github.com/DanyST/nodepop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DanyST/nodepop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanyST%2Fnodepop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanyST%2Fnodepop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanyST%2Fnodepop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanyST%2Fnodepop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DanyST","download_url":"https://codeload.github.com/DanyST/nodepop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanyST%2Fnodepop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31784251,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"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":["api-rest","expressjs","javascript","mongodb","mongoose","node","nodejs"],"created_at":"2024-11-12T15:16:01.201Z","updated_at":"2026-04-14T05:31:15.046Z","avatar_url":"https://github.com/DanyST.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nodepop API\n\n## Demo\n### Devops module bootcamp\n``` https://api.lherreral.me ```\n\nStatic file: ``` https://api.lherreral.me/images/nintendo.jpg ```\n\nIP Server for the Bootcamp practice``` 34.194.179.177 ```\n\n## features\n* User Register (email, password, name)\n* User Authentication\n* Advertisements list\n\t* Filters \n\t\t* Advertisement tags (sell and search)\n\t\t* Price range (min and max)\n\t* Name Search\n* Advertisements tags list\n\n## Requisites\n * nodejs \u003e= 8.11.3\n * mongodb \u003e= 4.0.0\n\n## Installation\n\n### MongoDB\nInstall [MongoDB](https://www.mongodb.com) and follow install instructions in the web page. Then Start services mongoDB\n\n### In the root project exec the following commands:\n\nInstall dependencies with:\n\n```shell\nnpm install\n```\n\nAt the beginning, you can load some advertisements and 2 test users, you can do this using **install_db.js** script with:\n\n```shell\nnpm run installDB\n```\nCredetials for tests\n\n```\nuser: smith@matrix.com\npassword: 1234\n\nuser: brown@matrix.com\npassword: 1234\n```\n\n### Enviroment variables\nIn the project there are 3 Enviroment Variables:\n\n*MONGODB_URI*: URI connection to mongoDB, if no exist this variable, the default value is ``` mongodb://localhost:27017/nodepop ```\n\n*JWT_SECRET_KEY*: if no exists this variable, the default value is ```$2b$10$gsHv1d/F17zS0mpTd/v.tuBfVFW6/0QJkbWPTKAz5enplP9nTNTQS```\n\n*JWT_EXPIRE_IN*: expiration time for JWT, if no exist this variable, the default value is ``` 1d ```\n\nMore information about ```JWT_EXPIRE_IN```: expressed in seconds or a string describing a time span zeit/ms. Eg: 60, \"2 days\", \"10h\", \"7d\". A numeric value is interpreted as a seconds count. If you use a string be sure you provide the time units (days, hours, etc), otherwise milliseconds unit is used by default (\"120\" is equal to \"120ms\").\n\n## Getting Started\nstart the server\n\n```\nnpm start\n```\n\n**you are ready to use the api**!\n\nYou first should do authentication \n\n# API Documentation Usage\n \n## User Registration\n* Entry point: api/v1/users/register\n* Http Method: POST\n* Params:\n\t* name: first name user (String)\t\n\t* email: user email (string)\n\t* password: user password (string)\n* Result: response in JSON format with 2 properties: **success** and **message**\n\n## User authentication\n* Entry point: api/v1/users/login\n* Http Method: POST\n* Params:\n\t* email: user email (String)\n\t* password: user password (String)\n* Result: response in JSON format with one property: **token**\n\n\n## Advertisements List\n* Entry point: api/v1/advertisements\n* Http Method: GET\n* Params:\n\t* token: Authentication token (String)\n\t* fields: filter for advertisements attributes that you want to get with spaces , example: filter name and quit id ```?fields=name -id```\n    * limit: advertisements number what you want to get \n    * skip: advertisements number what you want to escape\n    * name: filter for search advertisements with a name\n    * tags: filter for search advertisements with tags with comma or space, example: ```?tags=work, mobile ```\n    * price: filter for search advertisements with a price range\n        * minimum price: ad d dash before the price. Example ```?price=-50```\n        * maximum price: add dash after the price. Example ```?price=50-```\n        * range price: add dash between two price. Example ```?price=10-80```\n        * equal price: only add a price. Example ```?price=50```\n    * sell: filter for search advertisements in **sell** or **buy** status. Example: ```?sell=true```\n* results: response in JSON format with two properties, **success** and **results** with advertisements data.\n\n## Advertisements Tag List\n* Entry point: api/v1/advertisements/tags\n* Http Method: GET\n* Params: params not require\n* result: response in JSON format with two properties, **success** and **results** with tags data.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanyst%2Fnodepop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanyst%2Fnodepop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanyst%2Fnodepop/lists"}