Skip to content

Commit d633733

Browse files
Update README.md
1 parent e9f8d18 commit d633733

1 file changed

Lines changed: 127 additions & 189 deletions

File tree

README.md

Lines changed: 127 additions & 189 deletions
Original file line numberDiff line numberDiff line change
@@ -1,218 +1,156 @@
1-
# Univent - College Event Management System
1+
# Univent - Real-Time College Event Management System (MERN Stack)
22

33
<div align="center">
4-
<img src="frontend/public/logo3.jpg" alt="Univent Logo" width="800" />
4+
  <img src="frontend/public/logo3.jpg" alt="Univent - College Event Management System Logo" width="800" />
55
</div>
66

7-
## Overview
8-
Univent is a real-time event management platform designed specifically for college environments. It enables seamless organization and participation in college events, featuring live updates and interactive leaderboards.
7+
<p align="center">
8+
  <a href="https://github.com/AbhishekBalija/Univent/blob/main/LICENSE"><img src="https://img.shields.io/github/license/AbhishekBalija/Univent?style=for-the-badge" alt="License"></a>
9+
  <a href="#"><img src="https://img.shields.io/badge/status-active-success.svg?style=for-the-badge" alt="Status"></a>
10+
  <a href="#"><img src="https://img.shields.io/github/last-commit/AbhishekBalija/Univent?style=for-the-badge" alt="Last Commit"></a>
11+
</p>
912

10-
## Key Features
11-
- 🎫 Event Management & Registration
12-
- 📢 Real-time Announcements
13-
- 🏆 Live Leaderboard Updates
14-
- 👥 Role-based Access Control
15-
- 📱 Real-time Notifications
16-
- 📊 Event Analytics
13+
## 🚀 Overview
14+
Univent is a comprehensive, real-time event management platform designed specifically for the dynamic environment of colleges and universities. Built on the **MERN stack (MongoDB, Express.js, React.js, Node.js)** with a **microservice architecture**, it provides a centralized system for organizing and participating in college fests, workshops, and technical events. The platform features live announcements and interactive leaderboards to boost engagement and streamline communication between organizers and participants.
1715

18-
<div align="center">
19-
<img src="frontend/public/univent-readme-images/event-page.png" alt="Event Management" width="600" />
20-
<p><em>Event Management Interface</em></p>
21-
</div>
22-
23-
## Technology Stack
24-
- **Frontend**: React.js with TailwindCSS
25-
- **Backend**: Node.js with Express.js
26-
- **Database**: MongoDB
27-
- **Real-time Communication**: Socket.IO
28-
- **Authentication**: JWT-based
16+
This open-source project is a perfect example of a full-stack web application using modern technologies like **Socket.IO for real-time communication** and **JWT for secure authentication**.
2917

30-
## Architecture
31-
Univent follows a microservice architecture with four core services:
18+
## ✨ Key Features
19+
Univent is packed with features to create a seamless event experience:
3220

33-
- **Authentication Service**: User management and authentication
34-
- **Event Service**: Event creation and management
35-
- **Notification Service**: Real-time announcements
36-
- **Leaderboard Service**: Participant scoring and rankings
37-
38-
## Getting Started
39-
40-
### Prerequisites
41-
- Node.js (v14 or higher)
42-
- MongoDB (v4.4 or higher)
43-
- npm or yarn
44-
45-
### Installation
46-
47-
1. Clone the repository
48-
```bash
49-
git clone https://github.com/AbhishekBalija/Univent.git
50-
cd univent
51-
```
52-
53-
2. Install dependencies
54-
```bash
55-
# Install frontend dependencies
56-
cd frontend
57-
npm install
58-
59-
# Install backend dependencies
60-
cd ../backend
61-
cd auth-service && npm install
62-
cd ../event-service && npm install
63-
cd ../notification-service && npm install
64-
cd ../leaderboard-service && npm install
65-
```
66-
67-
3. Environment Setup
68-
```bash
69-
# Create .env files in each service directory
70-
# Example for auth-service:
71-
MONGODB_URI=mongodb://localhost:27017/univent
72-
JWT_SECRET=your_jwt_secret
73-
PORT=8001
74-
```
75-
76-
4. Start the services
77-
```bash
78-
# Start all services using Docker
79-
docker-compose up
80-
81-
# Or start services individually
82-
cd auth-service && npm run dev
83-
cd event-service && npm run dev
84-
cd notification-service && npm run dev
85-
cd leaderboard-service && npm run dev
86-
cd frontend && npm start
87-
```
88-
89-
## User Roles
90-
91-
| Role | Access Level |
92-
|------|-------------|
93-
| Admin | Full system access, user management |
94-
| Organizer | Event creation and management |
95-
| Participant | Event registration and participation |
21+
- 🎫 **Full Event Lifecycle Management**: Create, update, delete, and manage events.
22+
- 📝 **Easy Participant Registration**: Simple, one-click event registration for students.
23+
- 📢 **Real-time Announcements**: Push live updates and announcements to all users instantly.
24+
- 🏆 **Live Gamified Leaderboards**: Dynamic leaderboards that update scores in real-time to foster competition.
25+
- 👥 **Role-based Access Control (RBAC)**: Distinct roles for Admins, Organizers, and Participants with specific permissions.
26+
- 📱 **Instant Notifications**: Real-time notifications for event registrations, updates, and more.
27+
- 📊 **Event Analytics Dashboard**: Organizers can view registration statistics and engagement metrics.
9628

9729
<div align="center">
98-
<table>
99-
<tr>
100-
<td align="center">
101-
<img src="frontend/public/univent-readme-images/admin-dashboard.png" alt="Admin Dashboard" width="250" /><br>
102-
<em>Admin Dashboard</em>
103-
</td>
104-
<td align="center">
105-
<img src="frontend/public/univent-readme-images/organizer-dashboard.png" alt="Organizer Dashboard" width="250" /><br>
106-
<em>Organizer Dashboard</em>
107-
</td>
108-
<td align="center">
109-
<img src="frontend/public/univent-readme-images/participant-home.png" alt="Participant View" width="250" /><br>
110-
<em>Participant Home</em>
111-
</td>
112-
</tr>
113-
</table>
30+
  <img src="frontend/public/univent-readme-images/event-page.png" alt="Screenshot of the main event management page in Univent" width="600" />
31+
  <p><em>Event Management Interface for College Fests</em></p>
11432
</div>
11533

116-
## API Services
34+
## 🛠️ Technology Stack
35+
This project uses a modern and scalable technology stack:
11736

118-
### Authentication Service (Port: 8001)
119-
- User registration and login
120-
- JWT token management
121-
- Role-based access control
37+
- **Frontend**: **React.js** with **TailwindCSS** for a responsive and beautiful UI.
38+
- **Backend**: **Node.js** with **Express.js** for building robust APIs.
39+
- **Database**: **MongoDB** with Mongoose for flexible, schema-based data storage.
40+
- **Real-time Communication**: **Socket.IO** for WebSocket-based live updates.
41+
- **Authentication**: **JWT (JSON Web Tokens)** for secure, stateless authentication.
42+
- **Containerization**: **Docker** and Docker Compose for easy setup and deployment.
12243

123-
<div align="center">
124-
<img src="frontend/public/univent-readme-images/login-page.png" alt="Authentication" width="400" />
125-
<p><em>User Authentication Interface</em></p>
126-
</div>
127-
128-
### Event Service (Port: 8002)
129-
- Event CRUD operations
130-
- Registration management
131-
- Participant tracking
132-
133-
<div align="center">
134-
<img src="frontend/public/univent-readme-images/organizer-eventpage.png" alt="Event Management" width="400" />
135-
<p><em>Event Management Interface</em></p>
136-
</div>
137-
138-
### Notification Service (Port: 8003)
139-
- Real-time announcements
140-
- Event updates
141-
- System notifications
142-
143-
<div align="center">
144-
<img src="frontend/public/univent-readme-images/announcement-page.png" alt="Announcements" width="400" />
145-
<p><em>Announcements Interface</em></p>
146-
</div>
147-
148-
### Leaderboard Service (Port: 8004)
149-
- Score tracking
150-
- Ranking calculations
151-
- Achievement management
44+
## 🏛️ System Architecture
45+
Univent is designed using a **microservice architecture** to ensure scalability, maintainability, and independent deployment of services. An **API Gateway** acts as a single entry point for all client requests, routing them to the appropriate downstream service.
15246

153-
<div align="center">
154-
<img src="frontend/public/univent-readme-images/leaderboard-page.png" alt="Leaderboard" width="400" />
155-
<p><em>Leaderboard Interface</em></p>
156-
</div>
47+
- **Authentication Service**: Manages user registration, login, and JWT token generation.
48+
- **Event Service**: Handles all CRUD operations for events and manages participant registrations.
49+
- **Notification Service**: Powers real-time announcements and user notifications via Socket.IO.
50+
- **Leaderboard Service**: Manages participant scoring, ranking calculations, and live leaderboard updates.
15751

158-
## Real-time Features
159-
The platform uses Socket.IO for real-time updates including:
160-
- Live announcements
161-
- Event status changes
162-
- Leaderboard updates
163-
- Registration notifications
52+
## 🏁 Getting Started
16453

165-
## User Settings & Profile
54+
### Prerequisites
55+
- Node.js (v14 or higher)
56+
- MongoDB (v4.4 or higher)
57+
- npm or yarn
58+
- Docker (optional, for containerized setup)
59+
60+
### Installation Guide
61+
62+
1. **Clone the repository:**
63+
```bash
64+
git clone [https://github.com/AbhishekBalija/Univent.git](https://github.com/AbhishekBalija/Univent.git)
65+
cd univent
66+
```
67+
68+
2. **Install server and client dependencies:**
69+
```bash
70+
# Install frontend dependencies
71+
cd frontend
72+
npm install
73+
74+
# Install backend dependencies for each microservice
75+
cd ../backend
76+
cd auth-service && npm install
77+
cd ../event-service && npm install
78+
cd ../notification-service && npm install
79+
cd ../leaderboard-service && npm install
80+
```
81+
82+
3. **Environment Variables Setup:**
83+
Create a `.env` file in each service's root directory (`auth-service`, `event-service`, etc.) and add the required environment variables.
84+
```bash
85+
# Example for auth-service/.env:
86+
MONGODB_URI=mongodb://localhost:27017/univent
87+
JWT_SECRET=your_super_secret_jwt_key
88+
PORT=8001
89+
```
90+
91+
4. **Run the Application:**
92+
```bash
93+
# Option 1: Start all services using Docker (Recommended)
94+
docker-compose up
95+
96+
# Option 2: Start each service and the frontend individually
97+
# Terminal 1: Auth Service
98+
cd backend/auth-service && npm run dev
99+
# Terminal 2: Event Service
100+
cd backend/event-service && npm run dev
101+
# ...and so on for other services
102+
103+
# Terminal 5: Frontend
104+
cd frontend && npm start
105+
```
106+
107+
## 👤 User Roles and Permissions
108+
109+
| Role | Access Level | Responsibilities |
110+
|:--- |:--- |:--- |
111+
| **Admin** | Full system access | Manages users, roles, and system-wide settings. |
112+
| **Organizer** | Event-level access | Creates and manages their own events, tracks participants, makes announcements. |
113+
| **Participant** | Basic access | Registers for events, views leaderboard, receives notifications. |
166114
167115
<div align="center">
168-
<table>
169-
<tr>
170-
<td align="center">
171-
<img src="frontend/public/univent-readme-images/userprofile-page.png" alt="User Profile" width="250" /><br>
172-
<em>User Profile</em>
173-
</td>
174-
<td align="center">
175-
<img src="frontend/public/univent-readme-images/usersettings-page.png" alt="User Settings" width="250" /><br>
176-
<em>User Settings</em>
177-
</td>
178-
</tr>
179-
</table>
116+
  <table>
117+
    <tr>
118+
      <td align="center">
119+
        <img src="frontend/public/univent-readme-images/admin-dashboard.png" alt="Admin Dashboard for User Management" width="250" /><br>
120+
        <em>Admin Dashboard</em>
121+
      </td>
122+
      <td align="center">
123+
        <img src="frontend/public/univent-readme-images/organizer-dashboard.png" alt="Organizer Dashboard for Event Management" width="250" /><br>
124+
        <em>Organizer Dashboard</em>
125+
      </td>
126+
      <td align="center">
127+
        <img src="frontend/public/univent-readme-images/participant-home.png" alt="Participant Home Page showing available events" width="250" /><br>
128+
        <em>Participant Home</em>
129+
      </td>
130+
    </tr>
131+
  </table>
180132
</div>
181133
182-
## System Administration
134+
## 📂 Project Structure
135+
The repository is organized into a `frontend` directory for the React client and a `backend` directory containing the microservices.
183136
184-
<div align="center">
185-
<table>
186-
<tr>
187-
<td align="center">
188-
<img src="frontend/public/univent-readme-images/admin-usermanagement.png" alt="User Management" width="250" /><br>
189-
<em>User Management</em>
190-
</td>
191-
<td align="center">
192-
<img src="frontend/public/univent-readme-images/sys-settings.png" alt="System Settings" width="250" /><br>
193-
<em>System Settings</em>
194-
</td>
195-
</tr>
196-
</table>
197-
</div>
198-
199-
## Project Structure
200137
```
201138
univent/
202-
├── frontend/ # React frontend
139+
├── frontend/ # React.js client application
203140
│ ├── src/
204-
│ │ ├── components/ # Reusable components
205-
│ │ ├── pages/ # Page components
206-
│ │ ├── services/ # API services
207-
│ │ └── context/ # React context
141+
│ ├── components/ # Reusable React components
142+
│ ├── pages/ # Page-level components
143+
│ └── services/ # API service functions
208144
209145
├── backend/
210-
│ ├── auth-service/ # Authentication
211-
│ ├── event-service/ # Event management
212-
│ ├── notification-service/ # Real-time notifications
213-
│ ├── leaderboard-service/ # Scoring system
214-
│ └── gateway/ # API Gateway
146+
│ ├── auth-service/ # Handles user authentication & roles
147+
│ ├── event-service/ # Handles event CRUD and registration
148+
│ ├── notification-service/ # Real-time notifications via Socket.IO
149+
│ ├── leaderboard-service/ # Manages scoring and ranking
150+
│ └── gateway/ # API Gateway (e.g., Express Gateway)
151+
152+
└── docker-compose.yml # Docker configuration for all services
215153
```
216154
217-
## License
218-
This project is licensed under the MIT License - see the LICENSE file for details.
155+
## 📜 License
156+
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.

0 commit comments

Comments
 (0)