Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/reaperdragon/instagram-mern

An Instagram Clone Built with MERN stack.📷
https://github.com/reaperdragon/instagram-mern

asymmetric-grid-view axios cloudinary css3 expressjs httpstatuscode iconsax instagram-clone jwt-authentication mern-stack mongodb mongoose mvc-architecture nodejs reactjs redux redux-toolkit social-media styled-components

Last synced: 5 days ago
JSON representation

An Instagram Clone Built with MERN stack.📷

Awesome Lists containing this project

README

        

# Instagram Clone

### Built with Node js, Express js, Mongoose(Object Modeling for MondgoDB), React Js.

### Functionalities

- Follow User, UnFollow User.
- Search Users.
- Following User Posts.
- Create Post.
- Update UserProfile.
- JWT Authentication.
- Comment on Post.
- Like UnLike on Posts.

### Tech

- Frontend : [React Js](https://reactjs.org/)
- Backend : [Express js](https://expressjs.com/)
- State Management : [Redux Toolkit](https://redux-toolkit.js.org/)
- Style : [Styled Component](https://styled-components.com/)
- Database : [MongoDB Atlas](https://www.mongodb.com/)
- Routing : [React Router Dom V6](https://reactrouter.com/)
- Icons : [Iconsax React Icons](https://iconsax-react.pages.dev/)

### Installation

#### Clone

- Clone this repo with url `https://github.com/Aakrut/instagram-mern`

##### Setup

> Install npm dependencies using npm install

```
$ npm install && cd client && npm install

```

> Set up a MongoDB database either locally or provision a free database with MongoDB Atlas

> Create a free [Cloudinary account](https://cloudinary.com/)

> Create a .env file in the root directory

> Set up required environment variables.

```
MONGO_URI=Your_MONGO_URL
JWT_SECRET=YOUR_SECRET_KEY
JWT_LIFETIME=TIME

CLOUDINARY_CLOUD_NAME=CLOUD_NAME
CLOUDINARY_API_KEY=API_KEY
CLOUDINARY_API_SECRET=CLOUD_SECRET_KEY

```

> In the root directory run both the backend and the front end with the following command

```
npm start
```

### Screenshots

#### Web

![Home Page](https://user-images.githubusercontent.com/67114280/173543647-99ab2e92-b053-46b3-96c4-8881beb664f0.png)

![Explore Page](https://user-images.githubusercontent.com/67114280/173543906-06adb116-ca6b-4216-9df9-90bb5ff189f9.png)

![Search User](https://user-images.githubusercontent.com/67114280/173544081-63ed96b3-d460-4108-874a-44b90ac329fd.png)

![Post Page](https://user-images.githubusercontent.com/67114280/173544177-4e4dc631-3105-4f53-9545-83e0ae6554ae.png)

![Profile Page](https://user-images.githubusercontent.com/67114280/173544287-73f7e97e-3141-4f9f-8d31-697e32f2f769.png)

![User Page](https://user-images.githubusercontent.com/67114280/173544697-21d5502a-8537-495f-91a9-6d57137c3f39.png)

![Post Details & Messages Page](https://user-images.githubusercontent.com/67114280/173544910-ba14d7ae-2aac-4526-95a1-f69f114fc17d.png)

#### Responsive

![Home Page](https://user-images.githubusercontent.com/67114280/173547410-b10433e8-3543-422e-9937-c5f00b118453.svg)

![Explore and Search Page](https://user-images.githubusercontent.com/67114280/173547303-d54d1f86-969d-4d79-83ff-4c18e3f7fa2d.svg)

![Post Page](https://user-images.githubusercontent.com/67114280/173548696-2667fddf-4843-45a8-aa72-f0ae7a1029e7.svg)

![Profile Page](https://user-images.githubusercontent.com/67114280/173548132-1433a1e5-d2b3-4741-9ad1-8dc3b6449a5e.svg)