Univibes is a comprehensive event management platform designed to streamline the process of organizing and managing events within a university campus. The platform consists of three main components: the backend service, the faculty admin panel, and the student panel. Each component plays a crucial role in ensuring a seamless experience for both event organizers and attendees.
- User Authentication: Secure user registration and login system with JWT-based authentication.
- Event Management: Create, update, and manage events with detailed information including title, description, images, and themes.
- Booking System: Efficient booking system for users to book seats for events, with real-time seat availability updates.
- Admin Panel: Admin functionalities to manage users, events, and auditoriums.
- Auditorium Management: Manage auditoriums with details like location, seating arrangement, and event schedules.
- Event Discovery: Browse and discover upcoming events by category.
- Profile Management: Manage user profile and view booking history.
Univibes stands out from other event management platforms due to its focus on university campuses, providing a tailored solution that addresses the unique needs of campus event management. The platform offers a seamless integration of user and admin functionalities, ensuring a smooth experience for both event organizers and attendees. Additionally, Univibes leverages modern technologies to provide a scalable and efficient solution.
- Node.js: For building a scalable and high-performance backend.
- Express.js: A minimal and flexible Node.js web application framework.
- MongoDB: A NoSQL database for storing user, event, and booking data.
- Mongoose: An ODM (Object Data Modeling) library for MongoDB and Node.js.
- JWT (JSON Web Tokens): For secure user authentication.
- Cloudinary: For managing and storing images.
- Nodemailer: For sending emails.
- Multer: For handling file uploads.
- Sharp: For image processing.
- Next.js: For building a scalable and high-performance frontend.
- React: A JavaScript library for building user interfaces.
- TypeScript: For type safety and better code maintainability.
- Axios: For making HTTP requests.
- React Toastify: For providing notifications.
- Swiper: For creating carousels and sliders.
These technologies ensure that Univibes is not only robust and scalable but also easy to maintain and extend.
- Node.js and npm installed on your system.
- MongoDB instance (local or cloud-based).
- Cloudinary account for image management.
-
Clone the repository:
git clone https://github.com/Pulkit1822/Univibes.git
-
Install dependencies for each component:
For the backend:
cd Univibes/Univibe_Backend npm install
For the faculty admin panel:
cd ../Univibe_Faculty npm install
For the student panel:
cd ../Univibe_Student npm install
-
Create a
.env
file in the root directory of each component and add the following environment variables:For the backend:
MONGO_URL=<your-mongodb-url> DB_NAME=<your-database-name> JWT_SECRET_KEY=<your-jwt-secret-key> JWT_REFRESH_SECRET_KEY=<your-jwt-refresh-secret-key> JWT_ADMIN_SECRET_KEY=<your-jwt-admin-secret-key> CLOUDINARY_CLOUD_NAME=<your-cloudinary-cloud-name> CLOUDINARY_API_KEY=<your-cloudinary-api-key> CLOUDINARY_API_SECRET=<your-cloudinary-api-secret>
For the faculty admin panel:
NEXT_PUBLIC_BACKEND_API=<your-backend-api-url> CLOUDINARY_CLOUD_NAME=<your-cloudinary-cloud-name> CLOUDINARY_API_KEY=<your-cloudinary-api-key> CLOUDINARY_API_SECRET=<your-cloudinary-api-secret>
For the student panel:
NEXT_PUBLIC_BACKEND_API=<your-backend-api-url>
-
Start the server for each component:
For the backend:
cd Univibes/Univibe_Backend npm start
For the faculty admin panel:
cd ../Univibe_Faculty npm start
For the student panel:
cd ../Univibe_Student npm start
The backend server will start on port 8000 by default, and the faculty admin panel and student panel will start on port 3000 by default.
We welcome contributions to improve Univibes. Here are some ways you can contribute:
- Bug Reports & Feature Requests: If you encounter any bugs or have feature requests, please create an issue on GitHub.
- Pull Requests: If you have a fix or a new feature, please fork the repository, create a new branch, and submit a pull request.
- Documentation: Improve the documentation to help others understand and use Univibes.
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes and commit them:
git commit -m "Add some feature"
- Push to the branch:
git push origin feature/your-feature-name
- Open a pull request on GitHub.
Thank you for contributing to Univibes!
If you have any feedback, suggestions, or questions regarding this repository, please feel free to open an issue or contact me below on any of the platforms you prefer 😊
Happy learning and coding!
If you find this repository useful, don't forget to star it! ⭐️