Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/krenbot/social-network-api
Back-end only API challenge for adding friends/sharing thoughts/reactions
https://github.com/krenbot/social-network-api
api-rest controllers mongodb mongoose mongoose-schema routes-api social-media
Last synced: about 1 month ago
JSON representation
Back-end only API challenge for adding friends/sharing thoughts/reactions
- Host: GitHub
- URL: https://github.com/krenbot/social-network-api
- Owner: Krenbot
- Created: 2023-01-15T21:36:30.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-01-25T23:42:32.000Z (almost 2 years ago)
- Last Synced: 2024-10-06T02:40:36.164Z (4 months ago)
- Topics: api-rest, controllers, mongodb, mongoose, mongoose-schema, routes-api, social-media
- Language: JavaScript
- Homepage:
- Size: 65.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NoSQL - Social Media API (Back-end only)
## Description
MongoDB 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.My 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.
No seed data is provided, so I needed to create my own data using Postman after I created my API.
## Table of Contents
1) [Technologies](#technologies-used)
2) [Challenges](#challenges)
3) [Future Implementations](#future-implementations)
4) [User Story](#user-story)
5) [Demonstration](#demonstration)
6) [Installation](#installation)
7) [License](#license)## Technologies
* [nodejs](https://nodejs.org/en/) - to run the server in the terminal
* [MongoDB](https://www.mongodb.com/) - database management
* [dotenv](https://www.npmjs.com/package/dotenv) - to hide sensitive user data
* [mongoose](https://mongoosejs.com/docs/) - Database modeling/queries/etc
* [Postman](https://www.postman.com/) - In-app CRUD operations on API requests
* [moment](https://momentjs.com/) - utility for date/time formatting## Challenges
* Learning MongoDB / Mongoose
* Syncing up controllers and routers
* Best practices for readability## Future Implementation
* Front-End implementation
* Emoji-based reactions## User Story
```md
AS A social media startup
I WANT an API for my social network that uses a NoSQL database
SO THAT my website can handle large amounts of unstructured data
```## Demonstration
[Here is a video link of the app in action](https://drive.google.com/file/d/18DIaVc5p6JHOB-7dMli1IfH1aJlJTrsl/view)## Installation
* For installation onto local machine, clone provided repository.
* Use `npm init` to initalize node package manager
* Use `npm install` or `npm i` to install dependencies
* For development purposes, use `npm run dev`, found in the scripts to work with nodemon.## License
MIT © Krenbot