Hive is a modern web application designed to enhance community engagement and social interactions. With a focus on user-friendly interfaces and robust functionality, Hive offers a range of features to create a dynamic social experience.
- Onboarding and Profile Creation: Effortlessly set up and customize user profiles.
- Communities: Create communities, join as members, and post thread (buzz) as a community member.
- Content Management (CRUD): Create, read, update, and delete threads (buzzes), Communities, and Profiles.
- Multi-level Comments: Engage in in-depth discussions with nested comments on buzzes.
- Search: Discover and connect with profiles and communities using the search functionality.
- Activity Feed: Stay updated with real-time notifications when other users comment on your buzz.
- Profile Tabs: Display a list of your buzzes and replies for easy access.
- Community Tabs: View buzzes made in the community and members of the community.
- Suggested Communities and Profiles: Explore new communities and profiles.
Hive.mp4
- TypeScript
- Next.js
- MongoDB
- Mongoose
- Tailwind CSS
- Shadcn UI
- React Hook
- Zod
- Svix
- Clerk
- UploadThing
- Vercel
To get this project up and running locally, follow these step-by-step instructions.
In order to install and run this project locally, you would need to have the following installed on your local machine.
Step 1: Clone this repository:
git clone https://github.com/alvinsjoy/Hive.git
cd Hive
Step 2:
Create an .env.local
file with the following values:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/signin
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/signup
MONGODB_URL=
UPLOADTHING_SECRET=
UPLOADTHING_APP_ID=
NEXT_CLERK_WEBHOOK_SECRET=
-
Create a Clerk account and set the
CLERK_PUBLISHABLE_KEY
andCLERK_SECRET_KEY
in.env.local
. -
Create a MongoDB database and connect it to the application, change the
MONGODB_URL
in.env.local
. -
Create an UploadThing account and set the
UPLOADTHING_SECRET
andUPLOADTHING_APP_ID
in.env.local
. -
Create a new webhook on Clerk Dashboard. Select the events, "organization", "organizationDomain", "organizationInvitation" and "organizationMembership". Get the signing secret and set it as
CLERK_WEBHOOK_SECRET
in.env.local
.
Step 3:
npm install
npm run dev
To fix a bug or enhance an existing module, follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b new-feature
) - Make the appropriate changes in the files
- Commit your changes (
git commit -am 'new feature'
) - Push to the branch (
git push origin new-feature
) - Create a Pull Request