Spools is a social media platform with functionalities similar to the Threads app, allowing users to create profiles, post images, like and reply to posts, and engage in real-time chatting. This project is built using the MERN stack, and it combines frontend, backend, and database operations for a seamless user experience.
- User Authentication: Sign up, login, and logout functionality with secure password hashing.
- Profile Management: Users can update their profile, including changing their name, username, bio, and profile picture.
- View Profiles: Users can view other user profiles and follow them.
- Create Posts: Users can upload images and create posts.
- Feed: Displays a feed of posts from followed users, similar to Pinterest and Instagram.
- Like & Reply to Posts: Users can like posts and add comments/replies to engage with the content.
- Save Posts: Users have the ability to save posts they like for later viewing.
- Direct Messaging: Users can chat with each other in real time.
- Seen Status: Messages are marked as seen when the recipient views them.
- Message Notifications: Receive notifications for new messages and replies.
- Light & Dark Mode: Custom-tailored light and dark mode styles for a better user experience.
- Responsive UI: Designed for all screen sizes, ensuring a consistent experience across desktop, tablet, and mobile devices.
- React: For building a dynamic and responsive user interface.
- Tailwind CSS: For styling the UI with custom colors, light/dark mode, and responsiveness.
- Chakra UI: For toast notifications and modals.
- Recoil: For state management.
- Cloudinary: For handling profile picture uploads.
- JavaScript (ES6+): For client-side logic and interactions.
- Node.js: For server-side logic.
- Express.js: For building the REST API.
- MongoDB: As a NoSQL database to store user data and posts.
- Mongoose: For data modeling and validation.
- JWT (JSON Web Tokens): For authentication and authorization.
- bcrypt.js: For hashing passwords.
- Git & GitHub: For version control.
- Postman: For testing API endpoints.
- Figma: For designing the UI layout and prototyping.
Follow these steps to get a local copy of the project up and running.
- Node.js installed on your machine.
- MongoDB installed locally or a MongoDB Atlas account.
- Cloudinary Account for handling image uploads.