{"id":26491744,"url":"https://github.com/danielc92/job-board-rest-api","last_synced_at":"2026-04-13T14:31:10.823Z","repository":{"id":46258390,"uuid":"202489952","full_name":"danielc92/job-board-rest-api","owner":"danielc92","description":"Building backend for a Job Board app in Nodejs, Express.js, MongoDB and mongoose.","archived":false,"fork":false,"pushed_at":"2022-12-22T12:02:32.000Z","size":1067,"stargazers_count":1,"open_issues_count":15,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-27T11:46:08.337Z","etag":null,"topics":["expressjs","mongodb","rest-api","side-project"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","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/danielc92.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-08-15T06:54:32.000Z","updated_at":"2022-07-22T02:46:52.000Z","dependencies_parsed_at":"2023-01-30T08:30:56.810Z","dependency_job_id":null,"html_url":"https://github.com/danielc92/job-board-rest-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/danielc92/job-board-rest-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielc92%2Fjob-board-rest-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielc92%2Fjob-board-rest-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielc92%2Fjob-board-rest-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielc92%2Fjob-board-rest-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danielc92","download_url":"https://codeload.github.com/danielc92/job-board-rest-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielc92%2Fjob-board-rest-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31757477,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T13:27:56.013Z","status":"ssl_error","status_checked_at":"2026-04-13T13:21:23.512Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["expressjs","mongodb","rest-api","side-project"],"created_at":"2025-03-20T08:50:30.812Z","updated_at":"2026-04-13T14:31:10.804Z","avatar_url":"https://github.com/danielc92.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Job Board API\nBuilding backend for a Job Board app in Nodejs, Express.js, MongoDB and mongoose. This application will be connected to a javascript based front-end such as React in the future.\n\n### Security\n- Appropriate rate limiting to prevent abuse, particularly to content (POST) creation routes.\n- Passwords need to be slow hashed with `bcrypt/pbkf2`.\n- Users should not and cannot modify documents created by others. May need to utlilize auth middleware to achieve this.\n- Sensitive variables need to be hidden away in environment variables.\n\n### Stack\n- MongoDB as a database\n- Mongoose ODM for modelling and validation\n- Express.js for web framework\n- Nodejs backend\n\n### Available routes\n- `/api/skill` (individual skills for jobs)\n- `/api/job` (job postings)\n- `/api/job-category` (job categories such as healthcare/retail/administration)\n- `/api/benefit` (benefits relating to job posts)\n- `/api/application` (applications)\n- `/api/auth/login` (provided valid login details, will return a json web token)\n- `/api/auth/register` (allows creation of new accounts)\n- `/api/test` (for testing purposes only, not part of main application)\n\n### Running the server \n`nodemon` can be installed to hot reload the server during development phase.\n\n```sh\nnpm install nodemon\nnodemon server.js\n```\n\n### Running MongoDB in Docker\nRequired to install docker desktop, and install the `mongo` image.\nThe following command will run a container based on the mongo image, mapping the containers port 27017 to the hosts 27017 in detached mode (runs as background process). Volume hasn't been mounted in order to keep the environment even more portable (a script will be required to prepopulate the database within the container).\n```sh\ndocker run --name mongo-instance -d -p 27017:27017 mongo\n```\n\n### Tests\n- Testing all routes and methods using `postman`\n\n### Deployment\nPlanning to deploy within Docker containers or barebone server on AWS/GCP/DO.\n\n### Sources\n- [Mongoose documentation](https://www.npmjs.com/package/mongoose)\n- [Express.js documentation](https://expressjs.com/)\n- [Basic rate limiting for express](https://www.npmjs.com/package/express-rate-limit)\n- [Clustering in Node](https://nodejs.org/api/cluster.html)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielc92%2Fjob-board-rest-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielc92%2Fjob-board-rest-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielc92%2Fjob-board-rest-api/lists"}