An instagram clone created with MongoDB, Express, React, and Socket.io
- 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
- Clone this repo to your local machine using
https://github.com/Sandermoen/instaclone
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
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
$ npm run dev
The app should launch automatically, enjoy playing around 😄
- Clone this repo to your local machine using
https://github.com/Sandermoen/instaclone
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
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
$ docker-compose up
Docker will configure the rest for you, the project should be available on port 9000 unless you specified otherwise 😄
Reach out to me at one of the following places!
- Email at
smoensander@gmail.com