The Virtual Event Platform is a full-featured web application designed to support digital events and provide users with an interactive, online experience. This platform enables secure user access, sponsor booth management, real-time event tracking, and user insights, making it easy for event organizers to host engaging virtual events.
- User Authentication: Secure, role-based access for different user types (attendees, speakers, sponsors).
- Sponsor Booths: Sponsors can add resources like images, videos, and documents, viewable by attendees, with detailed tracking for each booth interaction.
- Event Management: Admins can create events, assign speakers, and manage schedules.
- Analytics Dashboard: Sponsors and organizers can monitor metrics such as booth visits and downloads for better user engagement insights.
- Bot Detection: Uses a passive CAPTCHA system that analyzes user behavior to differentiate bots from human users.
- Backend: Node.js, Express
- Database: MongoDB
- Authentication: JWT for secure, token-based login sessions
- Validation: Zod for backend data validation
-
Clone the Repository
git clone https://github.com/Prajan53/Virtual-Event-Webapp-Backend.git cd Virtual-Event-Webapp-Backend -
Install Backend Dependencies
npm install
-
Set Environment Variables
Create a
.envfile in the root directory and include:MONGODB_URI=<your_mongodb_connection_string> JWT_SECRET=<your_jwt_secret> -
Start the Server
npm start
The application should now be running on
http://localhost:3000.
To test the platform's features, use Postman or any other API client to make requests to the various endpoints listed below.
Endpoint: POST /api/sponsors/booth
Request Body:
{
"title": "Assignment",
"url": "https://example.com/resource.png",
"type": "image"
}Expected Response:
{
"message": "Your resources have been created successfully"
}-
Authentication
POST /api/auth/register- Register a new userPOST /api/auth/login- Log in with email and password
-
Sponsor Booths
POST /api/sponsors/booth- Add a new booth resource
-
Events
GET /api/events- Retrieve all eventsPOST /api/events- Create a new event (Admin only)
For more details on the available API endpoints, see the documentation in docs/ (or refer to in-code comments).
To contribute to this project:
- Fork the repository.
- Create a new branch (
feature/your-feature). - Commit your changes and push to your branch.
- Open a pull request, explaining the changes and their purpose.
This project is licensed under the MIT License.
This README provides essential information about your project and includes key sections for setup, usage, and contributions.