SnapShare is a modern web application inspired by Pinterest, allowing users to share and discover images. Built with Node.js and Express, this platform provides a seamless experience for users to create accounts, upload images, and explore content shared by others.
- Local authentication using username and password
- Google OAuth integration for quick sign-in
- Secure session management
- Password recovery functionality
- Customizable profile pictures
- Personal feed of uploaded images
- User information display
- Upload images with captions
- View images in a Pinterest-style gallery layout
- Image storage with unique identifiers
- Mobile-friendly interface
- Pinterest-inspired masonry layout for the feed
- Modern UI elements
- Node.js - JavaScript runtime
- Express - Web application framework
- MongoDB - NoSQL database for data storage
- Mongoose - MongoDB object modeling
- Passport.js - Authentication middleware
- Multer - File upload handling
- UUID - Unique identifier generation
- EJS - Templating engine
- CSS - Custom styling
- Bootstrap - UI components and responsive design
- Local strategy with Passport
- Google OAuth 2.0 integration
├── app.js # Application entry point
├── bin/ # Server startup scripts
├── public/ # Static assets
│ ├── images/ # Image storage
│ ├── javascripts/ # Client-side JavaScript
│ └── stylesheets/ # CSS files
├── routes/ # Route handlers
│ ├── index.js # Main routes
│ ├── multer.js # File upload configuration
│ ├── post.js # Post model
│ └── users.js # User model and routes
└── views/ # EJS templates
├── error.ejs # Error page
├── feed.ejs # Image feed page
├── index.ejs # Landing/signup page
├── login.ejs # Login page
└── profile.ejs # User profile page
- Node.js
- MongoDB
- Google OAuth credentials (for Google login)
- Clone the repository
- Install dependencies:
npm install - Create a
.envfile based on the provided.env.exampletemplate:# Copy the example file cp .env.example .env # Then edit .env with your actual credentials - Update the
.envfile with your actual MongoDB URI and Google OAuth credentials - Start the application:
npm start - Visit
http://localhost:3000in your browser
- Image likes and comments
- User following system
- Advanced search functionality
- Image categories and tags
- Responsive image optimization
- Email: vikashsio793@gmail.com
- Phone: +91-8591861918
- Address: Colaba, Mumbai, India