{"id":18654335,"url":"https://github.com/sepisoad/sample-express-rest-api","last_synced_at":"2025-11-05T16:30:36.720Z","repository":{"id":41796702,"uuid":"177476769","full_name":"sepisoad/sample-express-rest-api","owner":"sepisoad","description":"this is a sample express (node.js) based rest api.","archived":false,"fork":false,"pushed_at":"2023-01-03T18:27:05.000Z","size":2414,"stargazers_count":0,"open_issues_count":13,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-27T14:12:47.275Z","etag":null,"topics":[],"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/sepisoad.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}},"created_at":"2019-03-24T22:26:10.000Z","updated_at":"2019-04-03T17:26:29.000Z","dependencies_parsed_at":"2023-02-01T08:46:58.891Z","dependency_job_id":null,"html_url":"https://github.com/sepisoad/sample-express-rest-api","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/sepisoad%2Fsample-express-rest-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepisoad%2Fsample-express-rest-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepisoad%2Fsample-express-rest-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepisoad%2Fsample-express-rest-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sepisoad","download_url":"https://codeload.github.com/sepisoad/sample-express-rest-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239467426,"owners_count":19643604,"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":[],"created_at":"2024-11-07T07:14:41.223Z","updated_at":"2025-11-05T16:30:36.679Z","avatar_url":"https://github.com/sepisoad.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project Structure\n\nall source files reside in `src` folder\n\nall tests files reside in `tests` folder\n\nall document files reside in `doc` folder\n  - for rest api documentations open `docs/api/index.html` file\n  - for source code documentations open `docs/jsdoc/index.html` file\n\n# Diagram\n\na sample user request data flow diagram\n\n![](doc/diagrams/01.svg)\n\n# Prerequisite \nyou need to install these tools globally in order to be able to run some tasks and scripts:\n\n`npm install -g yarn`\n\n`npm install -g mocha`\n\n`npm install -g eslint`\n\n`npm -g install jsdoc`\n\n`npm install -g nodemon` (optional, for debugging)\n\n# Dependencies\n\n`express`: server code \n\n`winston`: logging\n\n`dotenv`: node environment variable handling\n\n`babel`: converting ES6 code to standard JS\n\n`chai`: test assertion\n\n`mocha`: test framework\n\n`istanbul`: code coverage\n\n# How to install\nclone this repository:\n\n`git clone https://github.com/sepisoad/sample-express-rest-api.git`\n\ncd into repository:\n\n`cd sample-express-rest-api.git`\n\nrun yarn command:\n\n`yarn`\n\n# Considerations\n\n`ESLint` is used to catch common programming mistake and also potential security issues in the code through `ESLint Plugins`. `express-rate-limit` is also used to limit requests which can help prevent DOS/DDOS attacks to some extent.\n\nIf you would like to tweak `ESLint` you can modify `.eslintrc.json` file content.\nAlso if you want to ignore some files or directories from Lint process you can add their names to `.eslintignore` file\n\n# Usage:\n\nin order to run server in production mode run:\n\n`yarn start`\n\nin order to run server in debug mode run:\n\n`yarn debug`\n\nin order to apply linter and check the result run:\n\n`yarn lint`\n\nin order to run test cases run:\n\n`yarn test`\n\nand last but no least, to test code coverage run:\n\n`yarn coverage`\n\nto generate documentation from source code run:\n\n`yarn jsdoc`\n\nto generate api documentation from spec file which is in `doc/api/api.yaml` run:\n\n`yarn apidoc`\n\n\n# API Documentation\n\nin order to see REST API documentation you can go to `doc` folder and either open `doc.html` which is a pre-compiled and self contained html documentation or use `redoc-cli` tool and run `api.yml` specification file.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsepisoad%2Fsample-express-rest-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsepisoad%2Fsample-express-rest-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsepisoad%2Fsample-express-rest-api/lists"}