{"id":15805863,"url":"https://github.com/krenbot/social-network-api","last_synced_at":"2025-10-10T23:08:50.531Z","repository":{"id":65372595,"uuid":"589346537","full_name":"Krenbot/social-network-api","owner":"Krenbot","description":"Back-end only API challenge for adding friends/sharing thoughts/reactions","archived":false,"fork":false,"pushed_at":"2023-01-25T23:42:32.000Z","size":67,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-06T02:40:36.164Z","etag":null,"topics":["api-rest","controllers","mongodb","mongoose","mongoose-schema","routes-api","social-media"],"latest_commit_sha":null,"homepage":"","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/Krenbot.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":"2023-01-15T21:36:30.000Z","updated_at":"2023-02-01T01:14:42.000Z","dependencies_parsed_at":"2023-02-14T12:20:25.841Z","dependency_job_id":null,"html_url":"https://github.com/Krenbot/social-network-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/Krenbot%2Fsocial-network-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Krenbot%2Fsocial-network-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Krenbot%2Fsocial-network-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Krenbot%2Fsocial-network-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Krenbot","download_url":"https://codeload.github.com/Krenbot/social-network-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246551809,"owners_count":20795714,"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":["api-rest","controllers","mongodb","mongoose","mongoose-schema","routes-api","social-media"],"created_at":"2024-10-05T02:40:28.948Z","updated_at":"2025-10-10T23:08:45.504Z","avatar_url":"https://github.com/Krenbot.png","language":"JavaScript","readme":"# NoSQL - Social Media API (Back-end only)\n\n## Description\nMongoDB is a popular choice for many social networks due to its speed with large amounts of data and flexibility with unstructured data. For a practice challenge, I used several of the technologies that social networking platforms use in their full-stack applications. Because the foundation of these applications is data, it’s important that you understand how to build and structure the API first.\n\nMy challenge was to build an API for a social network web application where users can share their thoughts, react to friends’ thoughts, and create a friend list. I used Express.js for routing, a MongoDB database, and the Mongoose ODM.\n\nNo seed data is provided, so I needed to create my own data using Postman after I created my API.\n\n## Table of Contents\n  1) [Technologies](#technologies-used)\n  2) [Challenges](#challenges)\n  3) [Future Implementations](#future-implementations)\n  4) [User Story](#user-story)\n  5) [Demonstration](#demonstration)\n  6) [Installation](#installation)\n  7) [License](#license)\n\n## Technologies\n* [nodejs](https://nodejs.org/en/) - to run the server in the terminal\n* [MongoDB](https://www.mongodb.com/) - database management\n* [dotenv](https://www.npmjs.com/package/dotenv) - to hide sensitive user data\n* [mongoose](https://mongoosejs.com/docs/) - Database modeling/queries/etc\n* [Postman](https://www.postman.com/) - In-app CRUD operations on API requests\n* [moment](https://momentjs.com/) - utility for date/time formatting\n\n## Challenges\n* Learning MongoDB / Mongoose\n* Syncing up controllers and routers\n* Best practices for readability\n\n## Future Implementation\n* Front-End implementation\n* Emoji-based reactions\n\n## User Story\n```md\nAS A social media startup\nI WANT an API for my social network that uses a NoSQL database\nSO THAT my website can handle large amounts of unstructured data\n```\n\n## Demonstration\n[Here is a video link of the app in action](https://drive.google.com/file/d/18DIaVc5p6JHOB-7dMli1IfH1aJlJTrsl/view)\n\n## Installation\n* For installation onto local machine, clone provided repository.\n* Use `npm init` to initalize node package manager\n* Use `npm install` or `npm i` to install dependencies\n* For development purposes, use `npm run dev`, found in the scripts to work with nodemon.\n\n\n## License\nMIT © Krenbot\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrenbot%2Fsocial-network-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrenbot%2Fsocial-network-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrenbot%2Fsocial-network-api/lists"}