Skip to content
forked from d17012002/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.

Notifications You must be signed in to change notification settings

sakshgupta/InVITe

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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.

Topics

Resources

Stars

Watchers

Forks

Languages

  • JavaScript 98.1%
  • CSS 1.7%
  • HTML 0.2%