Campus Buzz is a comprehensive social media platform developed using Next.js and other modern technologies. It provides a rich set of features for users to engage, interact, and share content seamlessly, tailored specifically for college/university communities.
- Make a post
- Comment on posts
- Post an image
- Post a video
- Create communities
- Admin dashboard
- Featured Users
- Infinite scroll
- Save posts
- Like/Dislike a post
- Edit profile
- Change profile photo
- Random Name Suggestion
- Live streaming
- Get verified (blue tick)
- Next Auth: Authentication
- NeonTech: PostgreSQL db
- React-HLS-Player: Video playback
- React-hot-toast: Toast notifications
- Pusher: Real-time features
- UploadThig: upload images and videos
- Turborepo (monorepo)
- Next.js
- TypeScript
- Prisma
- Neontech POSTGRESQL
- Firebase Cloud Messaging
- Uploadthing object storage
The application follows a monorepo architecture and utilizes various technologies for different components:
- Image/Video Upload: Media files are uploaded to Uploadthing object storage, and their URLs are stored in the database.
- Real-time Push Notification: Pusher.js is used for real-time connection, enabling push notifications to clients.
- General Functioning: The server handles all CRUD operations related to posts, feeds, communities, etc., using Prisma and a Neontech POSTGRESQL database.
The project development follows an iterative approach, with Priority 0 features being the core functionality:
- Make a post
- Comment on post
- Post an image
- Post a video
- Create communities
- Like/Dislike
- Save Posts
- One on One Chat
- View/Edit your profile
- Follow people / Get Followers
Other features will be added as the development progresses.
To set up the project locally, follow these steps:
- Clone the repository:
git clone https://github.com/maheshsp1809/campus-buzz.git
- Install dependencies:
npm install
- Set up environment variables (refer to the
.env.example
file) - Start the development server:
npm run dev
Contributions to Campus Buzz are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.