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
.env
file:In the root of the project, create a
.env
file 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_URI
is already incorporated in the local Docker setup and is not needed in your.env
file if fully running with Docker.
npm test
npm run coverage
npm run lint
npm run compileTS
npm run build_server && npm run build_client
npm 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