Explore the live application: Pinterest-Clone
Use the app to generate images using a web link, upload your own images, or use OpenAI’s cutting-edge image generation technology.
These instructions will help you get a copy of the project up and running on your local machine for development and testing purposes.
Ensure you have the following tools installed:
| Tool | Version |
|---|---|
| Node.js / npm | ~18.3.0 / ~8.19.3 |
| Git | ~2 |
Optional tools:
| Tool | Version |
|---|---|
| Docker Desktop | ~4.4.2 |
| MongoDB Compass | ~1.0.0 |
-
Create a new directory and initialize Git:
mkdir Pinterest-Clone cd Pinterest-Clone git init -
Clone the repository and install packages:
git pull https://github.com/Dereje1/Pinterest-Clone.git npm install
-
Run MongoDB locally with Docker:
In the root folder, run:
docker-compose up mongodb
Alternatively, you can get a connection string from MongoDB Atlas after setting up your own database.
-
Create
.envfile:In the root of the project, create a
.envfile with the following contents:SESSION_SECRET=<Secret for Express Session> MONGOLAB_URI=mongodb://root:123456@localhost:27017 TWITTER_CONSUMER_KEY=< Get from Twitter Developer API > TWITTER_CONSUMER_SECRET=< Get from Twitter Developer API > TWITTER_CALLBACK=http://localhost:8080/auth/twitter/redirect GOOGLE_CLIENT_ID=< Get from Google Developer API > GOOGLE_CLIENT_SECRET=< Get from Google Developer API > GOOGLE_CALLBACK=http://localhost:8080/auth/google/redirect GITHUB_CLIENT_ID=< Get from Github Developer API > GITHUB_CLIENT_SECRET=< Get from Github Developer API > GITHUB_CALLBACK=http://localhost:8080/auth/github/redirect AWS_ACCESS_KEY_ID=< Get from AWS > AWS_SECRET_KEY=< Get from AWS > S3_BUCKET_NAME=< s3 bucket name for uploaded pins> NODE_ENV=<development|production> DEBUG=Pinterest-Clone:server DEBUG_COLORS=1 OPENAI_API_KEY=<Get from OpenAI>
-
Run the development environment:
npm run dev
You can now go to
http://localhost:8080/and see the project running in dev mode.
If you have Docker installed and a .env file with the contents from above, then from the root directory:
-
Build and run the images:
docker-compose up
-
Access the application:
Go to
http://localhost:8080/Note:
MONGOLAB_URIis already incorporated in the local Docker setup and is not needed in your.envfile if fully running with Docker.
npm testnpm run coveragenpm run lintnpm run compileTSnpm run build_server && npm run build_clientnpm start- Node.js - JavaScript runtime
- React - A JavaScript library for building user interfaces
- MongoDB - Database
- Express - Node.js web application framework
- Material UI - A library of React UI components that implements Google's Material Design
- OpenAI - AI-based image generation
- ...and more
- Dereje Getahun - Dereje Getahun
This project is licensed under the MIT License - see the LICENSE.md file for details
- Hat tip to anyone whose code was used
