/InVITe

InVITe event management system simplifies event organization, registration management, and ticket booking for organizers and attendees. Create and customize events, track attendees, and monitor check-in and check-out times easily and more.

Primary LanguageJavaScript

InVITe | Event Management System

Welcome to our automated event management system, where you can easily organize events, manage registrations, and book tickets, all with just a few clicks. This system provides a hassle-free experience for both event organizers and attendees, making event management a breeze.

Features 🎯

  • Event Creation: Create and customize events with ease.
  • Registration Management: Allow attendees to register for events online.
  • Ticket Booking: Enable attendees to book tickets for events online.
  • Email Notifications: Send automated emails for event registrations and bookings, which are sent directly to attendees' email addresses.
  • Attendee Tracking: Keep track of attendees and monitor check-in and check-out times.
  • Admin Management: Product managers can add admins that can create and manage events.

Technologies Used

  • Next.js: A React-based framework for building server-side rendered applications.
  • Tailwind CSS: A utility-first CSS framework for building responsive and customizable user interfaces.
  • JavaScript: A programming language used for client-side and server-side scripting.
  • Node.js: A JavaScript runtime environment used for building scalable and efficient server-side applications.
  • Express: A minimalist web framework for building server-side applications with Node.js.
  • MongoDB: A NoSQL document-oriented database used for storing and retrieving data.

Architecture

Our event management system is built on a microservice architecture. This allows for scalability, flexibility, and efficient communication between different components of the system. The interactions between client and server take place via API calls, providing a seamless experience for both the organizers and attendees.

🚀 Getting Started (Locally)

Download or clone the repository

You can download the zip file of the repository or use the following command in your terminal to clone the repository:

git clone https://github.com/d17012002/event-management

Navigate to the project's root directory

Once you have downloaded or cloned the repository, navigate to the project's root directory. The project consists of three folders: client, server, and developer.

Install dependencies

Before starting the servers, make sure to install the dependencies by running the command:

npm install
in all three folders: client, server, and developer.

Set up environment variables

Before running the servers, you need to set up the following environment variables:

For the client-side:

Create a .env.local file in the client folder with the following variables:

NEXT_PUBLIC_BASE_URL - the base URL of the API server (e.g. http://localhost:3000)
NEXT_PUBLIC_STRIPE_KEY - the public key for your Stripe account
NEXT_PUBLIC_API_URL - the URL of the API server (e.g. http://localhost:5000)

For the server-side:

Create a .env file in the server folder with the following variables:

MONGO_ATLAS_URI - the connection string for your MongoDB Atlas database
STRIPE_KEY - the secret key for your Stripe account
NODE_MAILER_USER - the email address to use for sending email notifications
NODE_MAILER_PASS - the password for the email address to use for sending email notifications
JWT_SECRET - the secret key to use for JWT token generation

Start the servers

To start the servers, run the following commands:

For the client-side:

npm run dev

For the server-side:

nodemon index.js

For the developer-side:

npm run dev

Note: Make sure to follow the exact steps mentioned above to avoid any errors or issues.


👉 How to use the site

Our event management system has three main components:
  • User: Users can sign in or sign up and access the user dashboard to view and register for events.
  • Admin: Admins can log in to create events, view their events, and manage registrations for their events.
  • Developer: Developers can access the developer site to create new admins (later this feature will be available only to product managers).

👥 Our Team

Our team consists of:

🙌 Contributions

We welcome contributions to our project. If you have any suggestions or improvements, feel free to submit a pull request or open an issue.

📜 License

This project is licensed under the MIT License - see the LICENSE.md file for details.