https://github.com/Sandermoen/instaclone
An instagram clone created with the MERN stack
https://github.com/Sandermoen/instaclone
express instagram mongodb nodejs reactjs social socialnetwork socketio
Last synced: 2 months ago
JSON representation
An instagram clone created with the MERN stack
- Host: GitHub
- URL: https://github.com/Sandermoen/instaclone
- Owner: Sandermoen
- License: apache-2.0
- Created: 2020-02-14T19:20:59.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-04-11T23:14:30.000Z (about 2 years ago)
- Last Synced: 2024-07-31T19:39:40.021Z (10 months ago)
- Topics: express, instagram, mongodb, nodejs, reactjs, social, socialnetwork, socketio
- Language: JavaScript
- Homepage:
- Size: 29.4 MB
- Stars: 676
- Watchers: 20
- Forks: 143
- Open Issues: 40
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Instaclone
> An instagram clone created with MongoDB, Express, React, and Socket.io

## Tech
- Frontend: `React`
- State management: `Redux`
- Routing: `React Router`
- Form management: `Formik`
- Animations: `React Spring`
- Websocket management: `Socket.io`
- Backend: `Express`
- Database: `MongoDB`
- Image hosting: `Cloudinary`---
## Installation - Development
### Clone
- Clone this repo to your local machine using `https://github.com/Sandermoen/instaclone`
### Setup
> Install npm dependencies using npm install
```shell
$ 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`
> Create a `GitHub OAuth app`
> Create a .env file in the root directory
> Set up required environment variables
```javascript
MONGO_URI= // mongodb://localhost:27017/instaclone
JWT_SECRET= // random string: j2390jf09kjsalkj4r93
CLOUDINARY_API_KEY= // Cloudinary API key
CLOUDINARY_API_SECRET= // Cloudinary API secret
CLOUDINARY_CLOUD_NAME= // Cloudinary cloud name
SMTP_HOST= // mail.example.com
SMTP_PORT= // 587
EMAIL_USERNAME= // [email protected]
EMAIL_PASSWORD= // Password
HOME_URL= // http://localhost:3000
GITHUB_CLIENT_ID= // Client id for GitHub OAuth app
GITHUB_CLIENT_SECRET= // Client secret for GitHub OAuth app
MODERATECONTENT_API_KEY= // Free API key from https://moderatecontent.com
```> In the root directory run both the backend and the front end with the following command
```shell
$ npm run dev
```The app should launch automatically, enjoy playing around 😄
---
## Installation - Production with Docker
### Clone
- Clone this repo to your local machine using `https://github.com/Sandermoen/instaclone`
### Setup
> Create a free `Cloudinary account`
> Create a `GitHub OAuth app`
> Create a .env file in the root directory
> Set up required environment variables
```javascript
MONGO_URI= // mongodb://mongo:27017/instaclone
JWT_SECRET= // random string: j2390jf09kjsalkj4r93
CLOUDINARY_API_KEY= // Cloudinary API key
CLOUDINARY_API_SECRET= // Cloudinary API secret
CLOUDINARY_CLOUD_NAME= // Cloudinary cloud name
SMTP_HOST= // mail.example.com
SMTP_PORT= // 587
EMAIL_USERNAME= // [email protected]
EMAIL_PASSWORD= // Password
HOME_URL= // http://localhost:3000
GITHUB_CLIENT_ID= // Client id for GitHub OAuth app
GITHUB_CLIENT_SECRET= // Client secret for GitHub OAuth app
MODERATECONTENT_API_KEY= // Free API key from https://moderatecontent.com
```> In the root directory start the docker container by using the docker-compose file using the following command
```shell
$ docker-compose up
```Docker will configure the rest for you, the project should be available on port 9000 unless you specified otherwise 😄
---
## Screenshots



## Support
Reach out to me at one of the following places!
- Email at `[email protected]`