- First Place: $250
- Second Place: $150
- Audience Favourite: $100
-
-
-
-
- What is a Hackathon?
-
- A hackathon is a competition where teams of students (generally 2 - 4) work together and use their software or hardware skills to build a project in a very short amount of time! No actual hacking is involved. A hackathon is a great way to make new bonds, develop skills outside of the classroom, create a portfolio project, gain experience on project management, and so much more!
-
-
-
-
- Frequently Asked Questions:
-
-
- Q: What should I do if I lack coding experience?
-
A: If you're unfamiliar with coding, worry not! We will have multiple workshops to prepare you for the hackathon! Even if coding isn't your strong suit, your participation is still highly encouraged. You can contribute to your team in various other capacities and learn from the experience!
-
-
-
- Q: Can individuals who are not students at Langara register for the hackathon?
-
A: Absolutely! We welcome non-Langara students to participate. However, at least 50% of your team must be current Langara students.
-
-
-
- Q: Are students from disciplines other than computer science or computer studies allowed to participate?
-
A: Yes! We encourage students from diverse backgrounds to join in. While programming is a vital component of a hackathon, there are numerous other facets to a successful project. You can contribute your expertise to areas such as project presentation, design, or conceptualization!
-
-
-
- Q: Who is organizing this hackathon?
-
A: The hackathon is being organized by the Hackathon Task Force in collaboration with the Langara Computer Science Club.
-
-
-
- Q: Do I need to bring my own food?
-
A: Lunch and dinner will be provided for all participants! Please let us know your dietary restrictions when you register. You are also welcome to bring your own food or snacks!
-
-
-
- Q: What if I don't have a team upon registration?
-
A: Don't worry! Even if you don't currently have a team, you can still register for the hackathon. We will have team building events in the days leading up to the hackathon! Although a team isn't mandatory, we highly, highly recommend you to form a team of 3 - 4 people!
;
}
diff --git a/frontend/src/app/hacks/Header.tsx b/frontend/src/app/hacks/Header.tsx
index b8c7d3e..74a6c02 100644
--- a/frontend/src/app/hacks/Header.tsx
+++ b/frontend/src/app/hacks/Header.tsx
@@ -1,26 +1,16 @@
import {useState} from "react";
-import {IconLabel} from "@/app/hacks/IconLabel";
+import {IconLabel} from "./IconLabel";
export function Header()
{
- return
-
-
+ return
+
+
Langara Hacks
Collaborate, Create, Innovate
-
-
-
-
-
-
-
-
-
-
}
diff --git a/frontend/src/app/hacks/page.tsx b/frontend/src/app/hacks/page.tsx
index d64613d..447cbdf 100644
--- a/frontend/src/app/hacks/page.tsx
+++ b/frontend/src/app/hacks/page.tsx
@@ -1,5 +1,5 @@
import {Header} from "./Header";
-import {Body} from "@/app/hacks/Body";
+import {Body} from "../hacks/Body";
export default function Page()
{
diff --git a/frontend/src/app/hacks/schedule/Body.tsx b/frontend/src/app/hacks/schedule/Body.tsx
index 3c4066c..4f2375c 100644
--- a/frontend/src/app/hacks/schedule/Body.tsx
+++ b/frontend/src/app/hacks/schedule/Body.tsx
@@ -1,5 +1,5 @@
-import {Timer} from "@/app/hacks/Timer";
-import SocialIcons from "@/app/SocialIcons";
+import {Timer} from "../Timer";
+import SocialIcons from "@/app/shared_components/SocialIcons";
export function Body()
{
diff --git a/frontend/src/app/hacks/schedule/Header.tsx b/frontend/src/app/hacks/schedule/Header.tsx
index 046cff1..d810a95 100644
--- a/frontend/src/app/hacks/schedule/Header.tsx
+++ b/frontend/src/app/hacks/schedule/Header.tsx
@@ -1,5 +1,5 @@
import {useState} from "react";
-import {IconLabel} from "@/app/hacks/IconLabel";
+import {IconLabel} from "../IconLabel";
export function Header()
{
diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx
index a6e2e68..c5b5353 100644
--- a/frontend/src/app/page.tsx
+++ b/frontend/src/app/page.tsx
@@ -2,10 +2,10 @@
import { useEffect, useState } from 'react';
import { Provider } from 'react-redux';
-import Footer from './Footer';
+import Footer from './shared_components/footer/Footer';
import HomePage from './HomePage';
-import NavBar from './NavBar';
-import { store } from './stores/store';
+import NavBar from './shared_components/header/NavBar';
+import { store } from '../redux/stores/store';
diff --git a/frontend/src/app/resources/Body.tsx b/frontend/src/app/resources/Body.tsx
index 6d72072..60b380e 100644
--- a/frontend/src/app/resources/Body.tsx
+++ b/frontend/src/app/resources/Body.tsx
@@ -1,4 +1,4 @@
-import SocialIcons from "@/app/SocialIcons";
+import SocialIcons from "@/app/shared_components/SocialIcons";
export function Body()
{
diff --git a/frontend/src/app/Conditional.tsx b/frontend/src/app/shared_components/Conditional.tsx
similarity index 100%
rename from frontend/src/app/Conditional.tsx
rename to frontend/src/app/shared_components/Conditional.tsx
diff --git a/frontend/src/app/IconLabel.tsx b/frontend/src/app/shared_components/IconLabel.tsx
similarity index 100%
rename from frontend/src/app/IconLabel.tsx
rename to frontend/src/app/shared_components/IconLabel.tsx
diff --git a/frontend/src/app/Menu.tsx b/frontend/src/app/shared_components/Menu.tsx
similarity index 94%
rename from frontend/src/app/Menu.tsx
rename to frontend/src/app/shared_components/Menu.tsx
index 7574936..6aa19a1 100644
--- a/frontend/src/app/Menu.tsx
+++ b/frontend/src/app/shared_components/Menu.tsx
@@ -2,8 +2,8 @@ import { useRouter } from "next/navigation";
import { useState } from 'react';
import * as FaIcons from 'react-icons/fa';
import { useSelector } from "react-redux";
-import { useAppDispatch } from "./hooks/hooks";
-import { SetCurrentPage, selectCurrentPage } from "./slices/pageSlice";
+import { useAppDispatch } from "../../redux/hooks/hooks";
+import { SetCurrentPage, selectCurrentPage } from "../../redux/slices/pageSlice";
import SocialIcons from './SocialIcons';
interface MenuProps
diff --git a/frontend/src/app/SocialIcons.tsx b/frontend/src/app/shared_components/SocialIcons.tsx
similarity index 100%
rename from frontend/src/app/SocialIcons.tsx
rename to frontend/src/app/shared_components/SocialIcons.tsx
diff --git a/frontend/src/app/Footer.tsx b/frontend/src/app/shared_components/footer/Footer.tsx
similarity index 99%
rename from frontend/src/app/Footer.tsx
rename to frontend/src/app/shared_components/footer/Footer.tsx
index 83bd549..ff30ef0 100644
--- a/frontend/src/app/Footer.tsx
+++ b/frontend/src/app/shared_components/footer/Footer.tsx
@@ -1,7 +1,7 @@
import { Button } from "@/components/ui/button";
import { useRouter } from "next/navigation";
import React, { useMemo, useState } from "react";
-import SocialIcons from "./SocialIcons";
+import SocialIcons from "../SocialIcons";
export default function Footer() {
const forms = {
diff --git a/frontend/src/app/shared_components/header/Menu.tsx b/frontend/src/app/shared_components/header/Menu.tsx
new file mode 100644
index 0000000..0beef82
--- /dev/null
+++ b/frontend/src/app/shared_components/header/Menu.tsx
@@ -0,0 +1,57 @@
+import { useRouter } from "next/navigation";
+import { useState } from 'react';
+import * as FaIcons from 'react-icons/fa';
+import { useSelector } from "react-redux";
+import { useAppDispatch } from "../../../redux/hooks/hooks";
+import { SetCurrentPage, selectCurrentPage } from "../../../redux/slices/pageSlice";
+import SocialIcons from '../SocialIcons';
+
+interface MenuProps
+{
+ Buttons: any[]
+}
+
+export default function Menu({ Buttons } : MenuProps) {
+ const [isOpen, setIsOpen] = useState(false);
+
+ const router = useRouter();
+ const mainDispatch = useAppDispatch();
+ const currentPage = useSelector(selectCurrentPage);
+ const [page, setPage] = useState(currentPage);
+
+ const toggleMenu = () => setIsOpen(!isOpen);
+
+ const onClickHandler = (url: string) => {
+ router.push(url);
+ mainDispatch(SetCurrentPage(url));
+ setPage(currentPage);
+ };
+
+ const navButtons: Array = new Array();
+
+ return (
+
+
+
+
+
+
+
+ {Buttons}
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
\ No newline at end of file
diff --git a/frontend/src/app/NavBar.tsx b/frontend/src/app/shared_components/header/NavBar.tsx
similarity index 93%
rename from frontend/src/app/NavBar.tsx
rename to frontend/src/app/shared_components/header/NavBar.tsx
index b9fb460..75ee22c 100644
--- a/frontend/src/app/NavBar.tsx
+++ b/frontend/src/app/shared_components/header/NavBar.tsx
@@ -4,11 +4,11 @@ import { Button } from "@/components/ui/button";
import { useRouter } from "next/navigation";
import { useState } from "react";
import { useSelector } from "react-redux";
-import { useAppDispatch } from "./hooks/hooks";
-import Menu from "./Menu";
+import { useAppDispatch } from "../../../redux/hooks/hooks";
+import Menu from "../Menu";
import NavButton from "./NavButton";
-import { SetCurrentPage, selectCurrentPage } from "./slices/pageSlice";
-import SocialIcons from "./SocialIcons";
+import { SetCurrentPage, selectCurrentPage } from "../../../redux/slices/pageSlice";
+import SocialIcons from "../SocialIcons";
interface NavBarProps {
diff --git a/frontend/src/app/NavButton.tsx b/frontend/src/app/shared_components/header/NavButton.tsx
similarity index 100%
rename from frontend/src/app/NavButton.tsx
rename to frontend/src/app/shared_components/header/NavButton.tsx
diff --git a/frontend/src/app/hooks/hooks.ts b/frontend/src/redux/hooks/hooks.ts
similarity index 100%
rename from frontend/src/app/hooks/hooks.ts
rename to frontend/src/redux/hooks/hooks.ts
diff --git a/frontend/src/app/slices/eventSlice.ts b/frontend/src/redux/slices/eventSlice.ts
similarity index 100%
rename from frontend/src/app/slices/eventSlice.ts
rename to frontend/src/redux/slices/eventSlice.ts
diff --git a/frontend/src/app/slices/execProfileSlice.ts b/frontend/src/redux/slices/execProfileSlice.ts
similarity index 100%
rename from frontend/src/app/slices/execProfileSlice.ts
rename to frontend/src/redux/slices/execProfileSlice.ts
diff --git a/frontend/src/app/slices/pageSlice.ts b/frontend/src/redux/slices/pageSlice.ts
similarity index 100%
rename from frontend/src/app/slices/pageSlice.ts
rename to frontend/src/redux/slices/pageSlice.ts
diff --git a/frontend/src/app/stores/store.ts b/frontend/src/redux/stores/store.ts
similarity index 100%
rename from frontend/src/app/stores/store.ts
rename to frontend/src/redux/stores/store.ts
diff --git a/frontend/src/app/thunks/EventThunks.ts b/frontend/src/redux/thunks/EventThunks.ts
similarity index 100%
rename from frontend/src/app/thunks/EventThunks.ts
rename to frontend/src/redux/thunks/EventThunks.ts
diff --git a/frontend/src/app/thunks/ProfileThunks.ts b/frontend/src/redux/thunks/ProfileThunks.ts
similarity index 94%
rename from frontend/src/app/thunks/ProfileThunks.ts
rename to frontend/src/redux/thunks/ProfileThunks.ts
index d318c47..43538de 100644
--- a/frontend/src/app/thunks/ProfileThunks.ts
+++ b/frontend/src/redux/thunks/ProfileThunks.ts
@@ -1,4 +1,4 @@
-import ExecProfile from "../ExecProfile";
+import ExecProfile from "../../app/about/ExecProfile";
import { AppDispatch, RootState } from "../stores/store";
import { ExecProfileObject } from "../slices/execProfileSlice";