Skip to content

Commit 57e6ef8

Browse files
committed
README.md added
1 parent b24d446 commit 57e6ef8

File tree

2 files changed

+61
-2
lines changed

2 files changed

+61
-2
lines changed

README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Enrollments Admin Panel
2+
3+
An **Admin Panel** for managing enrollment interview slots, panels, rounds, and quiz.
4+
This application allows administrators to create and manage interview slots efficiently while automatically preventing scheduling conflicts.
5+
6+
---
7+
8+
## Features
9+
10+
- 🔐 Admin authentication
11+
- 🗓 Create interview slots with date & time
12+
- ⏱ Automatic clash detection (date, time, domain, round, panel)
13+
- 🧑‍⚖️ Panel-wise slot management
14+
- 🧠 Domain & round based filtering
15+
- 💭 Question addition for quiz
16+
- 👥 Capacity management per slot
17+
---
18+
19+
## Tech Stack
20+
21+
**Frontend**
22+
- React
23+
- Axios
24+
- Tailwind CSS / CSS
25+
26+
---
27+
28+
29+
## Backend Repository Link
30+
https://github.com/IEEECS-VIT/enrollments-2025-backend
31+
32+
33+
34+
## How to Contribute
35+
36+
- Fork the repository
37+
- Create a new branch (git checkout -b feature/your-feature)
38+
- Commit your changes
39+
- Push to your branch
40+
- Open a Pull Request
41+
42+
43+
## Installation & Setup
44+
45+
```bash
46+
git clone https://github.com/d-e-v-14/enrollments-admin.git
47+
cd frontend
48+
npm install
49+
npm run dev
50+

frontend/src/pages/createSlot.jsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,17 @@ const createSlot = async () => {
4848
if (!date || !startTime || !endTime) return;
4949

5050
const clash = slots.find((s) => {
51-
const sameDate = s.iid.split("_")[1] === date;
51+
const slotDate = s.iid.split("_")[1];
52+
53+
const sameDate = slotDate === date;
5254
const samePanel = Number(s.panel) === panel;
55+
const sameRound = Number(s.interview_round) === Number(round);
56+
const sameDomain = s.domain === domain;
5357

54-
if (!sameDate || !samePanel) return false;
58+
// All conditions must match
59+
if (!sameDate || !samePanel || !sameRound || !sameDomain) {
60+
return false;
61+
}
5562

5663
const [existingStart, existingEnd] = s.time_slot.split(" - ");
5764

@@ -98,6 +105,7 @@ const createSlot = async () => {
98105
};
99106

100107

108+
101109
if (!authenticated) {
102110
return (
103111
<div className="min-h-screen bg-black text-white flex justify-center items-center p-10">
@@ -220,6 +228,7 @@ const createSlot = async () => {
220228
<p><b>Time:</b> {s.time_slot}</p>
221229
<p><b>Panel:</b> {s.panel}</p>
222230
<p><b>Round:</b> {round}</p>
231+
<p><b>Domain:</b> {domain}</p>
223232
</div>
224233
))}
225234

0 commit comments

Comments
 (0)