This project is a backend implementation of a Pinterest-like application. It includes basic functionalities such as user registration, post viewing, board creation, and pin management. The application is designed with security in mind, incorporating measures to protect user data and interactions.
- User Registration: Users can register on the platform.
- User Authentication: Secure login and session management using
passport-js
. - Post Viewing: Users can view all posts by different users.
- Board Management: Users can create multiple boards to organize their pins.
- Pin Management: Users can add new pins or posts, view their own pins, and search for pins or posts.
- Search Functionality: Users can search for pins/posts based on their preferences.
- Node.js
- Express.js
- EJS (Embedded JavaScript templates)
- Passport.js for authentication
- Express-Session for session management
- Connect-Flash for flash messages
- Express-Rate-Limit for rate limiting
- MongoDB for the database
- Mongoose for MongoDB object modeling
- Cloudinary for storing images on cloud
- Visual Studio Code (VSCode)
This application takes various measures to ensure security, including secure authentication, rate limiting, and data validation. User data and interactions are protected to provide a secure experience.
- Node.js and npm installed
- MongoDB installed and running
-
Clone the repository:
git clone https://github.com/namankoolwal/Pinterest-Backend.git
-
Navigate to the project directory:
cd pinterest-backend
-
Install dependencies:
npm install
-
Set up environment variables:
Create a .env file in the root directory and add the following environment variables:
MONGO_URI=your_mongodb_connection_string SESSION_SECRET=your_session_secret
-
Start the application:
npm start
-
Access the application:
Open your browser and go to http://localhost:3000.
Contributions are welcome! If you would like to contribute, please follow these steps:
-
Fork the repository:
Click the "Fork" button at the top right corner of this repository.
-
Clone your forked repository:
git clone https://github.com/your-username/pinterest-backend.git
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes and commit them:
git add . git commit -m "Add your commit message here"
-
Push to your forked repository:
git push origin feature/your-feature-name
-
Create a pull request:
Go to the original repository and create a pull request to merge your changes.
This project is licensed under the MIT License. See the LICENSE file for details.
Feedback is welcomed! Please open an issue if you have any suggestions or find any bugs.