{"id":13403133,"url":"https://github.com/Sandermoen/instaclone","last_synced_at":"2025-03-14T08:31:29.802Z","repository":{"id":38413584,"uuid":"240582397","full_name":"Sandermoen/instaclone","owner":"Sandermoen","description":"An instagram clone created with the MERN stack","archived":false,"fork":false,"pushed_at":"2023-04-11T23:14:30.000Z","size":30839,"stargazers_count":676,"open_issues_count":40,"forks_count":143,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-07-31T19:39:40.021Z","etag":null,"topics":["express","instagram","mongodb","nodejs","reactjs","social","socialnetwork","socketio"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sandermoen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-02-14T19:20:59.000Z","updated_at":"2024-07-21T10:17:52.000Z","dependencies_parsed_at":"2023-02-05T01:17:41.615Z","dependency_job_id":"caffe96f-d5c4-4593-bf1e-ce8ce1aed837","html_url":"https://github.com/Sandermoen/instaclone","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sandermoen%2Finstaclone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sandermoen%2Finstaclone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sandermoen%2Finstaclone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sandermoen%2Finstaclone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sandermoen","download_url":"https://codeload.github.com/Sandermoen/instaclone/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243547367,"owners_count":20308694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["express","instagram","mongodb","nodejs","reactjs","social","socialnetwork","socketio"],"created_at":"2024-07-30T19:01:25.844Z","updated_at":"2025-03-14T08:31:29.794Z","avatar_url":"https://github.com/Sandermoen.png","language":"JavaScript","readme":"\u003ca href=\"#\"\u003e\u003cimg src=\"https://res.cloudinary.com/drwb19czo/image/upload/v1591476975/New_Project_1_yk24bj.png\" title=\"Instaclone\" alt=\"Instaclone banner\"\u003e\u003c/a\u003e\n\n# Instaclone\n\n\u003e An instagram clone created with MongoDB, Express, React, and Socket.io\n\n![Showcase GIF](/screenshots/NgmjOVkZ4L.gif)\n\n## Tech\n\n- Frontend: \u003ca href=\"https://github.com/facebook/react\"\u003e`React`\u003c/a\u003e\n- State management: \u003ca href=\"https://github.com/reduxjs/redux\"\u003e`Redux`\u003c/a\u003e\n- Routing: \u003ca href=\"https://github.com/ReactTraining/react-router\"\u003e`React Router`\u003c/a\u003e\n- Form management: \u003ca href=\"https://github.com/jaredpalmer/formik\"\u003e`Formik`\u003c/a\u003e\n- Animations: \u003ca href=\"https://github.com/react-spring/react-spring\"\u003e`React Spring`\u003c/a\u003e\n- Websocket management: \u003ca href=\"https://github.com/socketio/socket.io\"\u003e`Socket.io`\u003c/a\u003e\n- Backend: \u003ca href=\"https://github.com/expressjs/express\"\u003e`Express`\u003c/a\u003e\n- Database: \u003ca href=\"https://github.com/Automattic/mongoose\"\u003e`MongoDB`\u003c/a\u003e\n- Image hosting: \u003ca href=\"https://cloudinary.com/\"\u003e`Cloudinary`\u003c/a\u003e\n\n---\n\n## Installation - Development\n\n### Clone\n\n- Clone this repo to your local machine using `https://github.com/Sandermoen/instaclone`\n\n### Setup\n\n\u003e Install npm dependencies using npm install\n\n```shell\n$ npm install \u0026\u0026 cd client \u0026\u0026 npm install\n```\n\n\u003e Set up a MongoDB database either locally or provision a free database with \u003ca href='https://www.mongodb.com/cloud/atlas'\u003e`MongoDB Atlas`\u003c/a\u003e\n\n\u003e Create a free \u003ca href=\"https://cloudinary.com/\"\u003e`Cloudinary account`\u003c/a\u003e\n\n\u003e Create a \u003ca href='https://github.com/settings/developers'\u003e`GitHub OAuth app`\u003c/a\u003e\n\n\u003e Create a .env file in the root directory\n\n\u003e Set up required environment variables\n\n```javascript\nMONGO_URI= // mongodb://localhost:27017/instaclone\nJWT_SECRET= // random string: j2390jf09kjsalkj4r93\nCLOUDINARY_API_KEY= // Cloudinary API key\nCLOUDINARY_API_SECRET= // Cloudinary API secret\nCLOUDINARY_CLOUD_NAME= // Cloudinary cloud name\nSMTP_HOST= // mail.example.com\nSMTP_PORT= // 587\nEMAIL_USERNAME= // example@example.com\nEMAIL_PASSWORD= // Password\nHOME_URL= // http://localhost:3000\nGITHUB_CLIENT_ID= // Client id for GitHub OAuth app\nGITHUB_CLIENT_SECRET= // Client secret for GitHub OAuth app\nMODERATECONTENT_API_KEY= // Free API key from https://moderatecontent.com\n```\n\n\u003e In the root directory run both the backend and the front end with the following command\n\n```shell\n$ npm run dev\n```\n\nThe app should launch automatically, enjoy playing around 😄\n\n---\n\n## Installation - Production with Docker\n\n### Clone\n\n- Clone this repo to your local machine using `https://github.com/Sandermoen/instaclone`\n\n### Setup\n\n\u003e Create a free \u003ca href=\"https://cloudinary.com/\"\u003e`Cloudinary account`\u003c/a\u003e\n\n\u003e Create a \u003ca href='https://github.com/settings/developers'\u003e`GitHub OAuth app`\u003c/a\u003e\n\n\u003e Create a .env file in the root directory\n\n\u003e Set up required environment variables\n\n```javascript\nMONGO_URI= // mongodb://mongo:27017/instaclone\nJWT_SECRET= // random string: j2390jf09kjsalkj4r93\nCLOUDINARY_API_KEY= // Cloudinary API key\nCLOUDINARY_API_SECRET= // Cloudinary API secret\nCLOUDINARY_CLOUD_NAME= // Cloudinary cloud name\nSMTP_HOST= // mail.example.com\nSMTP_PORT= // 587\nEMAIL_USERNAME= // example@example.com\nEMAIL_PASSWORD= // Password\nHOME_URL= // http://localhost:3000\nGITHUB_CLIENT_ID= // Client id for GitHub OAuth app\nGITHUB_CLIENT_SECRET= // Client secret for GitHub OAuth app\nMODERATECONTENT_API_KEY= // Free API key from https://moderatecontent.com\n```\n\n\u003e In the root directory start the docker container by using the docker-compose file using the following command\n\n```shell\n$ docker-compose up\n```\n\nDocker will configure the rest for you, the project should be available on port 9000 unless you specified otherwise 😄\n\n---\n\n## Screenshots\n\n![Showcase GIF](/screenshots/wg2j4iHJ7y.gif)\n![Showcase GIF](/screenshots/n94XRALAUb.gif)\n![Showcase GIF](/screenshots/oTWyTUbFvi.gif)\n![Showcase GIF](/screenshots/yA6nMe6Xr4.gif)\n\n## Support\n\nReach out to me at one of the following places!\n\n- Email at \u003ca href=\"mailto:smoensander@gmail.com\"\u003e`smoensander@gmail.com`\u003c/a\u003e\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSandermoen%2Finstaclone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSandermoen%2Finstaclone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSandermoen%2Finstaclone/lists"}