{"id":15098916,"url":"https://github.com/amanmandal-m/boo_world","last_synced_at":"2026-01-28T16:34:58.459Z","repository":{"id":196255170,"uuid":"695617895","full_name":"Amanmandal-M/boo_world","owner":"Amanmandal-M","description":"Boo Backend is a versatile application designed to facilitate the creation of user accounts, comments, and the ability to like or dislike comments with ease and efficiency. This robust platform provides a seamless user experience for managing interactions within the system.","archived":false,"fork":false,"pushed_at":"2023-09-24T14:09:28.000Z","size":229,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T17:44:54.504Z","etag":null,"topics":["chai","ejs-templates","express-js","mocha","mongodb","mongodb-memory-server","mongoose","node-js","supertest"],"latest_commit_sha":null,"homepage":"","language":"EJS","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/Amanmandal-M.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}},"created_at":"2023-09-23T18:02:23.000Z","updated_at":"2023-09-24T14:06:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"13132d4c-5fa2-469d-b582-15350c596b4a","html_url":"https://github.com/Amanmandal-M/boo_world","commit_stats":null,"previous_names":["amanmandal-m/boo_world"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amanmandal-M%2Fboo_world","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amanmandal-M%2Fboo_world/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amanmandal-M%2Fboo_world/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amanmandal-M%2Fboo_world/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Amanmandal-M","download_url":"https://codeload.github.com/Amanmandal-M/boo_world/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245854882,"owners_count":20683429,"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":["chai","ejs-templates","express-js","mocha","mongodb","mongodb-memory-server","mongoose","node-js","supertest"],"created_at":"2024-09-25T17:01:15.705Z","updated_at":"2026-01-28T16:34:58.414Z","avatar_url":"https://github.com/Amanmandal-M.png","language":"EJS","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eWelcome to Boo World Backend\u003c/h1\u003e\n\n## About\n\nBoo Backend is a versatile application designed to facilitate the creation of user accounts, comments, and the ability to like or dislike comments with ease and efficiency. This robust platform provides a seamless user experience for managing interactions within the system.\n\n## Features\n\n- Creating a new User Profile \n- You can do comments and likes, unlikes\n- Relationships Comments with profileID.\n- Error Handling.\n\n## Technologies Used\n\n- Node.js\n- MongoDB\n- Mocha (For unit testing)\n\n## Clone Repository\n\n```\ngit clone https://github.com/Amanmandal-M/boo_world.git\n```\n\n### Prerequisites\n\n- Javascript\n- NodeJS\n- MongoDB\n\n## Installation\n\n```\ncd boo_world\nnpm run start\n```\n\n## Start the Backend server\n\n```\nnpm run start\nor\nnpm run server\nor\nnode app.js\n```\n\n##  MVC Structure\n\n```js\n├── app.js\n├── configs\n|    └── db.js\n├── models\n|    └── profileModel.js\n|    └── commentModel.js\n├── routes\n|    └── profile.js\n|    └── comment.js\n├──controllers\n|    └── profile.js\n|    └── comment.js\n|    └── HomePageController.js\n├──views\n|    ├──partials\n|    |    └── categories.ejs\n|    |    └── epilogue.ejs\n|    |    └── footer.ejs\n|    |    └── header.ejs\n|    |    └── metadata.ejs\n|    |    └── profile_card.ejs\n|    |    └── prologue.ejs\n|    |    └── scripts.ejs\n|    |    └── styles.ejs\n|    └──profile_template.ejs\n├──helpers\n|    └── successAndError.js\n├──public\n|    ├── static\n|    |    └── space.png\n|    |    └── wing.png\n|    ├── sample.md\n```\n\nNote : \n\n-  Before doing anything first create `.env` file and put `PORT`, `NODE_ENV, MONGO_URI`.\n-  If you are not using `MONGO_URI` so don't worry it will run automatically using mongoDB-memory-server\n- `PORT` is for listening the server.\n- `MONGO_URL` is for running database and store your data in database so put your mongo link.\n- `NODE_ENV` is for accessing database for test and it is like a authentication but not full authentication .\n\n\n## Endpoints\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eModels\u003c/th\u003e\n            \u003cth\u003eMethod\u003c/th\u003e\n            \u003cth\u003eEndpoint\u003c/th\u003e\n            \u003cth\u003eDescription\u003c/th\u003e\n            \u003cth\u003eStatus Code\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eProfile\u003c/td\u003e\n            \u003ctd\u003ePOST\u003c/td\u003e\n            \u003ctd\u003e/profile/\u003c/td\u003e\n            \u003ctd\u003eThis endpoint should allow to create a new Profile and store in database.\u003c/td\u003e\n            \u003ctd\u003e200\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eProfile\u003c/td\u003e\n            \u003ctd\u003eGet\u003c/td\u003e\n            \u003ctd\u003e/profile/:id\u003c/td\u003e\n            \u003ctd\u003eThis endpoint should allow to view profile by its id.\u003c/td\u003e\n            \u003ctd\u003e200\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eComment\u003c/td\u003e\n            \u003ctd\u003eGET\u003c/td\u003e\n            \u003ctd\u003e/comment/\u003c/td\u003e\n            \u003ctd\u003eThis endpoint should allow to view all comments with profileId.\u003c/td\u003e\n            \u003ctd\u003e200\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eComment\u003c/td\u003e\n            \u003ctd\u003eGET\u003c/td\u003e\n            \u003ctd\u003e/comment/:profileId\u003c/td\u003e\n            \u003ctd\u003eThis endpoint should allow to view comments by profileId.\u003c/td\u003e\n            \u003ctd\u003e200\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eComment\u003c/td\u003e\n            \u003ctd\u003ePOST\u003c/td\u003e\n            \u003ctd\u003e/comment/\u003c/td\u003e\n            \u003ctd\u003eThis endpoint should allow to create a new comment using profileId.\u003c/td\u003e\n            \u003ctd\u003e200\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eComment\u003c/td\u003e\n            \u003ctd\u003ePOST\u003c/td\u003e\n            \u003ctd\u003e/like/:commentId\u003c/td\u003e\n            \u003ctd\u003eThis endpoint should allow to like comments by commentId.\u003c/td\u003e\n            \u003ctd\u003e200\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eComment\u003c/td\u003e\n            \u003ctd\u003ePOST\u003c/td\u003e\n            \u003ctd\u003e/unlike/:commentId\u003c/td\u003e\n            \u003ctd\u003eThis endpoint should allow to unlike comments by commentId.\u003c/td\u003e\n            \u003ctd\u003e200\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n## Schema\n\n### Profile Schema\n\n```js\n{\n  name: {\n    type: String,\n    required: true,\n  },\n  description: {\n    type: String,\n    required: true,\n  },\n  mbti: {\n    type: String,\n    required: true,\n  },\n  enneagram: {\n    type: String,\n    required: true,\n  },\n  variant: {\n    type: String,\n    required: true,\n  },\n  tritype: {\n    type: Number,\n    required: true,\n  },\n  socionics: {\n    type: String,\n    required: true,\n  },\n  sloan: {\n    type: String,\n    required: true,\n  },\n  psyche: {\n    type: String,\n    required: true,\n  },\n  image: {\n    type: String,\n    required: true,\n  },\n}\n```\n\n### Comment Schema\n\n```js\n{\n  profileId: {\n    type: mongoose.Schema.Types.ObjectId,\n    ref: 'Profile'\n  },\n  author: {\n    type: String,\n    required: true,\n  },\n  text: {\n    type: String,\n  },\n  likes: {\n    type: Number,\n    default: 0 \n  }\n}\n```\n\n\u003cbr\u003e\n\n### Contributing\n\nIf you'd like to contribute to this project, please follow these steps:\n\n1. Fork the repository\n2. Create a new branch (`git checkout -b feature/your-feature`)\n3. Commit your changes (`git commit -m 'Add some feature'`)\n4. Push to the branch (`git push origin feature/your-feature`)\n5. Create a new Pull Request","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famanmandal-m%2Fboo_world","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famanmandal-m%2Fboo_world","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famanmandal-m%2Fboo_world/lists"}