diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..7cefe37
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 Yash Ainapure
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/README.md b/README.md
index bd31765..2e35b5c 100644
--- a/README.md
+++ b/README.md
@@ -130,6 +130,13 @@ We are grateful to all the contributors who have helped improve this project. Yo
Yash Kumar Saini
+
+
+
+
+ Gaurav Bomble
+
+
@@ -144,6 +151,15 @@ We are grateful to all the contributors who have helped improve this project. Yo
RISHIRAJ MUKHERJEE
+
+
+
+
+ SAGI VENKATA NAGA GOPAL VARMA
+
+
+
+
@@ -152,40 +168,47 @@ We are grateful to all the contributors who have helped improve this project. Yo
-
-
+
+
- Aryan Ramesh Jain
+ Radhey patil
-
-
-
-
+
+
- Gaurav Bomble
+ im-amanjai
-
-
+
+
- Krish Chothani
+ Zayed
-
-
+
+
- MANI
+ Vivek Rawat
-
-
+
+
- Sourabh Singh Rawat
+ Vishwas M D
+
+
+
+
+
+
+
+
+ Vinay Anand Lodhi
@@ -196,33 +219,61 @@ We are grateful to all the contributors who have helped improve this project. Yo
-
-
+
+
- Vishwas M D
+ Sourabh Singh Rawat
+
+
+
+
+
+
+ MANI
+
+
+
+
+
+
+ Laxmi Ray
+
+
+
+
+
+
+ Krish Chothani
-
-
+
+
- Zayed
+ Hetvi_26
-
-
+
+
- im-amanjai
+ Aryan Ramesh Jain
-
-
+
+
- Radhey patil
+ Anneshu Nag
+
+
+
+
+
+
+ Aastha Singh
diff --git a/backend/.env_sample b/backend/.env_sample
new file mode 100644
index 0000000..69070a8
--- /dev/null
+++ b/backend/.env_sample
@@ -0,0 +1,2 @@
+TURSO_AUTH_TOKEN="YOUR_TURSO_AUTH_TOKEN"
+TURSO_DATABASE_URL="YOUR_TURSO_DATABASE_URL"
\ No newline at end of file
diff --git a/backend/dist/config/const.js b/backend/dist/config/const.js
index 294a6a0..7c1c050 100644
--- a/backend/dist/config/const.js
+++ b/backend/dist/config/const.js
@@ -23,6 +23,7 @@ exports.MESSAGES = {
ERROR_CREATING_EVENT: "An error occurred while creating the event.",
FETCH_EVENTS_SUCCESS: "Events fetched successfully.",
UPDATE_EVENT_SUCCESS: "Event updated successfully.",
+ ERROR_FETCHING_EVENT: "An error occurred while fetching the single event.",
},
GENERIC: {
INTERNAL_SERVER_ERROR: "Internal Server Error",
diff --git a/backend/dist/controllers/event.controller.js b/backend/dist/controllers/event.controller.js
index 922a12e..eaddfbd 100644
--- a/backend/dist/controllers/event.controller.js
+++ b/backend/dist/controllers/event.controller.js
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
-exports.createQuiz = exports.getAllEventData = exports.createEvent = exports.updateEvent = exports.getClubEventData = exports.deleteEvent = void 0;
+exports.getSingleEventData = exports.createQuiz = exports.getAllEventData = exports.createEvent = exports.updateEvent = exports.getClubEventData = exports.deleteEvent = void 0;
const database_config_1 = require("../config/database.config");
const const_1 = require("../config/const");
const logger_1 = __importDefault(require("../config/logger"));
@@ -154,3 +154,22 @@ const createQuiz = (req, res) => __awaiter(void 0, void 0, void 0, function* ()
}
});
exports.createQuiz = createQuiz;
+const getSingleEventData = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
+ const eventId = Number(req.query.EventID);
+ try {
+ const event = yield database_config_1.prisma.event.findUnique({
+ where: { EventID: eventId },
+ });
+ if (!event) {
+ logger_1.default.warn(`Event not found for EventID: ${eventId}`);
+ return res.status(404).json({ error: const_1.MESSAGES.EVENT.EVENT_NOT_FOUND });
+ }
+ logger_1.default.info(`Fetched event data for EventID: ${eventId}`);
+ res.json(event);
+ }
+ catch (error) {
+ logger_1.default.error(`${const_1.MESSAGES.EVENT.ERROR_FETCHING_EVENT}: ${error}`);
+ res.status(500).json({ error: const_1.MESSAGES.EVENT.ERROR_FETCHING_EVENT });
+ }
+});
+exports.getSingleEventData = getSingleEventData;
diff --git a/backend/dist/routes/event.routes.js b/backend/dist/routes/event.routes.js
index c1fda77..2202d61 100644
--- a/backend/dist/routes/event.routes.js
+++ b/backend/dist/routes/event.routes.js
@@ -6,6 +6,7 @@ const router = (0, express_1.Router)();
router.delete("/deleteEvent", event_controller_1.deleteEvent);
//get all events
router.get("/getAllEventData", event_controller_1.getAllEventData);
+router.get("/getSingleEventData", event_controller_1.getSingleEventData);
//get all events for a club
router.get("/getClubEventData", event_controller_1.getClubEventData);
router.put("/update-event", event_controller_1.updateEvent);
diff --git a/frontend/index.html b/frontend/index.html
index 133b96e..4e992a9 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -4,6 +4,8 @@
+
+
dypcetclubs.live
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 50f19cb..b0177ab 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -6704,4 +6704,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/frontend/package.json b/frontend/package.json
index 65a4ca9..3f8458d 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -15,6 +15,7 @@
"@fortawesome/free-solid-svg-icons": "^6.6.0",
"@fortawesome/react-fontawesome": "^0.2.2",
"@prisma/client": "^5.19.0",
+ "@radix-ui/react-accordion": "^1.2.1",
"@radix-ui/react-slot": "^1.1.0",
"@tabler/icons-react": "^3.13.0",
"@tanstack/react-form": "^0.29.2",
@@ -32,6 +33,7 @@
"react-icons": "^5.3.0",
"react-router-dom": "^6.26.1",
"react-spinners": "^0.14.1",
+ "styled-components": "^6.1.13",
"tailwind-merge": "^2.5.2",
"tailwindcss-animate": "^1.0.7"
},
diff --git a/frontend/src/App.css b/frontend/src/App.css
index e2fd608..1ed7a0b 100644
--- a/frontend/src/App.css
+++ b/frontend/src/App.css
@@ -21,5 +21,30 @@
}
+html {
+ overflow-y: scroll;
+ scrollbar-width: none;
+}
-
\ No newline at end of file
+body {
+ overflow-y: scroll;
+ height: 100vh;
+ margin: 0;
+ scrollbar-width: none;
+ -ms-overflow-style: none;
+}
+
+html::-webkit-scrollbar,
+body::-webkit-scrollbar {
+ width: 0;
+ display: none;
+}
+
+.scrollable-element {
+ overflow-y: scroll;
+ scrollbar-width: none;
+}
+
+.scrollable-element::-webkit-scrollbar {
+ width: 0;
+}
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index 0a1209b..0193451 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -1,6 +1,6 @@
import { useState } from "react";
import { Route, Routes, BrowserRouter as Router, Outlet } from "react-router-dom";
-import { Navbar } from "./appComponents/Navbar.tsx";
+import { Navbar } from "./appComponents/Navbar"; // Clean import
import Hero from "./appComponents/Herosection";
import Clubs from "./appComponents/Clubs";
import Particles from "@/components/magicui/particles";
@@ -13,10 +13,10 @@ import { ClubAdmin } from "./appComponents/ClubAdmin";
import "./App.css";
import QuizPage from "./appComponents/QuizPage";
import About from "./appComponents/About";
-import Footer from "./appComponents/Footer.tsx"
-import ClubsPage from "./appComponents/ClubsPage.tsx"
+import Footer from "./appComponents/Footer.tsx";
+import ClubsPage from "./appComponents/ClubsPage.tsx";
import EventsPage from "./appComponents/EventsPage.tsx";
-import Features from "./appComponents/Features.js"
+import Features from "./appComponents/Features.js";
import HiringPage from "./appComponents/HiringPage.tsx";
import PrivacyPolicy from "./appComponents/PrivacyPolicy.tsx";
import Terms from "./appComponents/Terms.tsx";
@@ -33,7 +33,6 @@ function App() {
return (
-
-
+
-
+
{showPopup && }
{showLoginPage && }
@@ -65,12 +64,12 @@ function App() {
} />
} />
- } />
- }/>
- }/>
- }/>
- }/>
- }/>
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
);
diff --git a/frontend/src/appComponents/EventCard.tsx b/frontend/src/appComponents/EventCard.tsx
index edc0712..4bd2371 100644
--- a/frontend/src/appComponents/EventCard.tsx
+++ b/frontend/src/appComponents/EventCard.tsx
@@ -10,7 +10,7 @@ type EventCardProps = {
const EventCard: React.FC = ({ name, description, time }) => {
return (
-
+
{name}
{description}
diff --git a/frontend/src/appComponents/EventCreation.tsx b/frontend/src/appComponents/EventCreation.tsx
index 3557e2a..4234bce 100644
--- a/frontend/src/appComponents/EventCreation.tsx
+++ b/frontend/src/appComponents/EventCreation.tsx
@@ -4,7 +4,11 @@ import type { FieldApi } from "@tanstack/react-form";
import { useAuth } from "../context/AuthContext";
import axios from "./axiosInstance";
import { useNavigate } from "react-router-dom";
-
+import { ImCross } from "react-icons/im";
+import { useRef } from "react";
+import { MdDelete } from "react-icons/md";
+import { GrUpdate } from "react-icons/gr";
+import { CgMoreO } from "react-icons/cg";
// interface Event {
// ClubID: string;
// EventName: string;
@@ -32,6 +36,9 @@ const EventCreation: React.FC = () => {
const [loading, setLoading] = useState({ state: false, id: null });
const [updateOrSubmitState, setUpdateOrSubmitState] = useState(false);
const [eventId, setEventId] = useState(null);
+ const [showForm, setShowForm] = useState(false);
+ const formRef = useRef
(null); // Create a reference to the form
+
const navigate =useNavigate();
const form = useForm({
@@ -86,6 +93,7 @@ const EventCreation: React.FC = () => {
if (response.status == 200) {
// setEventData([...eventData, response.data]);
form.reset();
+ setShowForm(false);
// Find the event in the eventData array and replace it with the updated event
const updatedEventData = eventData.map((event: any) => {
@@ -156,237 +164,273 @@ const EventCreation: React.FC = () => {
return;
}
};
+ const handleCreateEventClick = () => {
+ setShowForm(true);
+ setTimeout(() => {
+ formRef.current?.scrollIntoView({ behavior: "smooth" });
+ formRef.current?.classList.add("highlight");
+ setTimeout(() => formRef.current?.classList.remove("highlight"), 2000); // Remove highlight after 2 seconds
+ }, 100);
+ };
return (
-
-
+ <>
+
+
+
+
+ {" "}
+ Create new Event{" "}
+
+
+