feat/add-new-pages #24

Merged
palid merged 4 commits from feat/add-new-pages into main 2025-04-08 15:22:02 +00:00
12 changed files with 519 additions and 90 deletions

View file

@ -12,6 +12,6 @@ export default async function Home(
const currentLocale = getLocale(locale)
const t = translations[currentLocale];
return <LandingPage t={t} />
return <LandingPage t={t} currentLocale={currentLocale} />
}

View file

@ -37,6 +37,14 @@ export function generateStaticParams() {
locale: "en",
slug: "privacy",
},
{
locale: "pl",
slug: "rules",
},
{
locale: "en",
slug: "rules",
},
];
}

View file

@ -20,7 +20,7 @@ export default function Map({ t }: {
/>
<Marker position={[51.104955057760804, 17.087378768775697]}>
<Popup>
{t.where.location}
{t.details.where.location}
</Popup>
</Marker>
</MapContainer>

View file

@ -12,6 +12,49 @@ import { MainpageNav } from './nav';
import { NewsletterPopup } from './newsletter-form';
import { useTheme } from "./providers";
import { Skeleton } from './ui/skeleton';
import { Lang } from '@/i18n/locales';
function Heading({ children }: { children: ReactElement | string }) {
return <h2 className="text-5xl font-bold tracking-tighter max-w-3xl mx-auto">{children}</h2>
}
function Subheading({ children }: { children: ReactElement | string }) {
return <h3 className="text-3xl font-bold tracking-tighter max-w-3xl mx-auto">{children}</h3>
}
function TinyHeading({ children }: { children: ReactElement | string }) {
return <h4 className="text-lg font-bold tracking-tighter max-w-3xl mx-auto mb-2">{children}</h4>
}
function TinyTextWrapper({ children }: { children: ReactElement }) {
return <div className="text-sm text-muted-foreground max-w-3xl mx-auto whitespace-pre-line">
{children}
</div>
}
function TextWrapper({ children }: { children: ReactElement }) {
return <div className="text-lg text-muted-foreground max-w-3xl mx-auto whitespace-pre-line">
{children}
</div>
}
function NewSection({
id,
children,
after
}: {
id: string
children: ReactElement;
after?: ReactElement;
}) {
return (<section id={id} className="bg-background">
<div className="container mx-auto px-4 gap-6 flex flex-col">
{children}
{after}
</div>
</section>)
}
function Section({
id,
@ -143,11 +186,12 @@ const LazyLeafletMap = dynamic(() => import('./event-map.lazy'), {
})
export default function LandingPage(
{ t }: { t: Translations }
{ t, currentLocale }: { t: Translations, currentLocale: Lang }
) {
const { theme } = useTheme()
return (
<div>
<MainpageNav t={t} />
@ -162,29 +206,110 @@ export default function LandingPage(
<div className={`text-center ${jgs7.className}`}>
<h1 className="text-5xl sm:text-6xl md:text-8xl font-bold tracking-tighter light:text-background">{t.hero.title}</h1>
<p className="mt-2 text-3xl sm:text-4xl md:text-5xl lg:text-6xl xl-text:7xl 2xl:text-8xl text-primary">{t.hero.subtitle}</p>
<p className="mt-2 text-3xl sm:text-4xl md:text-5xl lg:text-6xl xl-text:7xl 2xl:text-8xl text-primary ">{t.when.date}</p>
<NewsletterPopup t={t} />
<p className="mt-2 text-3xl sm:text-4xl md:text-5xl lg:text-6xl xl-text:7xl 2xl:text-8xl text-primary ">{t.details.when.date}</p>
<div className='flex flex-col space-y-4 max-w-20 items-center justify-center m-auto'>
<NewsletterPopup t={t} />
</div>
</div>
</div>
</section>
<Section id="about" title={t.about.title} paragraphs={<p>{t.about.description}</p>} />
<Section id="where" title={t.where.title} paragraphs={<p>{t.where.location}</p>} after={<LazyLeafletMap t={t} />} />
<NewSection id="about">
<>
<div>
<Heading>{t.about.title}</Heading>
</div>
<section>
<TextWrapper><p>{t.about.description}</p></TextWrapper>
</section>
<section>
<Subheading>{t.details.when.title}</Subheading>
<TextWrapper><p className={`text-primary text-3xl ${jgs7.className}`}>{t.details.when.date}</p></TextWrapper>
<TextWrapper><p>{t.details.when.extra}</p></TextWrapper>
</section>
<section>
<Subheading>{t.details.where.title}</Subheading>
<TextWrapper><p>{t.details.where.location}</p></TextWrapper>
<LazyLeafletMap t={t} />
</section>
</>
</NewSection>
<Section id="when" title={t.when.title} paragraphs={<>
<p className={`text-primary text-3xl ${jgs7.className}`}>{t.when.date}</p>
<p className="mt-4">{t.when.extra}</p></>}
/>
<Section id="tickets" title={t.tickets.title} paragraphs={<p>{t.tickets.status}</p>} />
<Section id="accommodation" title={t.accommodation.title} paragraphs={<p>{t.accommodation.description}</p>} />
<Section id="food" title={t.food.title} paragraphs={<p>{t.food.description}</p>} />
<Section id="contact" title={t.contact.title} paragraphs={<a href={`mailto:${t.contact.email}`}>{t.contact.email}</a>} />
<Section id="credits" title={t.credits.title} paragraphs={<>
<p>{t.credits.usedFonts}</p>
<p><a className="hover:underline" href="https://velvetyne.fr/fonts/jgs-font/">{t.credits.jgs7}</a></p>
<p><a className="hover:underline" href="https://fonts.google.com/specimen/Oxanium">{t.credits.oxanium}</a></p>
</>}
/>
<NewSection id="tickets">
<>
<div>
<Heading>{t.tickets.title}</Heading>
</div>
<section>
<TextWrapper><p>{t.tickets.status}</p></TextWrapper>
</section>
</>
</NewSection>
<NewSection id="cfp">
<>
<div>
<Heading>{t.cfp.title}</Heading>
</div>
<section>
<TextWrapper><p>{t.cfp.status}</p></TextWrapper>
</section>
</>
</NewSection>
<NewSection id="faq">
<>
<div>
<Heading>{t.details.title}</Heading>
</div>
<section>
<Subheading>{t.faq.accommodation.title}</Subheading>
<TextWrapper><p>{t.faq.accommodation.description}</p></TextWrapper>
</section>
<section>
<Subheading>{t.faq.accesibility.title}</Subheading>
<TextWrapper><p>{t.faq.accesibility.description} <a href="mailto:orga@cebula.camp">{t.contact.email}</a></p></TextWrapper>
</section>
<section>
<Subheading>{t.faq.food.title}</Subheading>
<TextWrapper><p>{t.faq.food.description}</p></TextWrapper>
</section>
<section>
<Subheading>{t.faq.transport.title}</Subheading>
<TextWrapper><p>{t.faq.transport.description}</p></TextWrapper>
</section>
<section>
<Subheading>{t.faq.documents.title}</Subheading>
<TextWrapper><p>
<a className='hover:text-primary' href={`/${currentLocale}/pages/rules`}>📜 {t.faq.documents.rules}</a></p></TextWrapper>
<TextWrapper><p>
<a className='hover:text-primary' href={`/${currentLocale}/pages/privacy`}>📜 {t.faq.documents.privacyPolicy}</a></p></TextWrapper>
</section>
</>
</NewSection>
<NewSection id="contact">
<>
<div>
<Heading>{t.contact.title}</Heading>
</div>
<section>
<TextWrapper><p><a href={`mailto:${t.contact.email}`}>{t.contact.email}</a></p></TextWrapper>
</section>
</>
</NewSection>
<NewSection id="credits">
<>
<section className='text-sm'>
<TinyHeading>{t.credits.title}</TinyHeading>
<TinyTextWrapper><p>{t.credits.usedFonts}</p></TinyTextWrapper>
<TinyTextWrapper><p><a className="hover:underline" href="https://velvetyne.fr/fonts/jgs-font/">{t.credits.jgs7}</a></p></TinyTextWrapper>
<TinyTextWrapper><p><a className="hover:underline" href="https://fonts.google.com/specimen/Oxanium">{t.credits.oxanium}</a></p></TinyTextWrapper>
</section>
</>
</NewSection>
</main>
</div>
)

View file

@ -2,6 +2,7 @@
import { Button } from "@/components/ui/button";
import { MoonIcon, SunIcon } from "lucide-react";
import Link from "next/link";
import { useTheme } from "./providers";
import { LanguageSelector } from "./ui/language-selector";
@ -14,9 +15,9 @@ export function NavContainer({ children, title, }: { children: React.ReactNode,
<div className="flex items-center justify-between h-16">
<div className="flex gap-4">
<LanguageSelector />
<a href="#" className="text-xl font-bold tracking-tighter hover:text-primary transition-colors">
<Link href="/" className="text-xl font-bold tracking-tighter hover:text-primary transition-colors">
<h1>{title}</h1>
</a>
</Link>
</div>
<div className="flex items-center">
{children}

View file

@ -7,14 +7,11 @@ import { MobileNav } from "./mobile-nav"
import { NavContainer } from "./nav-container"
const linksOrder: Array<keyof (typeof translations.pl)["nav"]> = [
"hero",
"about",
"where",
"when",
"tickets",
"accommodation",
"food",
"contact",
'about',
'tickets',
'cfp',
'details',
'contact'
]
export function MainpageNav({

View file

@ -15,7 +15,7 @@ export const LanguageSelector = () => {
}
const lang = params?.locale || 'pl';
const changedLang = pathname.replace(`/${lang}/`, `/${replacements[lang]}/`)
const changedLang = pathname.replace(`/${lang}`, `/${replacements[lang]}`)
if (lang === 'pl') return (<>
<Link suppressHydrationWarning className="pt-1" href={changedLang}>🇬🇧</Link></>);

View file

@ -8,14 +8,11 @@ const pl = {
siteTitle: "CebulaCamp 2025",
nav: {
title: "CEBULACAMP",
hero: "Cebula",
about: "O nas",
when: "Kiedy",
where: "Gdzie",
food: "Wyżywienie",
contact: "Kontakt",
about: "O wydarzeniu",
tickets: "Bilety",
accommodation: "Nocleg",
cfp: "Zgłoś prelekcję",
details: "FAQ",
contact: "Kontakt",
},
mobileNav: {
toggleMenu: "Aktywuj menu",
@ -26,34 +23,56 @@ const pl = {
subtitle: "REAKTYWACJA",
},
about: {
title: "O nas",
title: "O wydarzeniu",
description:
"Zjazd hakerów, miłośników open source, wolnych duchów. Organizowany przez hakerów dla hakerów. Będzie mate, będzie utopia, będzie chillera.\n\nReaktywacja wydarzenia po długiej przerwie od ostatniej edycji w 2021. Tym razem widzimy się we Wrocławiu, w budynku starej zajezdni tramwajowej który zamienimy na łączone hackcenter i salę prelekcyjną.\n\nSpodziewaj się ciekawych prezentacji, dziwnych instalacji artystycznych i mnóstwa dyskusji. Możesz opowiedzieć o swoim projekcie, zademonstrować skonstruowane zabawki, albo wspólnie coś stworzyć podczas eventu.",
},
where: {
title: "Gdzie",
location:
"Klub „Łącznik”, Tramwajowa 1-3, Wrocław, obok Hackerspace Wrocław",
},
when: {
title: "Kiedy",
date: "28-31.08.2025",
extra:
"Chętnych do pomocy w przygotowaniach zapraszamy już na Day 0, 27 sierpnia",
details: {
title: "FAQ",
where: {
title: "Lokalizacja",
location:
"Wydarzenie odbędzie się w Centrum Kultury Akademickiej i Inicjatyw Lokalnych Czasoprzestrzeń na terenie dawnej zajezdni tramwajowej. Centralnym punktem spotkań będzie klub Łącznik gdzie będzie miejsce na prelekcje i wspólne hackowanie.\n\nKlub „Łącznik”, Tramwajowa 1-3, Wrocław, obok Hackerspace Wrocław",
},
when: {
title: "Kiedy",
date: "28-31.08.2025",
extra:
"Chętnych do pomocy w przygotowaniach zapraszamy już na Day 0, 27 sierpnia",
},
},
tickets: {
title: "Bilety",
status: "Wkrótce ™",
},
accommodation: {
title: "Nocleg",
description:
"W duchu prawdziwego campu przygotowujemy ogrodzone miejsce do rozbicia namiotu z toaletami i prysznicem. Ilość miejsc namiotowych ograniczona, obowiązuje kolejność rezerwacji. Jest także możliwość zakwaterowania we własnym zakresie w pobliskim hotelu lub akademikach.",
cfp: {
title: "Zgłoś prelekcję",
status: "Wkrótce ™",
},
food: {
title: "Wyżywienie",
description:
"We własnym zakresie, w okolicy dostępne są knajpy z dowozem, wieczory planujemy umilić wspólnym grillowaniem.",
faq: {
accommodation: {
title: "Nocleg",
description: `Dla uczestników przewidziano możliwość noclegu we własnych namiotach na zielonym trawniku znajdującym się na terenie zajezdni. Teren całej zajezdni jest ogrodzony, natomiast nie jest strzeżony. Toalety i prysznic są dostępne dla wszystkich uczestników, a ich infrastruktura została dostosowana do potrzeb osób o ograniczonej sprawności ruchowej.\n\nOsoby preferujące inne warianty noclegowe mogą skorzystać z oferty Hotelu Zoo lub pobliskich akademików.`,
},
accesibility: {
title: "Dostępność",
description: `Cały teren znajduje się na poziomie gruntu. Warto jednak pamiętać, że część nawierzchni jest wyłożona kostką brukową, co może być trudniejsze do pokonania dla osób korzystających z wózków inwalidzkich. Osoby potrzebujące jakiegokolwiek wsparcia w zakresie dostępności prosimy o kontakt: `,
},
food: {
title: "Wyżywienie",
description:
"W bezpośrednim sąsiedztwie znajduje się Biedronka oraz wiele lokali gastronomicznych oferujących dowóz jedzenia, co zapewni uczestnikom wygodę i dostęp do posiłków przez cały czas trwania wydarzenia. Planujemy również mały kącik kawowo-herbaciany oraz wieczory ze wspólnym grillowaniem.",
},
transport: {
title: "Transport i parking",
description:
"Jako że wydarzenie organizowane jest terenie zajezdni tramwajowej to mamy w pobliżu przystanek linii tramwajowych i autobusowych dojeżdżających do centrum oraz dworca głównego. Na terenie zajezdni znajduje się parking.",
},
documents: {
title: "Dokumenty",
rules: "Regulamin wydarzenia",
privacyPolicy: "Polityka prywatności",
},
},
contact: {
title: "Kontakt",
@ -85,14 +104,11 @@ const en = {
siteTitle: "CebulaCamp 2025",
nav: {
title: "CEBULACAMP",
hero: "Onion",
about: "About us",
when: "When",
where: "Where",
food: "Food",
contact: "Contact",
about: "About the event",
tickets: "Tickets",
accommodation: "Accomodation",
cfp: "Call for papers",
details: "FAQ",
contact: "Contact",
},
mobileNav: {
toggleMenu: "Toggle menu",
@ -103,34 +119,55 @@ const en = {
subtitle: "REACTIVATED",
},
about: {
title: "About us",
title: "About the event",
description:
"A gathering of hackers, open source enthusiasts, and free spirits. Organized by hackers for hackers. An utopia of mate and chill vibes.\n\nFirst event since a long pause that started on 2021. This year we'll see eachother in Wrocław, in an old tram depot building which we'll turn into a combined hack center and talk stage.\n\nExpect interesting presentations, weird art installations, and lots of discussions. Talk about your project, show off the stuff you've built, or work on something together during the event.",
},
where: {
title: "Where",
location:
"“Łącznik” Club, Tramwajowa 1-3, Wrocław, next to Hackerspace Wrocław",
},
when: {
title: "When",
date: "28-31.08.2025",
extra:
"Those willing to help with preparations are welcome to join on Day 0, August 27",
details: {
title: "FAQ",
where: {
title: "Location",
location: `The event will take place at the Centre for Academic Culture and Local Initiatives Czasoprzestrzeń on the premises of the former tram depot. The central meeting point will be the Łącznik club, where there will be a place for lectures and joint hacking.\n\nClub "Łącznik", Tramwajowa 1-3, Wrocław, next to Hackerspace Wrocław.`,
},
when: {
title: "When",
date: "28-31.08.2025",
extra:
"Those willing to help with preparations are welcome to join on Day 0, August 27",
},
},
tickets: {
title: "Tickets",
status: "Soon ™",
},
accommodation: {
title: "Accommodation",
description:
"In the true camp spirit, we're preparing a fenced area for pitching tents with toilets and shower facilities. The number of tent spots is limited, first-come-first-served basis. There's also the possibility of arranging your own accommodation in a nearby hotel or student dormitories.",
cfp: {
title: "Call for papers",
status: "Soon ™",
},
food: {
title: "Food",
description:
"Self-catering, there are restaurants with delivery in the area, and we plan to enhance the evenings with communal barbecues.",
faq: {
accommodation: {
title: "Accommodation",
description: `Participants will have the option of staying overnight in their own tents on the green lawn located on the depot grounds. The entire depot area is fenced, but not guarded. Toilets and showers are available to all participants, and their infrastructure has been adapted to the needs of people with limited physical fitness.\n\nPeople who prefer other accommodation options can take advantage of the offer of the Zoo Hotel or nearby dormitories.`,
},
accesibility: {
title: "Accessibility",
description: `The entire area is at ground level. However, it is worth remembering that part of the surface is paved with cobblestones, which may be more difficult for people using wheelchairs. People who need any support in terms of accessibility, please contact: `,
},
food: {
title: "Food",
description:
"In the immediate vicinity there is a Biedronka and many restaurants offering food delivery, which will provide participants with convenience and access to meals throughout the event. We are also planning a small coffee and tea corner and evenings with a joint barbecue.",
},
transport: {
title: "Transport and parking",
description:
"As the event is organized at the tram depot, there is a tram and bus stop nearby, going to the city center and the main station. There is a parking lot at the depot.",
},
documents: {
title: "Documents",
rules: "Rules of the event",
privacyPolicy: "Privacy Policy",
},
},
contact: {
title: "Contact",

View file

@ -1,6 +1,107 @@
# Privacy policy
# Privacy Policy for Cebula Camp 2025
You will see a privacy policy soon.
It's just a placeholder for now.
This policy applies to websites operating under the following URLs: [cebula.camp](https://cebula.camp), [cfp.cebula.camp](https://cfp.cebula.camp), [tickets.cebula.camp](https://tickets.cebula.camp), and [news.cebula.camp](https://news.cebula.camp).
The Administrator and Operator of personal data is Stowarzyszenie Hackerspace Wrocław (KRS: 0000531222) with its registered office at ul. Wróblewskiego 38, 51-627 Wrocław.
For inquiries regarding personal data, contact us at: [kontakt@hswro.org](mailto:kontakt@hswro.org).
---
## User Rights
Providing personal data is voluntary but necessary for service provision.
By contacting the data administrator, users can request:
- Access to their personal data,
- Correction,
- Deletion,
- Data transfer,
- Restriction of processing,
- Objection to further processing.
Users have the right to file a complaint regarding data processing by the Operator with the supervisory authority: Personal Data Protection Office. Contact details can be found at: [https://uodo.gov.pl/](https://uodo.gov.pl/).
---
## Collected Data
Websites collect personal data for the following purposes:
- Provision of ordered services,
- Newsletter distribution,
- Collecting talk proposals.
Data collection methods include:
- Voluntarily entered data in forms, stored in the Operators systems,
- Storing cookies on users' devices.
---
## Ticket Sales
When selling tickets, we collect the following personal data:
1. Purchasers email address (for identification and ticket-related contact),
2. Participants name and preferred pronouns (if provided, for communication),
3. Payers full name, address, and bank account number (for order processing).
Cookies are used to facilitate purchases and maintain cart status. We do not use tracking or marketing cookies.
For bank transfer payments, our bank and authorized accounting personnel will have access to the senders transaction details. These details will be processed and stored solely for accounting documentation purposes.
---
## Newsletter
For newsletter management, we collect:
1. Subscribers email address,
2. Subscribers name or nickname (if provided).
The email and name (if provided) will be transmitted in an unencrypted form to the subscriber's email server. No personal data is shared with third parties.
Sent emails contain an embedded remote image ('tracking pixel'). This is used to analyze the approximate deliverability of sent messages. Images do not individually identify subscribers, and no metadata about the subscriber is collected.
---
## CFP (Call for Papers)
For collecting talk proposals, we gather:
1. Submitters email address,
2. Submitters name or nickname.
---
## Logs
To ensure technical reliability, server logs are maintained. These may include:
- URLs of requested resources (pages, files),
- Request timestamps,
- Client station name (HTTP protocol identification),
- Error information from HTTP transactions,
- User browser details,
- IP address information,
- Diagnostic data related to self-service order processing,
- Email correspondence related to the Operator.
---
## Data Processing Methods
In certain cases, the Administrator may share personal data with other recipients when necessary to fulfill a contract or comply with legal obligations. Recipients may include:
- Hosting service providers (data processing agreement),
- Authorized employees and collaborators using the data for specific purposes.
Personal data is processed only as long as necessary for purposes defined by legal regulations (e.g., accounting). After this period, all data is anonymized.
Personal data is not transferred to third countries under data protection regulations, meaning it is not sent outside the European Union.
Login and personal data entry areas are protected with SSL encryption. This ensures that personal data and login credentials entered on the website are encrypted on the users device and can only be read by the target server.
Return to the [homepage](/en/)

22
src/pages/en/rules.mdx Normal file
View file

@ -0,0 +1,22 @@
# Rules of Cebula Camp 2025 event
1. The organizer of the Cebula Camp event (hereinafter referred to as the Event) is Stowarzyszenie Hackerspace Wrocław (registered under KRS number 0000531222).
2. The administrator of the personal data of the Event participants is Stowarzyszenie Hackerspace Wrocław (registered under KRS number 0000531222).
3. The Event takes place from August 28 to August 31, 2025, at Centrum Kultury Akademickiej i Inicjatyw Lokalnych Czasoprzestrzeń.
4. The Event is a closed and paid event.
5. Each participant of the Event is required to purchase a ticket.
6. The purchase of a ticket entitling participation in the Event constitutes acceptance of these Terms and Conditions.
7. The Event is intended exclusively for adults. The Organizer reserves the right to check the participant's age verification document.
8. Each participant of the Event is required to wear the assigned ID badge. Only Organizers and Event Staff are authorized to check badges. Any loss of an ID badge must be immediately reported to the Organizers.
9. The Organizers are not responsible for lost or stolen items. Items found during the Event (including documents) will be available for retrieval from the Organizers.
10. Bringing animals to the Event is prohibited, except for assistance dogs.
11. It is forbidden to take photos, record videos, or stream live video at the Event without the prior explicit consent of all persons appearing in the frame.
12. The Organizer reserves the right to record, stream, and photograph presenters after obtaining their written consent.
13. It is prohibited to be significantly intoxicated by psychoactive substances while at the Event.
14. The Organizer reserves the right to remove from the Event premises any individuals who violate the Terms and Conditions, disrupt order, or pose a threat.
15. The Organizer is not responsible for and does not endorse any opinions expressed by participants during the Event.
16. The Terms and Conditions of the Event are available at [https://cebula.camp/regulamin](https://cebula.camp/regulamin).
17. The Organizer reserves the right to amend these Terms and Conditions. Any changes will be communicated via email and made available on the website.
18. In disputed or unspecified matters, the final decision rests with the Organizers, in accordance with Polish law.
Return to the [homepage](/en/)

View file

@ -1,6 +1,103 @@
# Polityka prywatności
Polityka prywatności
Tu w przyszłości pojawi się polityka prywatności na temat wydarzenia.
W tym momencie po prostu trzymamy sobie stronę.
# Polityka Prywatności Cebula Camp 2025
Niniejsza polityka dotyczy stron funkcjonujących pod adresami url: [cebula.camp](http://cebula.camp/), [cfp.cebula.camp](http://cfp.cebula.camp/),[tickets.cebula.camp](http://tickets.cebula.camp/) oraz [news.cebula.camp](http://news.cebula.camp/).
Administratorem oraz Operatorem danych osobowych jest Stowarzyszenie Hackerspace Wrocław (KRS: 0000531222) z siedzibą przy ul. Wróblewskiego 38, 51-627 Wrocław.
Do kontaktu z administratorem danych osobowych służy adres email kontakt@hswro.org.
## Prawa użytkownika
Podanie danych osobowych jest dobrowolne, lecz niezbędne do realizacji usługi.
Użytkownik, poprzez kontakt z administratorem danych, może zażądać dostępu do swoich danych osobowych celem ich sprostowania, usunięcia, przeniesienia, ograniczenia przetwarzania lub może wnieść sprzeciw wobec ich dalszego przetwarzania.
Użytkownik ma prawo wnieść skargę dotyczącą przetwarzania jego danych przez Operatora do organu nadzorczego: Urzędu Ochrony Danych Osobowych. Kontakt do organu nadzorczego podanyjest na stronie [https://uodo.gov.pl/](https://uodo.gov.pl/).
## Zbierane dane
Strony wykorzystują dane osobowe w następujących celach:
- Realizacji zamówionych usług
- Prowadzenia newslettera
- Zbierania propozycji wystąpień
Strony realizują funkcje pozyskiwania informacji o użytkownikach i ich zachowaniu w następujący sposób:
- Poprzez dobrowolnie wprowadzone do formularzy dane, które zostają zapisane w systemach Operatora
- Poprzez zapisywanie w urządzeniach końcowych plików cookie (tzw. „ciasteczka”)
### Sprzedaż biletów
Przy sprzedaży biletów zbieramy następujące dane osobowe:
1. Adres e-mail kupującego (celem identyfikacji kupującego i kontaktu w sprawie biletów)
2. Imię oraz preferowane zaimki uczestnika, jeżeli podane (celem kontaktu z uczestnikiem)
3. Imię i nazwisko, adres oraz numer konta bankowego osoby opłacającej zamówienie (celem realizacji zamówienia)
Przy sprzedaży biletów stosujemy ciasteczka celem usprawnienia procesu zakupu i utrzymania stanu koszyka zakupów. Nie stosujemy ciasteczek celem śledzenia użytkownika i nie stosujemy ciasteczek marketingowych.
Przy płatności przelewem celem dokonania zakupu biletów nasz bank oraz osoby upoważnione do dostępu do danych księgowych Stowarzyszenia Hackerspace Wrocław będą miały wgląd w dane podmiotu wysyłającego przelew. Dane te będą przetwarzane i przechowywane wyłącznie celem utrzymania dokumentacji księgowej.
### Newsletter
Przy obsłudze newslettera zbieramy następujące dane osobowe celem świadczenia usługi:
1. Adres e-mail subskrybenta
2. Imię lub pseudonim subskrybenta, jeżeli podane
Adres e-mail i imię subskrybenta (jeżeli podane) będą przesyłane w formie nieszyfrowanej do serwera e-mail subskrybenta. Dane osobowe nie są przekazywane innym podmiotom trzecim.
Wysyłane wiadomości e-mail zawierają osadzony zdalny obrazek ('tracking pixel'). Fakt pobrania obrazka przez klienta pocztowego subskrybenta używane jest do zgrubnej analizy osiągalności wysłanych wiadomości. Obrazki nie identyfikują indywidualnie subskrybentów. Nie zbieramy metadanych na temat subskrybenta podczas serwowania obrazka.
### CFP
Przy obsłudze zbierania propozycji wystąpień zbieramy następujące dane osobowe celem świadczenia usługi:
1. Adres e-mail osoby zgłaszającej wystąpienie
2. Imię lub pseudonim zgłaszającej wystąpienie
### Logi
W celu zapewnienia niezawodności technicznej prowadzone są logi na poziomie serwera. Zapisowi mogą podlegać:
- zasoby określone identyfikatorem URL (adresy żądanych zasobów stron, plików),
- czas nadejścia zapytania,
- nazwę stacji klienta identyfikacja realizowana przez protokół HTTP,
- informacje o błędach jakie nastąpiły przy realizacji transakcji HTTP,
- informacje o przeglądarce użytkownika,
- informacje o adresie IP,
- informacje diagnostyczne związane z procesem samodzielnego zamawiania usług poprzez rejestratory na stronie,
- informacje związane z obsługą poczty elektronicznej kierowanej do Operatora oraz wysyłanej przez Operatora.
## Sposoby przetwarzania danych
W niektórych sytuacjach Administrator ma prawo przekazywać Twoje dane osobowe innym odbiorcom, jeśli będzie to niezbędne do wykonania zawartej z Tobą umowy lub do zrealizowania obowiązków ciążących na Administratorze. Dotyczy to takich grup odbiorców:
- partner obsługujący hosting stron internetowych na zasadzie powierzenia
- upoważnieni pracownicy i współpracownicy, którzy korzystają z danych w poszczególnych celach
Twoje dane osobowe przetwarzane przez Administratora nie dłużej, niż jest to konieczne do wykonania związanych z nimi czynności określonych osobnymi przepisami (np. o prowadzeniu rachunkowości), po tym czasie wszelkie dane zostaną zanonimizowane.
Dane osobowe nie są przekazywane od krajów trzecich w rozumieniu przepisów o ochronie danych osobowych. Oznacza to, że nie przesyłamy ich poza teren Unii Europejskiej.
Miejsca logowania i wprowadzania danych osobowych są chronione w warstwie transmisji (certyfikat SSL). Dzięki temu dane osobowe i dane logowania, wprowadzone na stronie, zostają zaszyfrowane w komputerze użytkownika i mogą być odczytane jedynie na docelowym serwerze.
Wróć do [strony głównej](/pl/)

41
src/pages/pl/rules.mdx Normal file
View file

@ -0,0 +1,41 @@
Regulamin
# Regulamin Cebula Camp 2025
1. Organizatorem Wydarzenia Cebula Camp (dalej zwanego Wydarzeniem) jest Stowarzyszenie Hackerspace Wrocław (zarejestrowane pod numerem KRS 0000531222).
2. Administratorem danych osobowych uczestników Wydarzenia jest Stowarzyszenie Hackerspace Wrocław (zarejestrowane pod numerem KRS 0000531222).
3. Wydarzenie odbywa się w dniach 28-31 sierpnia 2025 roku na terenie Centrum Kultury Akademickiej i Inicjatyw Lokalnych Czasoprzestrzeń.
4. Wydarzenie jest imprezą zamkniętą i odpłatną.
5. Każdy uczestnik Wydarzenia jest zobowiązany do wykupienia biletu.
6. Zakup biletu uprawniającego do udziału w Wydarzeniu jest równoznaczny z akceptacją niniejszego Regulaminu.
7. Wydarzenie jest przeznaczone wyłącznie dla osób pełnoletnich. Organizator zastrzega sobie prawo do sprawdzenia dokumentu poświadczającego wiek uczestnika.
8. Każdy uczestnik Wydarzenia jest zobowiązany do noszenia przydzielonego mu identyfikatora. Osobami mogącymi sprawdzać identyfikatory są Organizatorzy i Obsługa. Zgubienie identyfikatora należy niezwłocznie zgłosić Organizatorom.
9. Organizatorzy nie ponoszą odpowiedzialności za rzeczy zgubione lub skradzione. Rzeczy znalezione podczas trwania Wydarzenia (również dokumenty) będą możliwe do odbioru u Organizatorów.
10. Obowiązuje zakaz wprowadzania zwierząt na teren Wydarzenia, za wyjątkiem psów asystujących.
11. Na terenie Wydarzenia zakazane jest robienie zdjęć, nagrywania filmów lub streamowania wideo bez uprzedniej wyraźnej zgody wszystkich osób znajdujących się w kadrze.
12. Organizator zastrzega sobie możliwość nagrywania, streamowania i fotografowania prezenterów, po uprzednim uzyskaniu ich pisemnej zgody.
13. Na terenie Wydarzenia obowiązuje zakaz przebywania w stanie znacznego odurzenia substancjami psychoaktywnymi.
14. Organizator zastrzega sobie prawo do usunięcia z terenu Wydarzenia osób nieprzestrzegających Regulaminu, zakłócających porządek lub stwarzających zagrożenie.
15. Organizator nie ponosi odpowiedzialności i nie utożsamia się z opiniami wygłaszanymi przez Uczestników podczas trwania Wydarzenia.
16. Regulamin Wydarzenia jest dostępny na stronie https://cebula.camp/regulamin.
17. Organizator zastrzega sobie prawo do zmiany Regulaminu. Zmiany w regulaminie będą komunikowane drogą mailową oraz dostępne na stronie.
18. W kwestiach spornych bądź nieokreślonych regulaminem, ostateczną decyzję podejmują Organizatorzy w zgodzie z przepisami prawa polskiego
Wróć do [strony głównej](/pl/)