{"id":20655471,"url":"https://github.com/bhimrazy/express-blog-api","last_synced_at":"2026-03-01T15:33:03.581Z","repository":{"id":119627634,"uuid":"547310463","full_name":"bhimrazy/express-blog-api","owner":"bhimrazy","description":"A Blog REST API with JWT authentication using ExpressJs, MongoDB, NodeJs and Typescript.","archived":false,"fork":false,"pushed_at":"2026-01-19T21:45:40.000Z","size":290,"stargazers_count":19,"open_issues_count":2,"forks_count":8,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-20T04:16:17.630Z","etag":null,"topics":["blog-api-with-nodejs-and-expressjs","docker","docker-compose","express-validator","expressjs","jwt","mongo","mongoose","nodejs","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bhimrazy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-10-07T13:25:26.000Z","updated_at":"2025-09-23T06:00:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"0c32fdc8-441d-4332-a3a1-a6edda15e25e","html_url":"https://github.com/bhimrazy/express-blog-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bhimrazy/express-blog-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhimrazy%2Fexpress-blog-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhimrazy%2Fexpress-blog-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhimrazy%2Fexpress-blog-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhimrazy%2Fexpress-blog-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bhimrazy","download_url":"https://codeload.github.com/bhimrazy/express-blog-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhimrazy%2Fexpress-blog-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29973317,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T15:29:09.406Z","status":"ssl_error","status_checked_at":"2026-03-01T15:28:28.558Z","response_time":124,"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":["blog-api-with-nodejs-and-expressjs","docker","docker-compose","express-validator","expressjs","jwt","mongo","mongoose","nodejs","typescript"],"created_at":"2024-11-16T18:11:21.806Z","updated_at":"2026-03-01T15:33:03.565Z","avatar_url":"https://github.com/bhimrazy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg height=\"400\" width=\"auto\" src=\"https://user-images.githubusercontent.com/46085301/196043714-8ac5ad0d-1286-4ab6-aa6b-c1e4cdccf3d0.png\"\u003e\n\u003c/p\u003e\n  \n# A Blog REST API App using ExpressJs, MongoDB, NodeJs and Typescript\n\nThis repo helps you to get started with ExpressJs, MongoDB, NodeJs and Typescript in docker Environment.\n\n## Setup and Run Locally with or without using Docker\n\nCommands\n\n```bash\n    # clone github repo\n    $ git clone https://github.com/bhimrazy/express-blog-api\n    $ cd express-blog-api\n    $ cp .env.example .env\n\n    # Run without using docker\n    # SET DATABASE_URL\n    $ npm install\n    $ npm run dev\n\n    # Run with docker\n    # start containers\n    $ docker-compose up -d\n    # start containers\n    $ docker-compose up -d\n    # stop containers\n    $ docker-compose down\n\n    # check logs of docker image\n    $ docker logs \u003cCONTAINER_ID\u003e\n\n    # Run tests\n    $ npm run test\n```\n\n## Directory Structure\n\n```\n.\n├── dist/                                # Build files\n├── public/                              # Contains static files\n├── src/                                 # All\n│   ├── configs/                         # Contains all the configurations\n│   ├── models/                          # Contains all the database schema and models\n│   ├── services/                        # Contains all the services\n│   ├── controllers/                     # Contains all the controllers\n│   ├── middlewares/                     # Contains all the middlewares\n│   ├── validators/                      # Contains all the request validators\n│   ├── serializers/                     # Contains all the serializers\n│   └── routes/                          # Contains all the routes\n├── tests/                               # Contains all the test files\n├── tsconfig.json                        # Typescript Config\n├── index.ts                             # Index file\n├── package.json\n├── package-lock.json\n└── README.md\n```\n\n## API Reference\n\nPostman Docs: https://documenter.getpostman.com/view/8091590/2s8YRnmXTd\n\n#### Get Home URL\n\n```\n  GET /api/v1/\n```\n\n#### Register User\n\n```\n  POST /api/v1/register\n```\n\n| Parameter  | Type     | Description                 |\n| :--------- | :------- | :-------------------------- |\n| `name`     | `string` | **Required**. Your Name     |\n| `email`    | `string` | **Required**. Your Email    |\n| `password` | `string` | **Required**. Your Password |\n\n#### Login User\n\n```\n  POST /api/v1/login\n```\n\n| Parameter  | Type     | Description                 |\n| :--------- | :------- | :-------------------------- |\n| `email`    | `string` | **Required**. Your Email    |\n| `password` | `string` | **Required**. Your Password |\n\n#### Blogs API\n\n```\n  GET     /api/v1/blogs/\n  GET     /api/v1/blogs/:id\n  POST    /api/v1/blogs/\n  PUT     /api/v1/blogs/:id\n  DELETE  /api/v1/blogs/:id\n```\n\n## References\n\n## License\n\n[MIT](https://github.com/bhimrazy/express-blog-api/blob/main/LICENSE)\n\n\u003c!-- docker exec -it \u003ccontainer-id\u003e bash --\u003e\n\u003c!--\nmongosh\nshow dbs\nshow users\nuse db_name\nmongo --port 27017 -u username -p password --authenticationDatabase mydbone\nexpress-jsdoc-swagger\n\nhttps://www.bezkoder.com/docker-compose-nodejs-mongodb/\n\nhttps://blog.appsignal.com/2022/08/17/build-a-crud-app-with-nodejs-and-mongodb.html\nhttps://blog.appsignal.com/2022/09/14/secure-your-nodejs-app-with-json-web-tokens.html\nhttps://jayeshchoudhary.hashnode.dev/how-to-easily-validate-request-data-using-express-validator-in-nodejs\nhttps://www.freecodecamp.org/news/how-to-make-input-validation-simple-and-clean-in-your-express-js-app-ea9b5ff5a8a7/\n\n\nhttps://github.com/dinushchathurya/nodejs-blog-api-with-authentication\nhttps://github.com/yassinjouao/instagram-clone-backend/\n --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhimrazy%2Fexpress-blog-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbhimrazy%2Fexpress-blog-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhimrazy%2Fexpress-blog-api/lists"}