diff --git a/public/karihk/emk.jpg b/public/karihk/emk.jpg new file mode 100644 index 0000000..25e7e72 Binary files /dev/null and b/public/karihk/emk.jpg differ diff --git a/public/karihk/epk.jpg b/public/karihk/epk.jpg new file mode 100644 index 0000000..3b5e8a8 Binary files /dev/null and b/public/karihk/epk.jpg differ diff --git a/public/karihk/gpk.jpg b/public/karihk/gpk.jpg new file mode 100644 index 0000000..24b7fec Binary files /dev/null and b/public/karihk/gpk.jpg differ diff --git a/public/karihk/gtk.png b/public/karihk/gtk.png new file mode 100644 index 0000000..a142d11 Binary files /dev/null and b/public/karihk/gtk.png differ diff --git a/public/karihk/kjk.png b/public/karihk/kjk.png new file mode 100644 index 0000000..28d0ee2 Binary files /dev/null and b/public/karihk/kjk.png differ diff --git a/public/karihk/ttk.jpg b/public/karihk/ttk.jpg new file mode 100644 index 0000000..f7c713b Binary files /dev/null and b/public/karihk/ttk.jpg differ diff --git a/public/karihk/vbk.png b/public/karihk/vbk.png new file mode 100644 index 0000000..78000cf Binary files /dev/null and b/public/karihk/vbk.png differ diff --git a/public/karihk/vik.png b/public/karihk/vik.png new file mode 100644 index 0000000..b4a58b5 Binary files /dev/null and b/public/karihk/vik.png differ diff --git a/public/kolik/baross.jpg b/public/kolik/baross.jpg new file mode 100644 index 0000000..ca215c5 Binary files /dev/null and b/public/kolik/baross.jpg differ diff --git a/public/kolik/bercsenyi.jpg b/public/kolik/bercsenyi.jpg new file mode 100644 index 0000000..56b865e Binary files /dev/null and b/public/kolik/bercsenyi.jpg differ diff --git a/public/kolik/karman.jpg b/public/kolik/karman.jpg new file mode 100644 index 0000000..03795b0 Binary files /dev/null and b/public/kolik/karman.jpg differ diff --git a/public/kolik/martos.jpg b/public/kolik/martos.jpg new file mode 100644 index 0000000..10df510 Binary files /dev/null and b/public/kolik/martos.jpg differ diff --git a/public/kolik/schonherz.jpg b/public/kolik/schonherz.jpg new file mode 100644 index 0000000..f943f4c Binary files /dev/null and b/public/kolik/schonherz.jpg differ diff --git a/public/kolik/vasarhelyi.jpg b/public/kolik/vasarhelyi.jpg new file mode 100644 index 0000000..6e64a3b Binary files /dev/null and b/public/kolik/vasarhelyi.jpg differ diff --git a/public/kolik/wigner.jpg b/public/kolik/wigner.jpg new file mode 100644 index 0000000..f3952a8 Binary files /dev/null and b/public/kolik/wigner.jpg differ diff --git a/src/app/(app)/[lang]/kollegium/felveteli-tajekoztato/components/DormitoryAdmissionInformationContent.tsx b/src/app/(app)/[lang]/kollegium/felveteli-tajekoztato/components/DormitoryAdmissionInformationContent.tsx new file mode 100644 index 0000000..e77a0ae --- /dev/null +++ b/src/app/(app)/[lang]/kollegium/felveteli-tajekoztato/components/DormitoryAdmissionInformationContent.tsx @@ -0,0 +1,93 @@ +"use client"; + +import {PostBlock} from "@/components/common/PageBlock"; +import DormitoryCardsComtainer from "./DormitoryCardsComtainer"; +import StudentUnionCardsComtainer from "./StudentUnionCardsComtainer"; + +export interface DormitoryAdmissionInformationContent { + admission_information: { + title: string, + capacity: string, + capacity_p1: string, + capacity_p2: string, + application: string, + application_p1: string, + application_p2: string, + application_p3: string, + contacts: string, + contacts_p1: string, + contacts_p2: string, + contacts_p3: string, + dormitory: string + }, + faculties: { + ÉMK: string, + GPK: string, + ÉPK: string, + VBK: string, + VIK: string, + GTK: string, + TTK: string, + KJK: string + } + +} + + +export default function DormitoryAdmissionInformationContent({ content }: Readonly<{ content: DormitoryAdmissionInformationContent }>) { + const admission_information = content.admission_information; + return ( +
+ +

+ {admission_information.capacity} +

+

+ {admission_information.capacity_p1} +

+
+ +
+

+ {admission_information.capacity_p2} +

+
+ +

+ {admission_information.application} +

+

+ {admission_information.application_p1} +

+

+ {admission_information.application_p2} + + KEFIR + + {admission_information.application_p3} +

+ +
+ +

+ {admission_information.contacts} +

+

+ {admission_information.contacts_p1} +

+
+ + +
+

+ {admission_information.contacts_p2} + { + info@bmeehk.hu + } + {admission_information.contacts_p3} +

+
+
+ + )} + diff --git a/src/app/(app)/[lang]/kollegium/felveteli-tajekoztato/components/DormitoryCardsComtainer.tsx b/src/app/(app)/[lang]/kollegium/felveteli-tajekoztato/components/DormitoryCardsComtainer.tsx new file mode 100644 index 0000000..499dce9 --- /dev/null +++ b/src/app/(app)/[lang]/kollegium/felveteli-tajekoztato/components/DormitoryCardsComtainer.tsx @@ -0,0 +1,65 @@ +"use client"; + +import { ImageCard } from "@/components/common/ImageCard"; + + +export default function DormitoryCardsComtainer({ dormitory} : Readonly<{ dormitory: string}>) { + const dimensions = { + width: 60, + height: 60 + } + const imageFolder = "/kolik/" + const baross = { + imageSrc: imageFolder+"baross.jpg", + title: "Baross Gábor "+dormitory, + dimensions: dimensions, + href: "https://epiteszhk.bme.hu/kollegium/kollegiumaink/baross-gabor-kollegium/" + } + const bercsenyi = { + imageSrc: imageFolder+"bercsenyi.jpg", + title: "Bercsényi 28-30 "+dormitory, + dimensions: dimensions, + href: "https://bercsenyi.bme.hu/" + } + const karman = { + imageSrc: imageFolder+"karman.jpg", + title: "Kármán Tódor "+dormitory, + dimensions: dimensions, + href: "https://ttkhk.bme.hu/koli/karman-2/" + } + const martos = { + imageSrc: imageFolder+"martos.jpg", + title: "Martos "+dormitory, + dimensions: dimensions, + href: "https://martos.bme.hu/" + } + const schonherz = { + imageSrc: imageFolder+"schonherz.jpg", + title: "Schönherz "+dormitory, + dimensions: dimensions, + href: "https://sch.bme.hu/" + } + const vasarhelyi = { + imageSrc: imageFolder+"vasarhelyi.jpg", + title: "Vásárhelyi Pál "+dormitory, + dimensions: dimensions, + href: "https://vpk.bme.hu/" + } + const wigner = { + imageSrc: imageFolder+"wigner.jpg", + title: "Wigner Jenő "+dormitory, + dimensions: dimensions, + href: "https://wigner.bme.hu/" + } + return ( +
+ + + + + + + +
+ ); +} \ No newline at end of file diff --git a/src/app/(app)/[lang]/kollegium/felveteli-tajekoztato/components/StudentUnionCardsComtainer.tsx b/src/app/(app)/[lang]/kollegium/felveteli-tajekoztato/components/StudentUnionCardsComtainer.tsx new file mode 100644 index 0000000..683624e --- /dev/null +++ b/src/app/(app)/[lang]/kollegium/felveteli-tajekoztato/components/StudentUnionCardsComtainer.tsx @@ -0,0 +1,74 @@ +"use client"; +import { DormitoryAdmissionInformationContent} from "./DormitoryAdmissionInformationContent"; +import { ImageCard } from "@/components/common/ImageCard"; + + +export default function StudentUnionCardsComtainer({ content }: Readonly<{ content: DormitoryAdmissionInformationContent; }>) { + const faculties = content.faculties; + const dimensions = { + width: 62, + height: 72 + } + const imageFolder = "/karihk/" + const emk = { + imageSrc: imageFolder+"emk.jpg", + title: faculties.ÉMK, + dimensions: dimensions, + href: "https://emkhk.bme.hu/" + } + const epk = { + imageSrc: imageFolder+"epk.jpg", + title: faculties.ÉPK, + dimensions: dimensions, + href: "https://epiteszhk.bme.hu" + } + const gtk = { + imageSrc: imageFolder+"gtk.png", + title: faculties.GTK, + dimensions: dimensions, + href: "http://gtkhk.hu/" + } + const gpk = { + imageSrc: imageFolder+"gpk.jpg", + title: faculties.GPK, + dimensions: dimensions, + href: "https://ghk.bme.hu/" + } + const kjk = { + imageSrc: imageFolder+"kjk.png", + title: faculties.KJK, + dimensions: dimensions, + href: "http://kozlekhk.hu/" + } + const ttk = { + imageSrc: imageFolder+"ttk.jpg", + title: faculties.TTK, + dimensions: dimensions, + href: "https://ttkhk.bme.hu" + } + const vbk = { + imageSrc: imageFolder+"vbk.png", + title: faculties.VBK, + dimensions: dimensions, + href: "http://www.vegyeszhk.hu/" + } + const vik = { + imageSrc: imageFolder+"vik.png", + title: faculties.VIK, + dimensions: dimensions, + href: "https://vik.hk/" + } + + return ( +
+ + + + + + + + +
+ ); +} diff --git a/src/app/(app)/[lang]/kollegium/felveteli-tajekoztato/page.tsx b/src/app/(app)/[lang]/kollegium/felveteli-tajekoztato/page.tsx new file mode 100644 index 0000000..97e77c0 --- /dev/null +++ b/src/app/(app)/[lang]/kollegium/felveteli-tajekoztato/page.tsx @@ -0,0 +1,26 @@ +import DormitoryAdmissionInformationContent from "@/app/(app)/[lang]/kollegium/felveteli-tajekoztato/components/DormitoryAdmissionInformationContent" +import { PageHeader } from "@/components/common/PageHeader"; +import { getDictionary } from "@/get-dictionary"; +import { Locale } from "@/i18n-config"; + +export default async function AdmissionInformationPage({ + params }: Readonly<{ params: Promise<{ lang: Locale }> }>){ + const { lang } = await params; + const dictionary = await getDictionary(lang); + + const admission_information = dictionary.dormitories.admission_information; + const faculties = dictionary.faculties; + const content = { + admission_information, + faculties + } + + return ( +
+
+ + +
+
+ ) +} diff --git a/src/app/(app)/[lang]/kollegium-szabalyzatok/loading.tsx b/src/app/(app)/[lang]/kollegium/kollegium-szabalyzatok/loading.tsx similarity index 100% rename from src/app/(app)/[lang]/kollegium-szabalyzatok/loading.tsx rename to src/app/(app)/[lang]/kollegium/kollegium-szabalyzatok/loading.tsx diff --git a/src/app/(app)/[lang]/kollegium-szabalyzatok/page.tsx b/src/app/(app)/[lang]/kollegium/kollegium-szabalyzatok/page.tsx similarity index 100% rename from src/app/(app)/[lang]/kollegium-szabalyzatok/page.tsx rename to src/app/(app)/[lang]/kollegium/kollegium-szabalyzatok/page.tsx diff --git a/src/app/(app)/components/navigation-items.ts b/src/app/(app)/components/navigation-items.ts index 4d67347..f3e7c73 100644 --- a/src/app/(app)/components/navigation-items.ts +++ b/src/app/(app)/components/navigation-items.ts @@ -127,6 +127,9 @@ export function getNavigationItems(lang: string): NavigationItem[] { targetBlank: false, items: [ { label: t("Bemutató", "Overview"), href: "#", targetBlank: false }, + { label: t("Felvételi tájékoztató", "Admission Information"), + href: "/kollegium/felveteli-tajekoztato", + targetBlank: false }, { label: t("Szabályzatok", "Regulations"), href: link("/kollegium-szabalyzatok"), diff --git a/src/app/(app)/globals.css b/src/app/(app)/globals.css index 509519b..548553f 100644 --- a/src/app/(app)/globals.css +++ b/src/app/(app)/globals.css @@ -169,6 +169,15 @@ .hover\:bg-ehk-light-red:hover { background-color: var(--ehk-light-red); } .hover\:text-ehk-light-red:hover { color: var(--ehk-light-red); } .hover\:border-ehk-light-red:hover { border-color: var(--ehk-light-red); } + + /*Global word break and hyphenation*/ + /*Can be locally overridden by 'hypens-none' tailwind class for specific elements if needed*/ + /*This code is placed here, in the utilites layer, because of CSS displaying priorities*/ + + p, h1, h2, h3, h4, h5, h6, li, a, span, div, button, input, textarea{ + word-break: break-word; + hyphens: auto; +} } @layer base { diff --git a/src/components/common/ImageCard.tsx b/src/components/common/ImageCard.tsx new file mode 100644 index 0000000..75ba8d3 --- /dev/null +++ b/src/components/common/ImageCard.tsx @@ -0,0 +1,48 @@ +"use client"; +import Image from "next/image"; +import { Card, CardContent } from "@/components/ui/card"; + +interface ImageCardProps { + href: string; + dimensions: { + width: number; + height: number; + }; + imageSrc: string; + title: string; + description?: string; +} + +export function ImageCard({ content }: Readonly<{content: ImageCardProps }> ) { + const { href, imageSrc, title, description} = content; + const { width, height } = content.dimensions; + return ( + + + +
+
+
+ {title} +
+
+ +
+

+ {title} +

+

{description}

+
+
+
+
+
+ ) + +} \ No newline at end of file diff --git a/src/components/common/PageBlock.tsx b/src/components/common/PageBlock.tsx new file mode 100644 index 0000000..36e1fc9 --- /dev/null +++ b/src/components/common/PageBlock.tsx @@ -0,0 +1,24 @@ +"use client" + +import * as React from "react" + +import { cn } from "@/lib/utils" +import { Card, CardContent } from "@/components/ui/card"; + +function PostBlock({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ + +
+ +
+
+
+
+ ) +} + +export { PostBlock } + diff --git a/src/dictionaries/en.json b/src/dictionaries/en.json index 462bba2..4436b1b 100644 --- a/src/dictionaries/en.json +++ b/src/dictionaries/en.json @@ -160,6 +160,23 @@ "knowledge_base": { "title": "Cheat Sheets" }, + "dormitories":{ + "admission_information": { + "title": "Dormitory Admission Information", + "capacity": "Capacity", + "capacity_p1": "Students of the Budapest University of Technology and Economics can get accommodation in a total of 7 dormitories:", + "capacity_p2": "Students of each faculty can move into the dormitories assigned to their faculty (you can find more information about this on the websites of the Faculty Student Unions).", + "application": "Application Process", + "application_p1": "You can apply for dormitory accommodation through the dormitory admission process. The USU has created the Unified Dormitory Admission System, which provides a framework for the faculties to carry out the applications, but you can find the exact regulations applicable to you on the website of the relevant Faculty Student Union.", + "application_p2": "The application submission interface for the admission process is ", + "application_p3": " the Unified Dormitory Admission and Information System (Egységes Kollégiumi Felvételi Rendszer), where you can log in with the Neptun-code (i.e., the BME Directory generated from it) received in the admission information package from the university.", + "contacts": "Contacts", + "contacts_p1": "Should you have any questions regarding dormitory accommodation, please contact the relevant Faculty Student Union, which can be reached at the following addresses:", + "contacts_p2": "For general inquiries, feel free to contact us at ", + "contacts_p3": ".", + "dormitory": "Dormitory" + } + }, "faculties": { "ÉMK": "Faculty of Civil Engineering", "GPK": "Faculty of Mechanical Engineering", diff --git a/src/dictionaries/hu.json b/src/dictionaries/hu.json index a21a7ae..52350c0 100644 --- a/src/dictionaries/hu.json +++ b/src/dictionaries/hu.json @@ -160,6 +160,23 @@ "knowledge_base": { "title": "Kisokosok" }, + "dormitories":{ + "admission_information": { + "title": "Kollégiumi felvételi tájékoztató", + "capacity": "Férőhelyek", + "capacity_p1": "A Budapesti Műszaki és Gazdaságtudományi Egyetem hallgatói összesen 7 kollégiumban kaphatnak férőhelyet: ", + "capacity_p2": "Minden kar hallgatói a karhoz rendelt kollégiumokba költözhetnek be (bővebb információt a kari Hallgatói Képviseletek honlapján találhatsz erről).", + "application": "Jelentkezés menete", + "application_p1": "Kollégiumi férőhelyben kollégiumi felvételi eljárás során részesülhettek. Az EHK a felvételi eljárás lebonyolítására megalkotta az Egységes Kollégiumi Felvételi Rendszert, ami egy keretet ad a karoknak a pályázat lebonyolítására, de a rád vonatkozó pontos szabályzatot az illetékes Kari Hallgatói Képviselet oldalán találod meg.", + "application_p2": "A felvételi pályázat leadási felülete a ", + "application_p3": ", azaz a Kollégiumi Egységes Felvételi és Információs Rendszer, ahova az egyetemtől kapott felvételi tájékoztató csomagban kapott Neptun-kóddal (azaz az ebből generált BME Címtárral) tudtok belépni.", + "contacts": "Elérhetőségek", + "contacts_p1": "Amennyiben bármilyen kérdésetek merül fel a kollégiumi elhelyezéssel kapcsolatban, forduljatok az illetékes Kari Hallgatói Képviselethez, melyek oldalát az alábbi címeken érhetitek el:", + "contacts_p2": "Általános ügyekben forduljatok bátran hozzánk az ", + "contacts_p3": " elérhetőségen.", + "dormitory": "Kollégium" + } + }, "faculties": { "ÉMK": "Építőmérnöki Kar", "GPK": "Gépészmérnöki Kar",