diff --git a/.vscode/settings.json b/.vscode/settings.json index 15f41e9..83fed32 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -10,5 +10,6 @@ "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" }, - "editor.wordWrap": "on" + "editor.wordWrap": "on", + "postman.settings.dotenv-detection-notification-visibility": false } diff --git a/app/page.tsx b/app/page.tsx index d7c4ccd..2bc433d 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,31 +1,28 @@ -"use client"; import Hero from "@/components/Hero"; import Testimonials from "@/components/Testimonials"; import ChapterSection from "@/components/ChapterSection"; import Image from "next/image"; -import { motion } from "framer-motion"; -import LogoHero from "@/public/Elixir-logo.png"; -import useEventApi from "@/hooks/useEventApi"; - -const Home = () => { - useEventApi(); +import HeroLogo from "@/public/Elixir-logo.webp"; +async function Home() { return (
- +
tect - +
); -}; +} export default Home; diff --git a/components/BackDrop/BackDrop.tsx b/components/BackDrop/BackDrop.tsx new file mode 100644 index 0000000..e2bb1ba --- /dev/null +++ b/components/BackDrop/BackDrop.tsx @@ -0,0 +1,28 @@ +import { Spotlight } from "../ui/Spotlight"; + +export default function BackDrop() { + return ( + <> +
+ + + +
+
+
+
+ + ); +} diff --git a/components/ChapterSection.tsx b/components/ChapterSection.tsx index 2a3d52b..d5af852 100644 --- a/components/ChapterSection.tsx +++ b/components/ChapterSection.tsx @@ -1,6 +1,6 @@ "use client"; -import { Chapters } from "@/data"; +import { Chapters } from "@/constants/constants"; import { PinContainer } from "./ui/Pin"; import Image from "next/image"; import Link from "next/link"; diff --git a/components/EventsCard.tsx b/components/EventsCard.tsx index d1d9de0..6a66b6c 100644 --- a/components/EventsCard.tsx +++ b/components/EventsCard.tsx @@ -46,7 +46,7 @@ export default function EventsCard({ className="text-neutral-500 dark:text-white" >
- { - return ( -
-

- My work experience -

- -
- {workExperience.map((card) => ( - - ))} -
-
- ); -}; - -export default memo(Experience); diff --git a/components/Footer.tsx b/components/Footer.tsx index e8e7eaa..79c8ef1 100644 --- a/components/Footer.tsx +++ b/components/Footer.tsx @@ -1,24 +1,11 @@ import { FaLocationArrow } from "react-icons/fa6"; - -import { socialMedia } from "@/data"; +import { socialMedia } from "@/constants/constants"; import MagicButton from "./MagicButton"; import Image from "next/image"; const Footer = () => { return (
- {/* background grid */} -
- Footer background grid -
-

Ready to take your skills to the @@ -60,6 +47,17 @@ const Footer = () => { ))}

+ {/* background grid */} +
+ Footer background grid +
); }; diff --git a/components/Testimonials.tsx b/components/Testimonials.tsx index e0a50e8..3d0fbea 100644 --- a/components/Testimonials.tsx +++ b/components/Testimonials.tsx @@ -1,8 +1,8 @@ "use client"; -import React , { memo } from "react"; +import React, { memo } from "react"; -import { companies, testimonials } from "@/data"; +import { companies, testimonials } from "@/constants/constants"; import { InfiniteMovingCards } from "./ui/InfiniteCards"; import MagicButton from "./MagicButton"; import { FaLocationArrow } from "react-icons/fa6"; @@ -64,4 +64,4 @@ const Testimonials = () => { ); }; -export default memo(Testimonials); \ No newline at end of file +export default memo(Testimonials); diff --git a/components/ui/TextGenerateEffect.tsx b/components/ui/TextGenerateEffect.tsx index 0420bc4..5805df2 100644 --- a/components/ui/TextGenerateEffect.tsx +++ b/components/ui/TextGenerateEffect.tsx @@ -5,7 +5,13 @@ import { motion, stagger, useAnimate } from "framer-motion"; import { cn } from "@/lib/utils"; import TypingAnimation from "../magicui/typing-animation"; -export const TextGenerateEffect = ({ words, className }: { words: string; className?: string }) => { +export const TextGenerateEffect = ({ + words, + className, +}: { + words: string; + className?: string; +}) => { const [scope, animate] = useAnimate(); let wordsArray = words.split(" "); useEffect(() => { @@ -17,7 +23,7 @@ export const TextGenerateEffect = ({ words, className }: { words: string; classN { duration: 2, delay: stagger(0.2), - }, + } ); }, [scope.current]); @@ -29,7 +35,9 @@ export const TextGenerateEffect = ({ words, className }: { words: string; classN 2 ? "text-purple" : "dark:text-white text-black"} opacity-0`} + className={` ${ + idx > 2 ? "text-purple" : "dark:text-white text-black" + } opacity-0`} > {idx > 3 ? : word}{" "} @@ -42,9 +50,11 @@ export const TextGenerateEffect = ({ words, className }: { words: string; classN return (
{/* mt-4 to my-4 */} -
+
{/* remove text-2xl from the original */} -
{renderWords()}
+
+ {renderWords()} +
); diff --git a/components/ui/toaster.tsx b/components/ui/toaster.tsx index e223385..7d82ed5 100644 --- a/components/ui/toaster.tsx +++ b/components/ui/toaster.tsx @@ -1,4 +1,4 @@ -"use client" +"use client"; import { Toast, @@ -7,11 +7,11 @@ import { ToastProvider, ToastTitle, ToastViewport, -} from "@/components/ui/toast" -import { useToast } from "@/components/ui/use-toast" +} from "@/components/ui/toast"; +import { useToast } from "@/components/ui/use-toast"; export function Toaster() { - const { toasts } = useToast() + const { toasts } = useToast(); return ( @@ -27,9 +27,9 @@ export function Toaster() { {action} - ) + ); })} - ) + ); } diff --git a/constants/constants.ts b/constants/constants.ts index 70d9957..156c39e 100644 --- a/constants/constants.ts +++ b/constants/constants.ts @@ -1,4 +1,5 @@ -export const EVENT_API = "https://elixir-backendv2.vercel.app/events/?format=json"; +export const EVENT_API = + "https://elixir-backendv2.vercel.app/events/?format=json"; export const NotesData = [ { id: "0", @@ -189,7 +190,8 @@ export const MentorData = [ image: "/mentors/shubhankar.png", discord: "shubhankargupta", linkedIn: "https://www.linkedin.com/in/shubhankar-gupta-aa8696235/", - techStack: "Penetration Tester, Red Teamer, CTF Player, Golang, Java, Python, Linux, Git", + techStack: + "Penetration Tester, Red Teamer, CTF Player, Golang, Java, Python, Linux, Git", bannerKeywords: "Cybersecurity", }, { @@ -217,3 +219,175 @@ export const MentorData = [ bannerKeywords: "Cybersecurity", }, ]; +export const navItems = [ + { name: "Home", link: "/" }, + { name: "Events", link: "/events" }, + { name: "Notes", link: "/notes" }, + { name: "Mentors", link: "/mentors" }, +]; + +export const Chapters = [ + { + id: 1, + title: "CodeChef ABESEC", + des: "In CodeChef ABESEC, we create an environment for members to challenge themselves, collaborate, and improve their skills, leading to unanimous success.", + img: "/ccThumbnail.webp", + iconLists: ["/re.svg", "/tail.svg", "/ts.svg", "/three.svg", "/fm.svg"], + link: "https://www.instagram.com/abesec.codechef/", + }, + { + id: 2, + title: "GeeksforGeeks ABESEC", + des: "GeeksforGeeks ABESEC aims to create an advanced community where learning and fun coexist.This motivates developers to grow and excel together.", + img: "/gfgThumbnail.webp", + iconLists: ["/next.svg", "/tail.svg", "/ts.svg", "/stream.svg", "/c.svg"], + link: "https://www.instagram.com/geeksforgeeks_abesec/", + }, + { + id: 3, + title: "GDSC ABESEC", + des: "GDSC ABESEC fosters learning, collaboration, and personal growth, exploring new technologies and exchanging knowledge for success.", + img: "/gdscThumbnail.webp", + iconLists: ["/re.svg", "/tail.svg", "/ts.svg", "/three.svg", "/c.svg"], + link: "https://www.instagram.com/gdg.abesec/", + }, +]; + +export const testimonials = [ + { + quote: + "I've been with the Elixir Tech Community for 3+ years, starting as the Open Source Coordinator via GFG in 2022. This role helped me grow by finding peers, teaching, and expanding my network beyond college. My advice: Follow your interests and find like-minded peers. For the community, I suggest more innovative sessions like Twitter Spaces and increased activity on the official Elixir Twitter account.", + name: "Anvesh Mishra", + title: "Batch 2024", + img: "/mentors/anvesh.png", + }, + { + quote: + "Since joining Elixir in 2020, I've led the CodeChef chapter, gaining skills in event organization and teamwork. This experience taught me to prioritize my interests and excel in them. My advice: focus on what you love and pursue it passionately. Teaching is my passion, and I enjoy hosting engaging talk sessions. I'm eager for ideas to enhance our sessions and community engagement. Let's innovate and grow together.", + name: "Tanveer Raza", + title: "Batch 2023", + img: "/mentors/tanveer.jpg", + }, + { + quote: + "Since joining Elixir in 2022, I've managed Discord, organized events, and mentored juniors. I've led sessions on GSoC, open source opportunities, and resume building, and organized hackathons to foster a development mindset. Elixir's flat hierarchy and supportive mentors ensure accessible guidance. Moving forward, we aim to uphold a vibrant community atmosphere alongside our educational initiatives.", + name: "Shlok Mishra", + title: "Batch 2025", + img: "/mentors/shlok.png", + }, + { + quote: + "I've been a member of Elixir for over 4 years, benefiting from invaluable career guidance from senior members and offering mentorship to juniors. My contributions span organizing and participating in community events that foster strong relationships among members. Elixir's well-structured approach ensures cohesive interaction from newcomers to seasoned participants. I'm dedicated to supporting our community's growth and enhancement efforts.", + name: "Yash Grover", + title: "Batch 2024", + img: "/mentors/yash.png", + }, + { + quote: + "Since joining Elixir in 2020, I've grown my skills and leadership while fostering team success. The inclusive community has been pivotal, enhancing connection and growth. Our Discord server, with engaging game nights and discussions, serves as our hub. Elixir embraces all skill levels, creating a genuine community where everyone contributes and thrives together.", + name: "Anmol Gupta", + title: "Batch 2023", + img: "/mentors/anmol.png", + }, + + { + quote: + "Since joining Elixir in November 2020, I've honed essential people skills and made significant contributions through hacknights and open-source drives. Elixir feels more like a family than just a club, fostering strong connections. To enhance our community, expanding our presence and engagement on Discord would be highly beneficial, ensuring we reach more members and continue to grow together.", + name: "Manav Agarwal", + title: "Batch 2022", + img: "/mentors/manav.png", + }, + { + quote: + "Since my first year, Elixir has connected me with an incredible senior community, fostering a strong sense of brotherhood. Unlike other groups, everyone here is relaxed and eager to assist. We thrive on guiding juniors and organizing engaging talks and sessions to enhance our skills continuously. This supportive atmosphere ensures constant improvement and a welcoming environment for all.", + name: "Ishan Grover", + title: "Batch 2026", + img: "/mentors/ishan.png", + }, + { + quote: + "I've been part of Elixir for around 1-1.5 years. It's been invaluable when I've faced challenges, providing prompt assistance and diverse perspectives. Elixir distinguishes itself by maintaining long-term member engagement, which sets it apart from other communities. Keep up the excellent work in fostering this supportive environment where everyone can thrive and contribute effectively.", + name: "Ram Goel", + title: "Batch 2024", + img: "/mentors/ram.png", + }, + { + quote: + "Since 2023, I've been active in Elixir, drawn by its supportive community and members' achievements. My journey evolved into becoming GFG ML Coordinator, guided by seniors in skills and leadership. Elixir emphasizes mutual support and collective success, fostering collaboration. Moving forward, we aim to recruit top members and host impactful events to strengthen our community, inspiring and empowering each other.", + name: "Satyam Namdev", + title: "Batch 2026", + img: "/mentors/satyam.png", + }, + // { + // quote: + // "Since 2021, Elixir has been instrumental in my personal growth through tech upscaling and peer learning. The community's diverse expertise encourages open discussions and mentorship, creating a hub of motivation. Our collaborative spirit sets us apart, as we strive for collective growth and host impactful events that leave a lasting impression.", + // name: "Abhinav Jha", + // title: "Batch 2025", + // img: "/mentors/abhinav.png", + // }, + { + quote: + "Since 2020, Elixir has been more than a network; it's a supportive community that felt like family throughout college. I played a role in reviving our Discord server, enjoying enriching discussions and launching our website. Elixir stands out for nurturing growth without judgment. Introducing regular game nights on Discord would further enhance our community, making it even more engaging and enjoyable for everyone involved.", + name: "Dewank Rastogi", + title: "Batch 2024", + img: "/mentors/dewank.png", + }, + { + quote: + "I joined Elixir in 2022 as a complete novice in CS. The guidance from Elixir members kickstarted my career. My impactful contributions include promoting and leading sessions on the Elixir Discord server and offline. Elixir stands out as an inclusive community where I've interacted with FAANG engineers, open-source contributors, and many amazing individuals. Looking forward to implementing community mentorship to enhance Elixir further.", + name: "Vandit Singh", + title: "Batch 2025", + img: "/mentors/vandit.png", + }, +]; + +export const companies = [ + { + id: 1, + name: "cloudinary", + img: "/cloud.svg", + nameImg: "/cloudName.svg", + }, + { + id: 2, + name: "appwrite", + img: "/app.svg", + nameImg: "/appName.svg", + }, + { + id: 3, + name: "HOSTINGER", + img: "/host.svg", + nameImg: "/hostName.svg", + }, + { + id: 4, + name: "stream", + img: "/s.svg", + nameImg: "/streamName.svg", + }, + { + id: 5, + name: "docker.", + img: "/dock.svg", + nameImg: "/dockerName.svg", + }, +]; + +export const socialMedia = [ + { + id: 1, + img: "/git.svg", + link: "https://github.com/ElixirTechCommunity", + }, + { + id: 2, + img: "/twit.svg", + link: "https://twitter.com/TheElixirTech", + }, + { + id: 3, + img: "/discord.svg", + link: "http://dsc.gg/elixirtechcommunity", + }, +]; diff --git a/constants/sampleArcs.ts b/constants/sampleArcs.ts deleted file mode 100644 index 955543e..0000000 --- a/constants/sampleArcs.ts +++ /dev/null @@ -1,364 +0,0 @@ -const colors = ["#06b6d4", "#3b82f6", "#6366f1"]; - -export const sampleArcs = [ - { - order: 1, - startLat: -19.885592, - startLng: -43.951191, - endLat: -22.9068, - endLng: -43.1729, - arcAlt: 0.1, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 1, - startLat: 28.6139, - startLng: 77.209, - endLat: 3.139, - endLng: 101.6869, - arcAlt: 0.2, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 1, - startLat: -19.885592, - startLng: -43.951191, - endLat: -1.303396, - endLng: 36.852443, - arcAlt: 0.5, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 2, - startLat: 1.3521, - startLng: 103.8198, - endLat: 35.6762, - endLng: 139.6503, - arcAlt: 0.2, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 2, - startLat: 51.5072, - startLng: -0.1276, - endLat: 3.139, - endLng: 101.6869, - arcAlt: 0.3, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 2, - startLat: -15.785493, - startLng: -47.909029, - endLat: 36.162809, - endLng: -115.119411, - arcAlt: 0.3, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 3, - startLat: -33.8688, - startLng: 151.2093, - endLat: 22.3193, - endLng: 114.1694, - arcAlt: 0.3, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 3, - startLat: 21.3099, - startLng: -157.8581, - endLat: 40.7128, - endLng: -74.006, - arcAlt: 0.3, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 3, - startLat: -6.2088, - startLng: 106.8456, - endLat: 51.5072, - endLng: -0.1276, - arcAlt: 0.3, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 4, - startLat: 11.986597, - startLng: 8.571831, - endLat: -15.595412, - endLng: -56.05918, - arcAlt: 0.5, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 4, - startLat: -34.6037, - startLng: -58.3816, - endLat: 22.3193, - endLng: 114.1694, - arcAlt: 0.7, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 4, - startLat: 51.5072, - startLng: -0.1276, - endLat: 48.8566, - endLng: -2.3522, - arcAlt: 0.1, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 5, - startLat: 14.5995, - startLng: 120.9842, - endLat: 51.5072, - endLng: -0.1276, - arcAlt: 0.3, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 5, - startLat: 1.3521, - startLng: 103.8198, - endLat: -33.8688, - endLng: 151.2093, - arcAlt: 0.2, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 5, - startLat: 34.0522, - startLng: -118.2437, - endLat: 48.8566, - endLng: -2.3522, - arcAlt: 0.2, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 6, - startLat: -15.432563, - startLng: 28.315853, - endLat: 1.094136, - endLng: -63.34546, - arcAlt: 0.7, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 6, - startLat: 37.5665, - startLng: 126.978, - endLat: 35.6762, - endLng: 139.6503, - arcAlt: 0.1, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 6, - startLat: 22.3193, - startLng: 114.1694, - endLat: 51.5072, - endLng: -0.1276, - arcAlt: 0.3, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 7, - startLat: -19.885592, - startLng: -43.951191, - endLat: -15.595412, - endLng: -56.05918, - arcAlt: 0.1, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 7, - startLat: 48.8566, - startLng: -2.3522, - endLat: 52.52, - endLng: 13.405, - arcAlt: 0.1, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 7, - startLat: 52.52, - startLng: 13.405, - endLat: 34.0522, - endLng: -118.2437, - arcAlt: 0.2, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 8, - startLat: -8.833221, - startLng: 13.264837, - endLat: -33.936138, - endLng: 18.436529, - arcAlt: 0.2, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 8, - startLat: 49.2827, - startLng: -123.1207, - endLat: 52.3676, - endLng: 4.9041, - arcAlt: 0.2, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 8, - startLat: 1.3521, - startLng: 103.8198, - endLat: 40.7128, - endLng: -74.006, - arcAlt: 0.5, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 9, - startLat: 51.5072, - startLng: -0.1276, - endLat: 34.0522, - endLng: -118.2437, - arcAlt: 0.2, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 9, - startLat: 22.3193, - startLng: 114.1694, - endLat: -22.9068, - endLng: -43.1729, - arcAlt: 0.7, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 9, - startLat: 1.3521, - startLng: 103.8198, - endLat: -34.6037, - endLng: -58.3816, - arcAlt: 0.5, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 10, - startLat: -22.9068, - startLng: -43.1729, - endLat: 28.6139, - endLng: 77.209, - arcAlt: 0.7, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 10, - startLat: 34.0522, - startLng: -118.2437, - endLat: 31.2304, - endLng: 121.4737, - arcAlt: 0.3, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 10, - startLat: -6.2088, - startLng: 106.8456, - endLat: 52.3676, - endLng: 4.9041, - arcAlt: 0.3, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 11, - startLat: 41.9028, - startLng: 12.4964, - endLat: 34.0522, - endLng: -118.2437, - arcAlt: 0.2, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 11, - startLat: -6.2088, - startLng: 106.8456, - endLat: 31.2304, - endLng: 121.4737, - arcAlt: 0.2, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 11, - startLat: 22.3193, - startLng: 114.1694, - endLat: 1.3521, - endLng: 103.8198, - arcAlt: 0.2, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 12, - startLat: 34.0522, - startLng: -118.2437, - endLat: 37.7749, - endLng: -122.4194, - arcAlt: 0.1, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 12, - startLat: 35.6762, - startLng: 139.6503, - endLat: 22.3193, - endLng: 114.1694, - arcAlt: 0.2, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 12, - startLat: 22.3193, - startLng: 114.1694, - endLat: 34.0522, - endLng: -118.2437, - arcAlt: 0.3, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 13, - startLat: 52.52, - startLng: 13.405, - endLat: 22.3193, - endLng: 114.1694, - arcAlt: 0.3, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 13, - startLat: 11.986597, - startLng: 8.571831, - endLat: 35.6762, - endLng: 139.6503, - arcAlt: 0.3, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 13, - startLat: -22.9068, - startLng: -43.1729, - endLat: -34.6037, - endLng: -58.3816, - arcAlt: 0.1, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, - { - order: 14, - startLat: -33.936138, - startLng: 18.436529, - endLat: 21.395643, - endLng: 39.883798, - arcAlt: 0.3, - color: colors[Math.floor(Math.random() * (colors.length - 1))], - }, -]; diff --git a/data/fetchServerData.ts b/data/fetchServerData.ts new file mode 100644 index 0000000..5162f8c --- /dev/null +++ b/data/fetchServerData.ts @@ -0,0 +1,13 @@ +import { headers } from "next/headers"; + +// Separate function for device info to allow parallel fetching +export async function getDeviceInfo() { + const headersList = await headers(); + const userAgent = headersList.get("user-agent") || ""; + return { + isMobile: + /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test( + userAgent.toLowerCase() + ), + }; +} diff --git a/data/index.ts b/data/index.ts deleted file mode 100644 index 46d88bc..0000000 --- a/data/index.ts +++ /dev/null @@ -1,268 +0,0 @@ - -export const navItems = [ - { name: "Home", link: "/" }, - { name: "Events", link: "/events" }, - { name: "Notes", link: "/notes" }, - { name: "Mentors", link: "/mentors" }, -]; - -export const gridItems = [ - { - id: 1, - title: "I prioritize client collaboration, fostering open communication ", - description: "", - className: "lg:col-span-3 md:col-span-6 md:row-span-4 lg:min-h-[60vh]", - imgClassName: "w-full h-full", - titleClassName: "justify-end", - img: "/b1.svg", - spareImg: "", - }, - { - id: 2, - title: "I'm very flexible with time zone communications", - description: "", - className: "lg:col-span-2 md:col-span-3 md:row-span-2", - imgClassName: "", - titleClassName: "justify-start", - img: "", - spareImg: "", - }, - { - id: 3, - title: "My tech stack", - description: "I constantly try to improve", - className: "lg:col-span-2 md:col-span-3 md:row-span-2", - imgClassName: "", - titleClassName: "justify-center", - img: "", - spareImg: "", - }, - { - id: 4, - title: "Tech enthusiast with a passion for development.", - description: "", - className: "lg:col-span-2 md:col-span-3 md:row-span-1", - imgClassName: "", - titleClassName: "justify-start", - img: "/grid.svg", - spareImg: "/b4.svg", - }, - - { - id: 5, - title: "Currently building a JS Animation library", - description: "The Inside Scoop", - className: "md:col-span-3 md:row-span-2", - imgClassName: "absolute right-0 bottom-0 md:w-96 w-60", - titleClassName: "justify-center md:justify-start lg:justify-center", - img: "/b5.svg", - spareImg: "/grid.svg", - }, - { - id: 6, - title: "Do you want to start a project together?", - description: "", - className: "lg:col-span-2 md:col-span-3 md:row-span-1", - imgClassName: "", - titleClassName: "justify-center md:max-w-full max-w-60 text-center", - img: "", - spareImg: "", - }, -]; - -export const Chapters = [ - { - id: 1, - title: "CodeChef ABESEC", - des: "In CodeChef ABESEC, we create an environment for members to challenge themselves, collaborate, and improve their skills, leading to unanimous success.", - img: "/ccThumbnail.webp", - iconLists: ["/re.svg", "/tail.svg", "/ts.svg", "/three.svg", "/fm.svg"], - link: "https://www.instagram.com/abesec.codechef/", - }, - { - id: 2, - title: "GeeksforGeeks ABESEC", - des: "GeeksforGeeks ABESEC aims to create an advanced community where learning and fun coexist.This motivates developers to grow and excel together.", - img: "/gfgThumbnail.webp", - iconLists: ["/next.svg", "/tail.svg", "/ts.svg", "/stream.svg", "/c.svg"], - link: "https://www.instagram.com/geeksforgeeks_abesec/", - }, - { - id: 3, - title: "GDSC ABESEC", - des: "GDSC ABESEC fosters learning, collaboration, and personal growth, exploring new technologies and exchanging knowledge for success.", - img: "/gdscThumbnail.webp", - iconLists: ["/re.svg", "/tail.svg", "/ts.svg", "/three.svg", "/c.svg"], - link: "https://www.instagram.com/gdg.abesec/", - }, -]; - -export const testimonials = [ - { - quote: - "I've been with the Elixir Tech Community for 3+ years, starting as the Open Source Coordinator via GFG in 2022. This role helped me grow by finding peers, teaching, and expanding my network beyond college. My advice: Follow your interests and find like-minded peers. For the community, I suggest more innovative sessions like Twitter Spaces and increased activity on the official Elixir Twitter account.", - name: "Anvesh Mishra", - title: "Batch 2024", - img: "/mentors/anvesh.png", - }, - { - quote: - "Since joining Elixir in 2020, I've led the CodeChef chapter, gaining skills in event organization and teamwork. This experience taught me to prioritize my interests and excel in them. My advice: focus on what you love and pursue it passionately. Teaching is my passion, and I enjoy hosting engaging talk sessions. I'm eager for ideas to enhance our sessions and community engagement. Let's innovate and grow together.", - name: "Tanveer Raza", - title: "Batch 2023", - img: "/mentors/tanveer.jpg", - }, - { - quote: - "Since joining Elixir in 2022, I've managed Discord, organized events, and mentored juniors. I've led sessions on GSoC, open source opportunities, and resume building, and organized hackathons to foster a development mindset. Elixir's flat hierarchy and supportive mentors ensure accessible guidance. Moving forward, we aim to uphold a vibrant community atmosphere alongside our educational initiatives.", - name: "Shlok Mishra", - title: "Batch 2025", - img: "/mentors/shlok.png", - }, - { - quote: - "I've been a member of Elixir for over 4 years, benefiting from invaluable career guidance from senior members and offering mentorship to juniors. My contributions span organizing and participating in community events that foster strong relationships among members. Elixir's well-structured approach ensures cohesive interaction from newcomers to seasoned participants. I'm dedicated to supporting our community's growth and enhancement efforts.", - name: "Yash Grover", - title: "Batch 2024", - img: "/mentors/yash.png", - }, - { - quote: - "Since joining Elixir in 2020, I've grown my skills and leadership while fostering team success. The inclusive community has been pivotal, enhancing connection and growth. Our Discord server, with engaging game nights and discussions, serves as our hub. Elixir embraces all skill levels, creating a genuine community where everyone contributes and thrives together.", - name: "Anmol Gupta", - title: "Batch 2023", - img: "/mentors/anmol.png", - }, - - { - quote: - "Since joining Elixir in November 2020, I've honed essential people skills and made significant contributions through hacknights and open-source drives. Elixir feels more like a family than just a club, fostering strong connections. To enhance our community, expanding our presence and engagement on Discord would be highly beneficial, ensuring we reach more members and continue to grow together.", - name: "Manav Agarwal", - title: "Batch 2022", - img: "/mentors/manav.png", - }, - { - quote: - "Since my first year, Elixir has connected me with an incredible senior community, fostering a strong sense of brotherhood. Unlike other groups, everyone here is relaxed and eager to assist. We thrive on guiding juniors and organizing engaging talks and sessions to enhance our skills continuously. This supportive atmosphere ensures constant improvement and a welcoming environment for all.", - name: "Ishan Grover", - title: "Batch 2026", - img: "/mentors/ishan.png", - }, - { - quote: - "I've been part of Elixir for around 1-1.5 years. It's been invaluable when I've faced challenges, providing prompt assistance and diverse perspectives. Elixir distinguishes itself by maintaining long-term member engagement, which sets it apart from other communities. Keep up the excellent work in fostering this supportive environment where everyone can thrive and contribute effectively.", - name: "Ram Goel", - title: "Batch 2024", - img: "/mentors/ram.png", - }, - { - quote: - "Since 2023, I've been active in Elixir, drawn by its supportive community and members' achievements. My journey evolved into becoming GFG ML Coordinator, guided by seniors in skills and leadership. Elixir emphasizes mutual support and collective success, fostering collaboration. Moving forward, we aim to recruit top members and host impactful events to strengthen our community, inspiring and empowering each other.", - name: "Satyam Namdev", - title: "Batch 2026", - img: "/mentors/satyam.png", - }, - // { - // quote: - // "Since 2021, Elixir has been instrumental in my personal growth through tech upscaling and peer learning. The community's diverse expertise encourages open discussions and mentorship, creating a hub of motivation. Our collaborative spirit sets us apart, as we strive for collective growth and host impactful events that leave a lasting impression.", - // name: "Abhinav Jha", - // title: "Batch 2025", - // img: "/mentors/abhinav.png", - // }, - { - quote: - "Since 2020, Elixir has been more than a network; it's a supportive community that felt like family throughout college. I played a role in reviving our Discord server, enjoying enriching discussions and launching our website. Elixir stands out for nurturing growth without judgment. Introducing regular game nights on Discord would further enhance our community, making it even more engaging and enjoyable for everyone involved.", - name: "Dewank Rastogi", - title: "Batch 2024", - img: "/mentors/dewank.png", - }, - { - quote: - "I joined Elixir in 2022 as a complete novice in CS. The guidance from Elixir members kickstarted my career. My impactful contributions include promoting and leading sessions on the Elixir Discord server and offline. Elixir stands out as an inclusive community where I've interacted with FAANG engineers, open-source contributors, and many amazing individuals. Looking forward to implementing community mentorship to enhance Elixir further.", - name: "Vandit Singh", - title: "Batch 2025", - img: "/mentors/vandit.png", - }, -]; - -export const companies = [ - { - id: 1, - name: "cloudinary", - img: "/cloud.svg", - nameImg: "/cloudName.svg", - }, - { - id: 2, - name: "appwrite", - img: "/app.svg", - nameImg: "/appName.svg", - }, - { - id: 3, - name: "HOSTINGER", - img: "/host.svg", - nameImg: "/hostName.svg", - }, - { - id: 4, - name: "stream", - img: "/s.svg", - nameImg: "/streamName.svg", - }, - { - id: 5, - name: "docker.", - img: "/dock.svg", - nameImg: "/dockerName.svg", - }, -]; - -export const workExperience = [ - { - id: 1, - title: "Frontend Engineer Intern", - desc: "Assisted in the development of a web-based platform using React.js, enhancing interactivity.", - className: "md:col-span-2", - thumbnail: "/exp1.svg", - }, - { - id: 2, - title: "Mobile App Dev - JSM Tech", - desc: "Designed and developed mobile app for both iOS & Android platforms using React Native.", - className: "md:col-span-2", // change to md:col-span-2 - thumbnail: "/exp2.svg", - }, - { - id: 3, - title: "Freelance App Dev Project", - desc: "Led the dev of a mobile app for a client, from initial concept to deployment on app stores.", - className: "md:col-span-2", // change to md:col-span-2 - thumbnail: "/exp3.svg", - }, - { - id: 4, - title: "Lead Frontend Developer", - desc: "Developed and maintained user-facing features using modern frontend technologies.", - className: "md:col-span-2", - thumbnail: "/exp4.svg", - }, -]; - -export const socialMedia = [ - { - id: 1, - img: "/git.svg", - link: "https://github.com/ElixirTechCommunity", - }, - { - id: 2, - img: "/twit.svg", - link: "https://twitter.com/TheElixirTech", - }, - { - id: 3, - img: "/discord.svg", - link: "http://dsc.gg/elixirtechcommunity", - }, -]; diff --git a/hooks/useEventApi.tsx b/hooks/useEventApi.tsx index 8bbff06..1826e81 100644 --- a/hooks/useEventApi.tsx +++ b/hooks/useEventApi.tsx @@ -12,8 +12,345 @@ const useEventApi = () => { useEffect(() => { const fetchEvents = async () => { try { - const res = await axios.get(EVENT_API); - dispatch(addEvents(res.data)); + const res = [ + { + id: 31, + name: "PULL 'N' MERGE", + event_summary: + "๐‚๐จ๐๐ž, ๐œ๐จ๐ง๐ง๐ž๐œ๐ญ๐ข๐จ๐ง๐ฌ, ๐š๐ง๐ ๐œ๐จ๐ฆ๐ฆ๐ข๐ญ๐ฌ\r\nReady to level up your ๐†๐ข๐ญ๐‡๐ฎ๐› skills?", + form_link: + "https://lu.ma/ojwix4ty?fbclid=PAZXh0bgNhZW0CMTEAAaaRE0zrGK3Ew2RvGCskr35SXmKe1H5k5WG74tGeo85mUAvmRIL23Mn2gbE_aem_K8DwexBZ8xF4pbPqcvhk7Q", + date: "2024-10-16", + img_link: "https://i.ibb.co/KGLr01J/pull-n-merge.png", + club: "GFG", + }, + { + id: 30, + name: "Aurora", + event_summary: + "A dynamic hackathon designed to immerse students in the world of Web3 technologies. Experience a unique blend of creativity and cutting-edge tech, and help shape the future of the decentralized web with the Elixirย Techย community.", + form_link: "https://forms.office.com/", + date: "2024-10-04", + img_link: "https://i.ibb.co/94xwZc1/Aurora.jpg", + club: "GFG", + }, + { + id: 29, + name: "Rust-Ed", + event_summary: + "Rust-Ed was an event focused on the Rust programming language, gathering developers and enthusiasts to share knowledge, discuss best practices, and explore Rust's applications in software development.", + form_link: "https://bit.ly/rust_session", + date: "2024-07-08", + img_link: + "https://i.ibb.co/PT5S9LW/Whats-App-Image-2024-07-04-at-23-32-37-f248b4f9.jpg", + club: "CC", + }, + { + id: 32, + name: "Branch & Beyond", + event_summary: + "Get ready to branch out and go beyond with ๐˜ฝ๐™ง๐™–๐™ฃ๐™˜๐™ ๐™–๐™ฃ๐™™ ๐˜ฝ๐™š๐™ฎ๐™ค๐™ฃ๐™™ \r\nUncover ๐™‚๐™ž๐™ฉ ๐™š๐™จ๐™จ๐™š๐™ฃ๐™ฉ๐™ž๐™–๐™ก๐™จ on ๐™…๐™ช๐™ก๐™ฎ 3 & delve into ๐™Ž๐™ค๐™ก๐™–๐™ฃ๐™– development on ๐™…๐™ช๐™ก๐™ฎ 5 with us.", + form_link: "https://forms.office.com/", + date: "2024-07-05", + img_link: "https://i.ibb.co/p33ZhGk/Branch-Beyond.jpg", + club: "GDSC", + }, + { + id: 27, + name: "Synapse", + event_summary: + "Feeling intrigued by the possibilities of AI/ML but unsure where to begin? ๐Ÿ˜”\r\nNeed a reliable, trusted, and adaptive path?\r\n\r\nโ€œHum hai na! Aap bas seekhne ka josh banaye rakheinโ€ ๐Ÿคš๐Ÿป๐Ÿ˜Ž\r\n\r\nThe Geeks of ABESEC bring you an electrifying session on AI and Machine Learning with Ojasvi Yadav, AI Lead at Write Sonic and postgraduate from Trinity College Dublin.", + form_link: "https://bit.ly/Synapse-GFG", + date: "2024-06-22", + img_link: "https://i.ibb.co/kxp1DHV/Synapse.jpg", + club: "GFG", + }, + { + id: 28, + name: "T-Error 3.0", + event_summary: + "T-Error 3.0 pitted coding skills against real-world bugs in a Mario Magic-themed showdown. Participants debugged challenges in C, Java, and Python over two thrilling days, vying for exciting prizes.", + form_link: "https://bitly.cx/T-ErrorCC", + date: "2024-05-27", + img_link: "https://i.ibb.co/gFxJPqn/terror.jpg", + club: "CC", + }, + { + id: 25, + name: "Beyond Code", + event_summary: + "This session by Elixir Community explores the importance of problem-solving and Data Structures & Algorithms (DSA) in coding interviews and careers.", + form_link: "https://discord.gg/HTg8uP43?event=1243797161523675218", + date: "2024-05-26", + img_link: "https://i.ibb.co/QkWfwqQ/BEYOND-CODE.png", + club: "CC", + }, + { + id: 23, + name: "DevTalk", + event_summary: + "Kya aap thak gaye hain logon ke laval nikalte huye dekhkr?๐Ÿ‘€\r\nWorry not, 'cause GeeksforGeeks ABESEC Chapter has brought to you ๐˜ฟ๐™€๐™‘๐™๐˜ผ๐™‡๐™†. \r\nA two day extended event with sessions traversing you through various niche's of the Unknown-tech.", + form_link: "https://bit.ly/DevTalkGFG", + date: "2024-05-20", + img_link: "https://i.ibb.co/sKrx9cV/2nd.png", + club: "GFG", + }, + { + id: 26, + name: "Ctrl+Up", + event_summary: + "Textbooks turn to PRs, Mundane screens teleport to hyperloops of codeflow, and your โ€œcode notebook m likho loyalistsโ€ become copilots.\r\nShift the tab, cut the CRAP!!\r\nWelcome to CTRL+UP\r\nYour very own Key shortcut to Level UP your geek game.\r\nExplore, enrich and excel with the BEST!", + form_link: "https://bit.ly/Ctrl-Up_Gfg", + date: "2024-04-15", + img_link: "https://i.ibb.co/ZYTDk5H/ctrlup.jpg", + club: "GFG", + }, + { + id: 24, + name: "Wrap it Up", + event_summary: + 'Unleash your creativity in an electrifying online graphic design event, "Wrap It Up," where participants replicate or innovate brand designs. ๐Ÿš€๐ŸŽจ', + form_link: "https://bit.ly/CC_WrapItUp", + date: "2024-03-27", + img_link: + "https://i.ibb.co/MRZf2x5/Whats-App-Image-2024-03-27-at-23-29-45-2a7ca5ee.jpg", + club: "CC", + }, + { + id: 22, + name: "Once Upon a Crime", + event_summary: + "Case closed! A Murder Mystery pitted logic & code against a cunning culprit. Participants unraveled puzzles, cracked quizzes, & honed teamwork in a thrilling 2-day event. ๐Ÿ•ต๏ธโ€โ™‚๏ธ๐Ÿ”๐ŸŽญ", + form_link: "https://bit.ly/OnceUponACrimeCC", + date: "2024-02-13", + img_link: "https://i.ibb.co/d48tShy/Standee-Fn.jpg", + club: "CC", + }, + { + id: 21, + name: "Capture The Function", + event_summary: + "The glowing signboards tell half the truth!!\r\nThis is rebellion against the mundane.\r\nYour mission - should you choose to accept it -\r\nis to, Capture the Function.", + form_link: "https://bit.ly/CaptureTheFunctionGFG", + date: "2024-02-09", + img_link: "https://i.ibb.co/jhpG4Pb/2.png", + club: "GFG", + }, + { + id: 15, + name: "Clash of Coders 2.0", + event_summary: + "Intense coding showdown as teams battled head-to-head, showcasing skill and innovation. A thrilling clash of minds in the ultimate coding contest! ๐Ÿ’ป๐Ÿ†๐Ÿš€", + form_link: "http://bit.ly/ClashofCoders2023", + date: "2023-12-21", + img_link: "https://i.ibb.co/vj16cqg/COC-poster.jpg", + club: "CC", + }, + { + id: 14, + name: "Pydev101", + event_summary: + "The Geeks of ABESEC are here to up your Dev game with a 4-day bootcamp in Python Backend Web Development!!\r\nSher ab PyDev Banega ๐Ÿ", + form_link: "https://forms.office.com/r/3Q9mE6jyPt", + date: "2023-12-15", + img_link: "https://i.ibb.co/V24fzNb/IMG-0393.png", + club: "GFG", + }, + { + id: 16, + name: "Head Node", + event_summary: + "Dynamic exchange of knowledge and experience as seasoned seniors shared insights, answered queries, and guided juniors for a collaborative learning experience. ๐Ÿ’ก๐Ÿค", + form_link: "https://bit.ly/cc-session", + date: "2023-12-09", + img_link: "https://i.ibb.co/xzb64zT/Codechef-1.png", + club: "CC", + }, + { + id: 7, + name: "Pull 'N' Merge 2023", + event_summary: + "You call it October, but for us, it's Hacktober!๐ŸŽƒ๐Ÿ’ป Let's dive into the world of open source this season.It's time to serve the community one pull request at a time. ๐ŸŒ", + form_link: "https://forms.office.com/r/vieU1B8vN4", + date: "2023-10-10", + img_link: "https://i.ibb.co/v34XwFw/Hacktober-1.png", + club: "GFG", + }, + { + id: 19, + name: "Compose Camps (Android Dev)", + event_summary: + "GDSC ABESEC's 'Compose Camps' ignited Android development journeys with hands-on Jetpack Compose sessions. Participants enjoyed beginner-friendly workshops, earned Google DSC certificates, and gained insights from speaker Yash Grover in this transformative event.", + form_link: "https://gdsc.community.dev/e/mpyqpw/", + date: "2023-10-08", + img_link: "https://i.ibb.co/C7y59BK/IMG-20240104-133554.jpg", + club: "GDSC", + }, + { + id: 12, + name: "Live The Code 2.0", + event_summary: + "Elixir X CodeChef ADGITM are joining forces to proudly present Live the Code 2.0, a 36-hour online Hackathon!$11,000 Prize Pool! ๐Ÿ’ฐ", + form_link: "https://live-the-code.devfolio.co", + date: "2023-09-08", + img_link: "https://i.ibb.co/j4nqnF7/Live-The-Code-2-0.png", + club: "GFG", + }, + { + id: 8, + name: "Info Session", + event_summary: + "Embark on an innovation journey with an engaging introductory session. The opportunity to connect with like-minded individuals, expand your horizons, and be part of a community", + form_link: "https://tinyurl.com/cc-info-session", + date: "2023-09-01", + img_link: "https://i.ibb.co/g6DKvZ2/image.png", + club: "CC", + }, + { + id: 20, + name: "Hack Haven", + event_summary: + '"Hack Haven," a groundbreaking hackathon on July 8, 2023, addressed real-world issues aligned with UN goals. The 12-hour event fostered learning, networking, and innovation, providing opportunities for skill development.', + form_link: "https://hackhaven.devfolio.co", + date: "2023-07-08", + img_link: "https://i.ibb.co/gwgFnGz/IMG-20240101-WA0020.jpg", + club: "GDSC", + }, + { + id: 11, + name: "API Fetch", + event_summary: + "Navigate through the stellar pathways of data integration and explore the orbits of endpoints. Join us at API Fetch and see the API magic unfold!", + form_link: + "https://images.pexels.com/photos/13661636/pexels-photo-13661636.jpeg?auto=compress&cs=tinysrgb&w=126", + date: "2023-06-15", + img_link: "https://i.ibb.co/yNkgk2x/ApiFetch.jpg", + club: "GFG", + }, + { + id: 5, + name: "T-Error 2.0", + event_summary: + "Unleash your inner debugger at our event! Come on board with CodeChef ABESEC Chapter to scratch your minds and pull out the debugger in you.๐Ÿชถ Join us in spotting bugs", + form_link: "https://forms.office.com/r/dpnjYrCQfZ", + date: "2023-06-12", + img_link: + "https://i.ibb.co/6HSD8ck/Whats-App-Image-2023-09-02-at-13-32-47.jpg", + club: "CC", + }, + { + id: 18, + name: "Flutter Extended", + event_summary: + "Flutter Extended was a two-day online event by GDSC-ABESEC, led by expert Yatharth Chauhan. Perfect for all levels, participants learnt Flutter basics on Day 1 and build a cross-platform app with hands-on guidance on Day 2.", + form_link: "https://gdsc.community.dev/e/m9qqar/", + date: "2023-03-11", + img_link: "https://i.ibb.co/Th5p7Qx/cybergrrrr.jpg", + club: "GDSC", + }, + { + id: 10, + name: "NXT Quest", + event_summary: + "From Tech and Code-Decode to Movies and anime - the Twisted Trivia has it all. But the clock is ticking, scholars. Your expedition into the trivia realms starts now!", + form_link: + "https://images.pexels.com/photos/13661636/pexels-photo-13661636.jpeg?auto=compress&cs=tinysrgb&w=126", + date: "2023-02-15", + img_link: "https://i.ibb.co/5T9MdC3/NXTQuest.jpg", + club: "GFG", + }, + { + id: 17, + name: "Demystifying Web", + event_summary: + "Demystifying web offered an immersive experience led by professionals. Participants engaged in interactive sessions, gaining insights into the latest web development trends. Tailored for all skill levels, the event provided networking opportunities and inspired growth.", + form_link: "https://gdsc.community.dev/e/m55ra9/", + date: "2023-02-08", + img_link: "https://i.ibb.co/3fXqYbt/IMG-20240104-WA0013.jpg", + club: "GDSC", + }, + { + id: 6, + name: "Re-Imagine", + event_summary: + "Unleash your inner designer and escape boredom with us! Get creative and craft your way to excitement! ๐ŸŽจ๐ŸŒŸ", + form_link: "https://forms.office.com/r/yvVe8WQDEp", + date: "2023-01-23", + img_link: + "https://i.ibb.co/kJzXjG9/Whats-App-Image-2023-09-02-at-13-35-19.jpg", + club: "CC", + }, + { + id: 9, + name: "Dorking with Geeks", + event_summary: + "8,35,00,000 results (0.32 seconds) Okay, but you need that one. Don't parkour on links with every Google search, instead... just Dork!", + form_link: + "https://images.pexels.com/photos/13661636/pexels-photo-13661636.jpeg?auto=compress&cs=tinysrgb&w=126", + date: "2023-01-21", + img_link: + "https://i.ibb.co/pLZjWGL/Snapinsta-app-326094475-527397002700053-6945585699872009637-n-1080.jpg", + club: "GFG", + }, + { + id: 13, + name: "UI/UX Unplugged", + event_summary: + "Unlock UI/UX mastery at our workshop with experts Shivangi Singh and Shivam Goel. Elevate your digital design skills!", + form_link: + "https://instagram.com/abesec.codechef?igshid=MzRlODBiNWFlZA==", + date: "2022-12-20", + img_link: + "https://i.ibb.co/Mp18MrL/Whats-App-Image-2023-09-02-at-13-28-48.jpg", + club: "CC", + }, + { + id: 4, + name: "Cyber Path", + event_summary: + "Don't forget to 'authenticate' your 'access' with GFG ABESEC and Mr. Kartik Sachdeva(CEE, Cisco) in the world of Cybersecurity and be Firewalled for the future.", + form_link: + "https://images.pexels.com/photos/13661636/pexels-photo-13661636.jpeg?auto=compress&cs=tinysrgb&w=126", + date: "2022-12-16", + img_link: + "https://i.ibb.co/yFRpVBW/Snapinsta-app-319724785-1829259920754684-747529075197985006-n-1080.jpg", + club: "GFG", + }, + { + id: 3, + name: "Become a MAANG", + event_summary: + "Well, clear out your schedule this Friday as we bring to you an engaging virtual session with our eminent alumni, Mr. Umang Agrawal- SDE at Microsoft.", + form_link: "https://forms.office.com/r/Nueepv905p", + date: "2022-11-25", + img_link: + "https://i.ibb.co/S7PgfdS/Snapinsta-app-316738928-930417624990103-6786221222350404171-n-1080.jpg", + club: "GFG", + }, + { + id: 2, + name: "Clash of Coders", + event_summary: + "A thrilling team coding competition which is a platform for the students to put their problem solving skills, teamwork abilities and coding knowledge to test.", + form_link: "https://forms.office.com/r/zbPxDie16P", + date: "2022-11-04", + img_link: "https://i.ibb.co/Lv9Ln6s/photo-2023-09-02-14-11-37.jpg", + club: "CC", + }, + { + id: 1, + name: "Pull 'N' Merge", + event_summary: + "October is finally here, and with it comes the much-awaited Open Source carnival of the year, Hacktoberfest.", + form_link: "https://forms.office.com/r/jdKzykSamW", + date: "2022-10-13", + img_link: + "https://i.ibb.co/drr82t3/Snapinsta-app-311057485-123584480482160-1624516575949383604-n-1080.jpg", + club: "GFG", + }, + ]; + // const res = await axios.get(EVENT_API); + dispatch(addEvents(res)); } catch (err) { console.error("Failed to fetch events", err); } diff --git a/hooks/useIsMobile.tsx b/hooks/useIsMobile.tsx new file mode 100644 index 0000000..75e6044 --- /dev/null +++ b/hooks/useIsMobile.tsx @@ -0,0 +1,37 @@ +import { headers } from "next/headers"; +import { useDispatch, useSelector } from "react-redux"; +import { setAppData } from "@/store/slices/appDataSlice"; + +export const getServerDeviceInfo = async () => { + const headersList = await headers(); + const userAgent = headersList.get("user-agent") || ""; + + // Check if mobile device + const isMobileDevice = () => { + const ua = userAgent.toLowerCase(); + return /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test( + ua + ); + }; + + return { + isMobile: isMobileDevice(), + }; +}; + +// For client-side components that need reactivity +export const useIsMobile = () => { + const dispatch = useDispatch(); + const isMobile = useSelector((state: any) => state.appData.isMobile); + + const updateDeviceInfo = () => { + const info = getServerDeviceInfo(); + dispatch(setAppData(info)); + }; + + return { + isMobile, + isDesktop: !isMobile, + updateDeviceInfo, + }; +}; diff --git a/layouts/ClientWrapperLayout/ClientWrapperLayout.tsx b/layouts/ClientWrapperLayout/ClientWrapperLayout.tsx index e3ed398..35c5a91 100644 --- a/layouts/ClientWrapperLayout/ClientWrapperLayout.tsx +++ b/layouts/ClientWrapperLayout/ClientWrapperLayout.tsx @@ -3,7 +3,7 @@ import { Spotlight } from "@/components/ui/Spotlight"; import { Provider } from "react-redux"; import appStore from "@/store/store"; -import { navItems } from "@/data"; +import { navItems } from "@/constants/constants"; import dynamic from "next/dynamic"; const Footer = dynamic(() => import("@/components/Footer")); diff --git a/layouts/EventsPageLayout.tsx b/layouts/EventsPageLayout.tsx index a4bc644..958a423 100644 --- a/layouts/EventsPageLayout.tsx +++ b/layouts/EventsPageLayout.tsx @@ -31,7 +31,7 @@ const EventsPageLayout = () => { eventName={event.name} eventImage={event.img_link} clubName={event.club} - clubImage="https://via.placeholder.com/25" + clubImage="https://placehold.co/50/png" deadline={event.date} formLink={event.form_link} /> diff --git a/layouts/TestimonialsPageLayout.tsx b/layouts/TestimonialsPageLayout.tsx index 22634fc..9a5e99c 100644 --- a/layouts/TestimonialsPageLayout.tsx +++ b/layouts/TestimonialsPageLayout.tsx @@ -1,5 +1,5 @@ import PageHeading from "@/components/PageHeading"; -import { testimonials } from "@/data"; +import { testimonials } from "@/constants/constants"; import { cn } from "@/lib/utils"; import styles from "./layouts.module.css"; import Image from "next/image"; @@ -57,4 +57,4 @@ const TestimonialsPageLayout = () => { ); }; -export default TestimonialsPageLayout; \ No newline at end of file +export default TestimonialsPageLayout; diff --git a/next.config.mjs b/next.config.mjs index 0069163..db1640a 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -20,7 +20,7 @@ const nextConfig = { }, { protocol: "https", - hostname: "via.placeholder.com", + hostname: "placehold.co", }, { protocol: "https", diff --git a/public/Elixir-logo.png b/public/Elixir-logo.png deleted file mode 100644 index 30ca64a..0000000 Binary files a/public/Elixir-logo.png and /dev/null differ diff --git a/public/Elixir-logo.webp b/public/Elixir-logo.webp new file mode 100644 index 0000000..9c6181b Binary files /dev/null and b/public/Elixir-logo.webp differ diff --git a/public/b1.svg b/public/b1.svg deleted file mode 100644 index 5aed98a..0000000 --- a/public/b1.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/b4.svg b/public/b4.svg deleted file mode 100644 index 13cc77c..0000000 --- a/public/b4.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/public/b5.svg b/public/b5.svg deleted file mode 100644 index aa70ab8..0000000 --- a/public/b5.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/c.svg b/public/c.svg deleted file mode 100644 index 6fe03ae..0000000 --- a/public/c.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/public/cloud.svg b/public/cloud.svg deleted file mode 100644 index bea465e..0000000 --- a/public/cloud.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/public/cloudName.svg b/public/cloudName.svg deleted file mode 100644 index 0cbdecd..0000000 --- a/public/cloudName.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/public/confetti.gif b/public/confetti.gif deleted file mode 100644 index b0c9692..0000000 Binary files a/public/confetti.gif and /dev/null differ diff --git a/public/dock.svg b/public/dock.svg deleted file mode 100644 index 6583ea7..0000000 --- a/public/dock.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/dockerName.svg b/public/dockerName.svg deleted file mode 100644 index 447d699..0000000 --- a/public/dockerName.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/exp1.svg b/public/exp1.svg deleted file mode 100644 index a723403..0000000 --- a/public/exp1.svg +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/exp2.svg b/public/exp2.svg deleted file mode 100644 index de08f4f..0000000 --- a/public/exp2.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/exp3.svg b/public/exp3.svg deleted file mode 100644 index ca79871..0000000 --- a/public/exp3.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/exp4.svg b/public/exp4.svg deleted file mode 100644 index ed32159..0000000 --- a/public/exp4.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/grid.svg b/public/grid.svg deleted file mode 100644 index 527cc2f..0000000 --- a/public/grid.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/gsap.svg b/public/gsap.svg deleted file mode 100644 index 2cce6f9..0000000 --- a/public/gsap.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/host.svg b/public/host.svg deleted file mode 100644 index f5b0989..0000000 --- a/public/host.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/hostName.svg b/public/hostName.svg deleted file mode 100644 index 9eb86f3..0000000 --- a/public/hostName.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/public/p1.svg b/public/p1.svg deleted file mode 100644 index a6fc0a6..0000000 --- a/public/p1.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/p2.svg b/public/p2.svg deleted file mode 100644 index c4ca5af..0000000 --- a/public/p2.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/p3.svg b/public/p3.svg deleted file mode 100644 index 7da0552..0000000 --- a/public/p3.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/p4.svg b/public/p4.svg deleted file mode 100644 index 768d443..0000000 --- a/public/p4.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/profile.svg b/public/profile.svg deleted file mode 100644 index 85e0957..0000000 --- a/public/profile.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/re.svg b/public/re.svg deleted file mode 100644 index e228447..0000000 --- a/public/re.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/public/s.svg b/public/s.svg deleted file mode 100644 index 3ff03eb..0000000 --- a/public/s.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/stream.svg b/public/stream.svg deleted file mode 100644 index a2270da..0000000 --- a/public/stream.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/public/streamName.svg b/public/streamName.svg deleted file mode 100644 index 8d13301..0000000 --- a/public/streamName.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/tail.svg b/public/tail.svg deleted file mode 100644 index eadb11c..0000000 --- a/public/tail.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/three.svg b/public/three.svg deleted file mode 100644 index f974e37..0000000 --- a/public/three.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/ts.svg b/public/ts.svg deleted file mode 100644 index 018bc1a..0000000 --- a/public/ts.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/public/wha.svg b/public/wha.svg deleted file mode 100644 index 77f5c3b..0000000 --- a/public/wha.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/store/slices/appDataSlice.ts b/store/slices/appDataSlice.ts new file mode 100644 index 0000000..48df21e --- /dev/null +++ b/store/slices/appDataSlice.ts @@ -0,0 +1,24 @@ +import { createSlice } from "@reduxjs/toolkit"; + +interface AppData { + isMobile: boolean; + // Add other server-side data here +} + +const initialState: AppData = { + isMobile: false, +}; + +const appDataSlice = createSlice({ + name: "appData", + initialState, + reducers: { + setAppData: (state, action) => { + return { ...state, ...action.payload }; + }, + // Add other reducers for server-side data here + }, +}); + +export const { setAppData } = appDataSlice.actions; +export default appDataSlice.reducer; diff --git a/store/store.ts b/store/store.ts index 7b16228..056a297 100644 --- a/store/store.ts +++ b/store/store.ts @@ -1,9 +1,17 @@ import { configureStore } from "@reduxjs/toolkit"; import eventReducer from "./slices/eventSlice"; -const appStore = configureStore({ - reducer: { - event: eventReducer, - }, -}); +import appDataReducer from "./slices/appDataSlice"; + +export const createStore = (preloadedState = {}) => { + return configureStore({ + reducer: { + event: eventReducer, + appData: appDataReducer, + }, + preloadedState, + }); +}; + +const appStore = createStore(); export default appStore;