A MERN stack social network application with MVP features implemented: user authentication, profile viewing, posting, commenting, and following/unfollowing.
| Signup | Feed |
|---|---|
![]() |
![]() |
| Comment | Discover |
|---|---|
![]() |
![]() |
| Profile | Edit |
|---|---|
![]() |
![]() |
- As a user, I want to be able to create an account so that I can log in.
- As a user, I want to be able to log in so that I can view my home feed.
- As a user, I want to be able to view posts so that I know what people I’m following are up to.
- As a user, I want to be able to create a post so that I can share my current status.
- As a user, I want to be able to delete my posts so that people can no longer see them.
- As a user, I want to be able to edit my posts so that I can correct or clarify my thoughts.
- As a user, I want to be able to like/unlike a post so that I can approve posts I am fond of.
- As a user, I want to be able to comment on a post so that I can share additional thoughts.
- As a user, I want to be able to view other users' profiles so that I can learn more about them.
- As a user, I want to be able to edit my own profile (i.e. change name, avatar color, or bio) so that I can add more style to my page.
- Add option for user to post images
- Add option for user to change their avatar/background to a custom image
- Add social media login options (e.g. Facebook, Google, Twitter)
- Implement find users feature (i.e. find users by typing their name into a search field)
- Improve code organization
- Write more tests
To run server:
- Clone the repository.
cdinto the directory and runnpm install.- Run
cd client && npm install. - Back in the main directory, run
npm start.
To set up your own database:
- Log into or create an mLab account.
- Log into or create a Heroku account.
- Back in the main directory, run
npm start.
- Express.js - Backend web framework
- Heroku - Platform to deploy web applications
- JSON Web Token - A standard to securely authenticate HTTP requests
- Material-UI - UI library for React
- MongoDB - Database to store document-based data
- Mongoose - Object-modeling tool for Node.js
- Node.js - Runtime environment to help build fast server applications
- React - JavaScript library for building user interfaces
- Redux - JavaScript library to help better manage application state
- Design was inspired by preexisting projects like Qolzam's React Social Network and Shama Hoque's Mern Social.
- Authentication was implemented with the help of Krunal Lathiya's example, Brad Traversy's guide on building a login system, and Maximilian Schwarzmüller's guide on JWT (primarily episodes 11 and 12).
- Restful CRUD API builds on concepts explained in Andrew Mead's Node.js course.
- Material-UI, React, Redux, Mongoose documentation.












