Throbuzz is a social media website built using Next.js for both frontend and backend. It allows users to post, follow, and interact with other users' posts and profiles.
- Next.js: A powerful React framework that enables server-side rendering and static site generation, providing a seamless development experience for both frontend and backend.
- Axios: A promise-based HTTP client for the browser and Node.js, used for making API requests to fetch and send data.
- Bcryptjs: A library to help hash passwords, ensuring secure storage of user credentials.
- Cloudinary: A cloud service that offers a solution for storing and managing images and videos, providing easy integration and powerful features.
- Framer Motion: A production-ready motion library for React, used to create smooth animations and transitions.
- Lucide Icons: A collection of simple and consistent icons, used to enhance the visual appeal of the application.
- MongoDB: A NoSQL database, used with Mongoose to provide a flexible and scalable data storage solution.
- Nodemailer: A module for Node.js applications to send emails, used for functionalities like email verification.
- Zod: A TypeScript-first schema declaration and validation library, used to ensure data integrity and validation.
- Zustand: A small, fast, and scalable state management solution for React applications.
- Other technologies: Various other libraries and tools that contribute to the overall functionality and performance of the application.
- User Posts: Users can create and share posts, follow other users, and view posts from people they follow. This feature encourages interaction and content sharing within the community.
- Feed: The feed is divided into three sections:
- Recent: Displays the most recent posts from all users.
- Following: Shows posts from users that the logged-in user follows.
- Popular: Highlights posts that have gained significant engagement and popularity.
- Post Management: Users can edit their posts and profiles, like and comment on posts, and reply to comments. This feature provides flexibility and interaction opportunities.
- Profile Customization: Users can personalize their profiles by adding links to other social media accounts, uploading profile pictures, and writing bios. This helps users express their identity and connect with others.
- Search: The search functionality allows users to find posts and other users. Search results are sorted by popularity, making it easier to discover trending content and influential users.
- Account Creation: Users can create an account using their email. An OTP (One-Time Password) is sent for verification, ensuring secure account creation.
- UI: The user interface is designed to be visually appealing, with options to change themes and ensure responsiveness across different devices.
To get started with Throbuzz, follow these steps:
- Clone the repository.
- Install dependencies using
npm install
. - Set up environment variables for MongoDB, Cloudinary, and other services.
- Run the development server using
npm run dev
.
Contributions are welcome! Please open an issue or submit a pull request.
This project is licensed under the MIT License.