/instaclone

An instagram clone created with the MERN stack

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Instaclone banner

Instaclone

An instagram clone created with MongoDB, Express, React, and Socket.io

Heroku deploy status

Have a look at the live demo

Showcase GIF

Tech


Installation - Development

Clone

  • Clone this repo to your local machine using https://github.com/Sandermoen/instaclone

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

Create a GitHub OAuth app

Create a .env file in the root directory

Set up required environment variables

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= // example@example.com
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

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

$ 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

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= // example@example.com
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

In the root directory start the docker container by using the docker-compose file using the following command

$ docker-compose up

Docker will configure the rest for you, the project should be available on port 9000 unless you specified otherwise 😄


Screenshots

Showcase GIF Showcase GIF Showcase GIF Showcase GIF

Support

Reach out to me at one of the following places!