diff --git a/README.md b/README.md index e9317b2..5146644 100644 --- a/README.md +++ b/README.md @@ -73,17 +73,6 @@ Once you've submitted a PR, it will automatically be deployed to (PR#).pr.zeus.g Analytics are powered by [Fathom](https://usefathom.com) and are available on . These are only available to administrators with proper rights. These analytics are self hosted and provide only simple statistics for our information, without breaching your privacy. -## Import event from Facebook - -You can import events from Facebook with `bundle exec nanoc fetch #{event_id}`. -You will need to create a `.fb_token` file and request an API token to put in there, see [FB graph API](https://developers.facebook.com/tools/explorer/). - -You will probably need to make a new app (see navbar, it's quite trivial), unless you already have a Zeus site app. - -You need to create a User Token with `user_events` permission. - -We currently request from v2.10, details about the code can be found in [./commands/fetch]. - ## Built With * [nanoc](https://github.com/nanoc/nanoc), static site generator diff --git a/Rules b/Rules index 47b2aea..d825d41 100644 --- a/Rules +++ b/Rules @@ -30,7 +30,12 @@ preprocess do check_schema(:event, event) end + all_privacy_items.each do |project| + check_schema(:privacy, project) + end + add_report_metadata + add_project_metadata end # @@ -135,6 +140,17 @@ compile '/**/*.ics' do filter :erb end +# +# PRIVACY +# + +compile '/about/privacy/*' do + filter :kramdown + + # Don't write out the privacy items themselves for now + nil +end + # # REPORTS # diff --git a/commands/fetch.rb b/commands/fetch.rb deleted file mode 100644 index 6e8d804..0000000 --- a/commands/fetch.rb +++ /dev/null @@ -1,30 +0,0 @@ -# frozen_string_literal: true - -require 'net/http' -require 'json' - -usage 'fetch [facebook event id]' -aliases :f -summary 'Fetch an event from facebook' -description 'Fetch an event from facebook' - -run do |_opts, args, _cmd| - fb_token = File.read('.fb_token') - event_id = args[0] - uri = URI("https://graph.facebook.com/v2.10/#{event_id}?fields=cover,name,description,start_time,place,end_time&access_token=#{fb_token}") - o = JSON.parse(Net::HTTP.get(uri)) - puts <<~EOS - --- - title: "#{o['name']}" - description: #Fill in - time: #{o['start_time']} - end: #{o['end_time']} - location: #{o['place']['name']} - banner: #{o['cover']['source']} - created_at: #Fill in - facebook: 'https://www.facebook.com/events/#{event_id}/' - --- - - #{o['description']} - EOS -end diff --git a/content/about/privacy.erb b/content/about/privacy.erb new file mode 100644 index 0000000..e955f66 --- /dev/null +++ b/content/about/privacy.erb @@ -0,0 +1,263 @@ +--- +title: Privacybeleid +narrow_page: true +typography: true +toc: true +--- +<%= render '/partials/_about_sub_navbar.*', selected: 'privacy' %> +

Privacybeleid

+ +
+ +

Laatst bijgewerkt op . +

+ +

Zeus WPI biedt een waaier aan diensten en projecten aan aan haar leden en het algemene publiek. Met dit privacybeleid wilt ze aangeven hoe en waarvoor ze data verzamelt.

+ +

Samenvatting

+ +

Zeus verzamelt vier grote categorieën van data:

+
    +
  1. Administratieve informatie, zoals e-mailadressen en UGent-gebruikersnamen. Deze informatie heeft Zeus nodig om haar verplichtingen na te komen opgelegd door de statuten en om haar goede werking te verzekeren.
  2. +
  3. Technische informatie, zoals serverlogs. Deze data zijn noodzakelijk om de systemen van Zeus draaiende te houden. Buiten het opsporen en oplossen van problemen doet Zeus hier niets mee.
  4. +
  5. Projectdata. Hiermee worden alle gegevens bedoelt die gebruikt worden in projecten, zoals bestellingen in Haldis of transacties in Tab. Deze gegevens worden uiteraard gebruikt voor het doel van het project (bv. bestellingen opnemen bij Haldis). Uitzonderlijk kunnen ze ook gebruikt worden voor statistische of onderzoeksdoeleinden. In dat geval worden de data altijd geanonimiseerd.
  6. +
  7. Sommige projecten verzamelen ook gebruikersstatistieken (analytics) en/of foutrapporten. De analytics om een beter inzicht te krijgen in het gebruik van projecten en de foutrapporten om de fouten en bugs snel te kunnen oplossen.
  8. +
+ +

In de regel heeft enkel het bestuur toegang tot de data. Op individuele basis kunnen projectontwikkelaars ook toegang krijgen tot de data van een specifiek project, indien dit nodig zou blijken voor de verdere ontwikkeling en ontplooiing van het desbetreffende project.

+ +

Opbouw

+ +

Het privacybeleid begint met een uiteenzetting van het beleid dat van toepassing is op alle gegevensverzameling of -verwerking die Zeus doet. Dit eerste deel wordt het algemene deel genoemd. Vervolgens worden alle projecten opgesomd die bijkomende gegevens verzamelen, of waarbij bijkomende uitleg nuttig is. Sommige projecten hebben ook uitzonderingen op het algemene deel. Dit deel wordt aangeduid als het project-specifieke deel. Tot slot volgt een lijst van diensten die door meerdere projecten gebruikt worden, en waarnaar verwezen wordt in het project-specifieke deel.

+ +

Wanneer en waar is dit privacybeleid van toepassing?

+ +

Zeus stelt projecten beschikbaar aan haar leden en het publiek in het algemeen. Daarbovenop worden de diensten en projecten van Zeus ook door derden gebruikt. Onder de Algemene Verordening Gegevensbescherming (AVG / GDPR) kan Zeus verschillende rollen vervullen. Meer informatie over deze termen vindt u o.a. hier.

+ +

Zeus als dataverantwoordelijke

+ +

Voor het aanbieden van haar projecten verzamelt Zeus data. In dat geval is Zeus zelf de dataverantwoordelijke. Bij sommige projecten doet Zeus echter een beroep op derden, die namens Zeus gegevens verzamelen. Hierbij treedt Zeus op als "Verwerkingsverantwoordelijke".

+ +
+ Voorbeelden van projecten waarbij Zeus de dataverantwoordelijke is, zijn Haldis, Tab, Hydra, enz. +
+ +

Zeus als verwerker

+ +

Zeus biedt ook diensten aan aan derden. In dat geval dient u zich te wenden tot het privacybeleid van de derde in wiens naam Zeus de data verwerkt. Zeus treedt dan op als "Verwerker".

+ +
+ Zeus kan de websites van andere verenigingen hosten op haar servers. Dan is niet het privacybeleid van Zeus van toepassing, maar dat van de vereniging wier website bij Zeus gehost wordt. +
+ +

Als Zeus optreedt als verwerker, zal Zeus in het algemeen slechts de absoluut noodzakelijke data verzamelen voor de integriteit en goede werking van haar systemen in stand te houden: enkel technische informatie, zoals beschreven in paragraaf Technische gegevens.

+ +

Wie heeft toegang tot de verzamelde data?

+ +

In de eerste plaats heeft het bestuur van Zeus toegang tot de gegevens, en in het bijzonder hebben de systeemadministrators toegang tot de data. Het bestuur beperkt zijn inzage in de gegevens tot het strikt noodzakelijke om zijn mandaat te vervullen.

+ +
+ De systeemadministrators hebben toegang tot alle gegevens, daar zij toegang hebben tot alle infrastructuur van Zeus. Uiteraard houden zij zich niet bezig met het bekijken van de verzamelde data; dit gebeurt enkel indien nodig, zoals wanneer een server crasht. +
+ +

Ook kunnen ontwikkelaars van een bepaald project toegang krijgen tot de data van dat project, indien dit nodig zou blijken voor de ontwikkeling van het project. Het bestuur, en de systeemadministrators in het bijzonder, kijken er op toe dat ontwikkelaars van projecten nooit meer toegang hebben dan nodig en dat de data niet misbruikt worden.

+ +
+ De ontwikkelaars van Hydra krijgen toegang de API-server en kunnen zo aan de serverlogs. +
+ +

Welke data worden verzameld en waarvoor worden ze gebruikt?

+ + Zeus verzamelt vier grote categorieën van data. + +

Administratieve gegevens

+ +

Zeus houdt een reeks administratieve gegevens bij over haar leden, zoals vereist door de statuten of om de goede werking van de vereniging te bewerkstelligen. Onder deze data valt onder meer:

+ + + +

Deze gegevens worden door u aan Zeus verstrekt op het moment dat u zich inschrijft.

+ +

Indien u gebruik maakt van het Google Formulier voor uw inschrijving, worden de gegevens die u daar invult, opgeslagen in Google Drive. Deze zijn onderhevig aan het privacybeleid van Google.

+ +

Technische gegevens

+ +

Hieronder vallen de data die door de servers of projecten opgeslagen worden in logboeken, zoals access logs. Dit zijn logboeken van de verzoeken die gestuurd worden naar een van de servers of projecten van Zeus. In de logboeken zitten o.a. volgende data:

+ + + +

Deze informatie wordt gebruikt om de toestand van de server in de gaten te houden, teneinde de dienstverlening van de server te garanderen. Zo kunnen we de belasting van de server in de gaten houden, misbruik detecteren en foute verzoeken (bv. missende webpagina's) verhelpen.

+ +
Een typische gebeurtenis in het serverlogboek ziet er als volgt uit:
+

+ 94.XXX.XXX.XXX - [11/Sep/2019:11:18:59 +0200] "GET /api/2.0/association/logo/js.png HTTP/1.1" 200 34464 "-" "okhttp/3.12.2" +

+

Deze informatie zegt ons:

+
    +
  • Het IP-adres van de gebruiker (hier onherkenbaar gemaakt).
  • +
  • Het tijdstip waarop het verzoek naar de API gestuurd werd.
  • +
  • Technische informatie over het verzoek: wat is er opgevraagd, welk protocol is er gebruikt, hoeveel bytes zijn er verstuurd om aan het verzoek te voldoen.
  • +
  • De + useragent van het verzoek: welk apparaat stuurde het verzoek en waarmee. In dit voorbeeld gaat het bijvoorbeeld over de Android-app van Hydra. +
  • +
+

Specifiek vraagt dit verzoek het logo van een studentenvereniging op, meer bepaald + dit logo.

+
+ +

Deze data worden niet automatisch verwerkt; ze dienen om manueel de oorzaken van problemen te vinden. Serverlogs worden onbeperkt bijgehouden.

+ +

Projectdata

+ +

Veel projecten hebben data nodig om te kunnen functioneren, dus verzamelt Zeus die uiteraard ook. Vaak zijn dit gegevens die u zelf ingeeft of laat genereren door het project dat u gebruikt. Soms worden deze data ook benoemd als "door gebruikers gegenereerde gegevens".

+ +
+ Als u bijvoorbeeld gebruik maakt van Haldis, moet Zeus opslaan wat u besteld hebt, of Haldis zal niet werken. Bij Tab gaat het om de transacties. +
+ +

Afhankelijk van de applicatie is het niet altijd mogelijk om de gegevens te verwijderen of aanpassen zonder de integriteit of goede werking van het project op de helling te zetten. In dat geval probeert Zeus de data zoveel mogelijk te anonimiseren als u een verwijderverzoek stuurt of zoveel mogelijk data aan te passen als u een aanpassingsverzoek stuurt. Bij een verwijderingsverzoek probeert Zeus de relevante en verwijderbare data zo snel mogelijk te verwijderen. Doch is het mogelijk dat de data door back-upsystemen langer bewaard blijven.

+ +
+ Bij Tab kan u bijvoorbeeld geen transacties laten verwijderen, maar wel anonimiseren. +
+ +

Naast het gebruik van deze gegevens voor het doel van het project te verwezenlijken, kunnen deze gegevens ook gebruikt worden voor statistisch of wetenschappelijk onderzoek, om zo inzichten in het algemene doen en laten van de leden van de vereniging. Bij het gebruik hiervoor worden de data altijd geanonimiseerd. Kijk bijvoorbeeld bij de gedetailleerde uitleg over Haldis voor een voorbeeld.

+ +

Gebruiksstatistieken en foutrapporten

+ +

Bij sommige projecten (vaak de projecten die aangeboden worden aan een breed publiek) worden ook statistieken over het gebruik van het project en eventuele foutrapporten verzameld. De gebruiksstatistieken (analytics) worden verzameld om inzicht te krijgen in het gebruik van een project, om zo de aandacht op de vaak-gebruikte onderdelen te kunnen vestigen. De foutrapporten zijn nuttig om bugs en andere fouten zo snel en goed mogelijk op te lossen.

+ +

Voor deze diensten doet Zeus vaak een beroep op diensten van derden. Zie het projectspecifieke deel voor meer informatie.

+ +
+ Als blijkt uit de analytics dat een bepaald deel van Hydra niet vaak gebruikt wordt, kan Zeus overwegen om dat onderdeel te schrappen, om zo meer aandacht te kunnen geven aan de delen die wel vaak gebruikt worden. +
+ +

Hoe contacteert u ons en laat u uw rechten gelden?

+ +

Om uw rechten te laten gelden, voor vragen of opmerkingen, kan u Zeus contacteren via de <%= link_to "contactpagina", "/contact" %>.

+ +

Hieronder volgt een korte opsomming van uw rechten:

+ + + +

Overzicht der projecten

+ +

Project-specifieke bepalingen

+ +

Onder deze paragraaf volgt een lijst van alle projecten...

+
    +
  1. ... met uitzonderingen op het algemeen beleid, of
  2. +
  3. ... waarvoor er bijkomende informatie is over het gebruik van data in het project.
  4. +
+ +
+ + <% privacy_projects("additional").each do |project| %> + <%= render '/partials/_privacy.erb', project: project %> +
+ <% end %> + +

Projecten zonder specifieke bepalingen

+ +

Deze projecten vallen integraal onder het algemene beleid.

+ + + +

Projecten in ontwikkeling

+ +

Deze projecten zijn nog in ontwikkeling. U mag geen persoonlijke data aan deze projecten leveren. Doet u dit toch, dan is dit op eigen risico: noch de functionaliteit, noch de beveiliging van deze projecten staat op punt.

+ + + +

Projecten in opdracht

+ +

Deze projecten worden door Zeus in opdracht van derden aangeboden. Hierbij treedt Zeus op als verwerker, zoals uitgelegd in paragraaf Zeus als verwerker. Dat komt er op neer dat Zeus enkel technische informatie verzamelt.

+ + + +

Overzicht der diensten

+ +

Verschillende projecten gebruiken dezelfde diensten van derden. In plaats van deze informatie meerdere keren in het beleid te plaatsen, wordt de informatie hier eenmaal vermeld. Vanuit de beschrijving van de projecten wordt er dan verwezen naar deze bijlagen.

+ +

Gebruik van Google Analytics

+ +

Uitgebreide informatie over hoe Google met uw gegevens omgaat, vindt u hier. Verdere details over het gebruik van Google Analytics door Zeus:

+ + + +

Enkele voorbeelden van de verzamelde gegevens:

+ + +

Door deze informatie kan Zeus ervoor zorgen dat de website goed werkt in de browsers die de bezoekers gebruiken. Als het merendeel van de gebruikers bv. een mobiel toestel gebruikt, kan Zeus haar aandacht richten op het optimaliseren van de website voor mobiel gebruik.

+ +

Gebruik van Cloudflare CDN

+ +

We gebruiken de Cloudflare CDN om softwarebibliotheken te laden. Zie hun privacybeleid (Engels).

+ +

Foutrapporten met Crashlytics

+ +

Voor het verzamelen van foutrapporten gebruiken sommige apps Crashlytics van Firebase. Uitgebreide informatie over hoe Google met uw gegevens omgaat, vindt u hier. Verdere details over het gebruik van Google Analytics door Zeus:

+ + +
diff --git a/content/about/privacy/12urenloop.md b/content/about/privacy/12urenloop.md new file mode 100644 index 0000000..8fee6bf --- /dev/null +++ b/content/about/privacy/12urenloop.md @@ -0,0 +1,4 @@ +--- +status: processor +link: https://12urenloop.be/ +--- diff --git a/content/about/privacy/blokmap.md b/content/about/privacy/blokmap.md new file mode 100644 index 0000000..14a4cac --- /dev/null +++ b/content/about/privacy/blokmap.md @@ -0,0 +1,9 @@ +--- +status: additional +--- + +- Softwarebibliotheken worden geladen via de Google Hosted Libraries. Daarop is het [privacybeleid van Google](https://policies.google.com/privacy) van toepassing, alsook [deze bijkomende verklaring](https://developers.google.com/speed/libraries/terms) (Engels). +- Softwarebibliotheken worden geladen via Cloudflare. Zie [hun privacybeleid](https://www.cloudflare.com/privacypolicy/) (Engels). +- Een knop om de pagina te delen op Facebook wordt ook geladen. Zie [hun privacybeleid](https://www.facebook.com/full_data_use_policy). +- Google Analytics wordt gebruikt, zie de paragraaf [*Gebruik van Google Analytics*](#google-analytics). +- De kaart wordt opgehaald van servers van Mapbox, zie [hun privacybeleid](https://www.mapbox.com/legal/privacy/) (Engels). \ No newline at end of file diff --git a/content/about/privacy/cat.md b/content/about/privacy/cat.md new file mode 100644 index 0000000..4159f30 --- /dev/null +++ b/content/about/privacy/cat.md @@ -0,0 +1,3 @@ +--- +status: general +--- diff --git a/content/about/privacy/dap.md b/content/about/privacy/dap.md new file mode 100644 index 0000000..adee0d4 --- /dev/null +++ b/content/about/privacy/dap.md @@ -0,0 +1,3 @@ +--- +status: development +--- \ No newline at end of file diff --git a/content/about/privacy/doorkeeper.md b/content/about/privacy/doorkeeper.md new file mode 100644 index 0000000..4159f30 --- /dev/null +++ b/content/about/privacy/doorkeeper.md @@ -0,0 +1,3 @@ +--- +status: general +--- diff --git a/content/about/privacy/endorsement.md b/content/about/privacy/endorsement.md new file mode 100644 index 0000000..4159f30 --- /dev/null +++ b/content/about/privacy/endorsement.md @@ -0,0 +1,3 @@ +--- +status: general +--- diff --git a/content/about/privacy/fathom.md b/content/about/privacy/fathom.md new file mode 100644 index 0000000..32025d2 --- /dev/null +++ b/content/about/privacy/fathom.md @@ -0,0 +1,8 @@ +--- +status: additional +--- + +Het gebruik van Fathom moet in twee categorieën ingedeeld worden: + +- Als gebruiker van een website met Fathom als analytics. In dit geval verzamelt Fathom geen persoonlijke data, zie het [databeleid](https://usefathom.com/data) (Engels). +- Als gebruiker van Fathom zelf. Fathom verzamelt geen bijkomende data in dat geval. \ No newline at end of file diff --git a/content/about/privacy/fk_enrolment.md b/content/about/privacy/fk_enrolment.md new file mode 100644 index 0000000..5119965 --- /dev/null +++ b/content/about/privacy/fk_enrolment.md @@ -0,0 +1,3 @@ +--- +status: processor +--- \ No newline at end of file diff --git a/content/about/privacy/g2.md b/content/about/privacy/g2.md new file mode 100644 index 0000000..2cf8912 --- /dev/null +++ b/content/about/privacy/g2.md @@ -0,0 +1,3 @@ +--- +status: development +--- diff --git a/content/about/privacy/gamification.md b/content/about/privacy/gamification.md new file mode 100644 index 0000000..ca1f9cd --- /dev/null +++ b/content/about/privacy/gamification.md @@ -0,0 +1,7 @@ +--- +status: additional +--- + +- De website gebruikt de Google Charts-api voor het tonen van grafieken. Hierop is het privacybeleid van Google Charts van toepassing, dat [hier](https://developers.google.com/chart/interactive/docs/security_privacy) beschikbaar is. Zoals ook vermeld op laatstgenoemde pagina, is het [algemene privacybeleid](https://policies.google.com/privacy) van Google van toepassing. +- De applicatie verzamelt automatisch data vanop Github, zoals commits en issues. Deze data worden verzameld van uit de repositories van Zeus WPI. Deze gegevens zijn uiteraard essentieel voor de werking van Gamification. Daar de gegevens op geautomatiseerde wijze van Github gehaald worden, zijn verwijder- of aanpasverzoeken niet mogelijk. +- Bij het bezoeken van Gamification worden avatars geladen van Github. Hierop is het [privacybeleid van Github](https://help.github.com/en/github/site-policy/github-privacy-statement) van toepassing. \ No newline at end of file diff --git a/content/about/privacy/gandalf.md b/content/about/privacy/gandalf.md new file mode 100644 index 0000000..ec8a0ef --- /dev/null +++ b/content/about/privacy/gandalf.md @@ -0,0 +1,3 @@ +--- +status: processor +--- diff --git a/content/about/privacy/gitlab.md b/content/about/privacy/gitlab.md new file mode 100644 index 0000000..a741c4a --- /dev/null +++ b/content/about/privacy/gitlab.md @@ -0,0 +1,7 @@ +--- +status: additional +--- + +Bij Gitlab moet opgemerkt worden dat de code in de repositories niet onder persoonlijke gegevens valt zoals bedoeld in dit privacybeleid. Dit beleid is dan ook niet van toepassing op de inhoud van de repositories. Het is de verantwoordelijkheid van de gebruikers om geen persoonlijke informatie in de repositories te plaatsen. + +Door technische beperkingen kunnen niet alle persoonlijke gegevens verwijderd of geanonimiseerd worden. Zo kunnen de commits bijvoorbeeld noch verwijderd, noch geanonimiseerd worden. diff --git a/content/about/privacy/haldis.md b/content/about/privacy/haldis.md new file mode 100644 index 0000000..b6dbe2a --- /dev/null +++ b/content/about/privacy/haldis.md @@ -0,0 +1,7 @@ +--- +status: additional +--- + +De bestellingen op Haldis worden, naast het laten werken van Haldis en zo ervoor zorgen dat u uw bestelling ontvangt, ook gebruikt om statistieken op te stellen om inzichten te krijgen in de consumptiegewoonten van Zeus, zoals bijvoorbeeld [hier](https://zeus.ugent.be/blog/17-18/eet-en-drankgewoonten-in-zeus/). Bij het opstellen van de statistieken worden de data geanonimiseerd. + +Door technische beperkingen is het niet mogelijk data van Haldis te verwijderen. Ze worden hoogsten geanonimiseerd. diff --git a/content/about/privacy/httpizza.md b/content/about/privacy/httpizza.md new file mode 100644 index 0000000..5119965 --- /dev/null +++ b/content/about/privacy/httpizza.md @@ -0,0 +1,3 @@ +--- +status: processor +--- \ No newline at end of file diff --git a/content/about/privacy/hydra.md b/content/about/privacy/hydra.md new file mode 100644 index 0000000..ea2a36c --- /dev/null +++ b/content/about/privacy/hydra.md @@ -0,0 +1,36 @@ +--- +status: additional +--- + +##### Website + +De [website van Hydra](https://hydra.ugent.be) maakt gebruik van Google Analytics (zie details in de paragraaf [_Gebruik van Google Analytics_](#google-analytics)) voor het verzamelen van bezoekersinformatie. Dit om te weten hoeveel gebruikers de website gebruiken, hoe deze gebruikers de website vinden en hoe lang ze er op blijven. + +##### Apps + +Voor de apps wordt de verzamelde data opgedeeld in twee categorieën: analytics en foutrapportage: + +- **Analytics.** Zeus wilt graag weten hoe u de app gebruikt, welke onderdelen u het meest gebruikt, hoe lang u de app gebruikt, enzovoort. Dit om de apps optimaal te kunnen afstellen op uw behoeften. Zeus gebruikt deze data niet om gebruikers te identificeren. Voor analytics wordt Google Analytics (zie details in de paragraaf [_Gebruik van Google Analytics_](#google-analytics)) gebruikt. +- **Foutrapportage.** Zeus wilt weten wat u deed toen de crash zich voordeed, alsook welk apparaat u gebruikt, welke software-versies u hebt, enz. Hiermee kan Zeus sneller de oorzaak van de fout opsporen en oplossen. Voor foutrapportage wordt Crashlytics gebruikt (zie paragraaf [_Foutrapporten met Crashlytics_](#crashlytics)). + +Daarnaast gebruiken de apps andere diensten van derden. Indien u gebruik maakt van de betreffende functie in de app, kunnen bijkomende regelingen van toepassing zijn: + +- **Urgent.fm.** Contacteer [Urgent.fm](http://urgent.fm/wie-zijn-wij) voor meer informatie. +- **Activiteiten van verenigingen.** Contacteer de [Dienst StudentenActiviteiten](https://dsa.ugent.be/contact/) voor meer informatie. +- **Kaart van de locaties van de resto's.** Hierbij wordt Google Maps gebruikt. Indien u toestemming geeft, zal uw locatie gebruikt worden om de kaart te centreren op uw locatie. Google Maps is onderhevig aan het [privacybeleid van Google](https://policies.google.com/privacy). +- **Informatie over bibliotheken.** Raadpleeg de [disclaimer](https://lib.ugent.be/nl/info/disclaimer). + +##### API + +Bij het gebruik van de API worden enkel technische data verzameld. + +##### Assistent + +Bij het gebruik van "Hydra van de UGent" in de Google Assistent gebruiken we deze diensten: + +- **Technische informatie**, zoals serverlogs (zie de paragraaf [_Technische gegevens_](#technisch). +- **Dialogflow**, voor de gespreksmogelijkheden (d.w.z. verstaan wat u bedoelt). Deze data is onderhevig aan het privacybeleid van [Google](https://policies.google.com/privacy) + +Dialogflow verzamelt geen persoonlijke data. Om de herkenning van de gesprekken tussen u en Hydra van de UGent te verbeteren, slaat Dialogflow de inhoud van de gesprekken in tekstuele vorm op. Deze kunnen door het bestuur van Zeus of de medewerkers van het Hydra-project beoordeeld worden, om zo de nauwkeurigheid van de herkenning te verbeteren. + + diff --git a/content/about/privacy/mattermore.md b/content/about/privacy/mattermore.md new file mode 100644 index 0000000..73dd0ed --- /dev/null +++ b/content/about/privacy/mattermore.md @@ -0,0 +1,7 @@ +--- +status: additional +--- + +De citaten die hier verzameld zijn, zijn zichtbaar voor leden van de Mattermost-instantie van Zeus. Daar het doel van dit project het verzamelen en bijhouden van citaten is, worden citaten niet automatisch verzameld. + +Buiten de citaten worden geen gegevens verzameld. diff --git a/content/about/privacy/mattermost.md b/content/about/privacy/mattermost.md new file mode 100644 index 0000000..db32446 --- /dev/null +++ b/content/about/privacy/mattermost.md @@ -0,0 +1,11 @@ +--- +status: additional +--- + +Bij Mattermost is het [standaardprivacybeleid](https://github.com/mattermost/mattermost-server/blob/master/build/PRIVACY_POLICY.md) van een zelf-gehoste Mattermost-applicatie van toepassing. + +Op Mattermost kunnen berichten in twee categorieën ingedeeld worden: openbare berichten en private berichten. Onder private berichten worden alle berichten in private gesprekken of besloten kanalen verstaan. Berichten in openbare kanalen vallen onder openbare berichten. + +Daar de private berichten mogelijk een gevoelig karakter hebben, worden deze berichten standaard na een termijn van 1 jaar gewist. U kunt een uitzondering verkrijgen op deze standaardtermijn door contact op te nemen met de systeemadministrators van Zeus. + +Door de gevoeligheid der data hebben projectontwikkelaars geen toegang tot deze data; enkel het bestuur heeft toegang. diff --git a/content/about/privacy/messageos.md b/content/about/privacy/messageos.md new file mode 100644 index 0000000..c0b5182 --- /dev/null +++ b/content/about/privacy/messageos.md @@ -0,0 +1,9 @@ +--- +status: additional +--- + +MessageOS bestaat uit meerdere subprojecten: + +- [Cammiechat](https://git.zeus.gent/kelder/cammiechat/tree/master). Dit onderdeel valt integraal onder het algemene privacybeleid. +- [TAp](https://git.zeus.gent/ZeusWPI/TAp). Dit onderdeel valt integraal onder het algemene privacybeleid. +- [MessageOS](https://git.zeus.gent/ZeusWPI/ass_messages). Dit onderdeel verzamelt geen data; berichten blijven getoond op het scherm in de kelder tot de server herstart wordt of de berichten door nieuwe berichten van het scherm gaan. \ No newline at end of file diff --git a/content/about/privacy/mozaic.md b/content/about/privacy/mozaic.md new file mode 100644 index 0000000..2cf8912 --- /dev/null +++ b/content/about/privacy/mozaic.md @@ -0,0 +1,3 @@ +--- +status: development +--- diff --git a/content/about/privacy/pannenkoekenwachtrij.md b/content/about/privacy/pannenkoekenwachtrij.md new file mode 100644 index 0000000..4159f30 --- /dev/null +++ b/content/about/privacy/pannenkoekenwachtrij.md @@ -0,0 +1,3 @@ +--- +status: general +--- diff --git a/content/about/privacy/sad.md b/content/about/privacy/sad.md new file mode 100644 index 0000000..4159f30 --- /dev/null +++ b/content/about/privacy/sad.md @@ -0,0 +1,3 @@ +--- +status: general +--- diff --git a/content/about/privacy/saruman.md b/content/about/privacy/saruman.md new file mode 100644 index 0000000..5119965 --- /dev/null +++ b/content/about/privacy/saruman.md @@ -0,0 +1,3 @@ +--- +status: processor +--- \ No newline at end of file diff --git a/content/about/privacy/site.md b/content/about/privacy/site.md new file mode 100644 index 0000000..0af3090 --- /dev/null +++ b/content/about/privacy/site.md @@ -0,0 +1,19 @@ +--- +status: additional +--- + +De website van Zeus verzamelt bijkomende data: + +- De website laadt Font Awesome via een site van derden, MaxCDN. Zie [hun privacybeleid](https://www.bootstrapcdn.com/privacy-policy/) (Engels). +- Bezoekersstatistieken worden bijgehouden met Fathom, zie de paragraaf [*Fathom*](#fathom). + +- Sommige pagina's kunnen om bijkomende functionaliteit aan te bieden, aanvullende zaken laden via services van derden. Hieronder is een lijst van alle gebruikte services en wat ze laden: + - Gebruikersdata van [*Gamification*](#gamification). + - Kaarten via OpenStreetMaps. Zie [hun privacybeleid](https://wiki.osmfoundation.org/wiki/Privacy_Policy) (Engels). + - Softwarebibliotheken via Stackpath. Zie [hun privacybeleid](https://www.stackpath.com/legal/privacy-statement/) (Engels). + - Afbeeldingen via [jaspervdj.be](https://jaspervdj.be/images/) (Engels). + - Formulieren via Google Forms en Google Spreadsheets. Zie het [privacybeleid van Google](https://policies.google.com/privacy) (Engels). + - D3 via [d3js.org](https://d3js.org). + - Softwarebibliotheken via Cloudflare, zie de [gelijknamige paragraaf](#cloudflare). + - Video's via Invidious. Zie [hun privacybeleid](https://invidio.us/privacy) (Engels). + - Video's via Vimeo. Zie [hun privacybeleid](https://vimeo.com/privacy) (Engels). \ No newline at end of file diff --git a/content/about/privacy/tab.md b/content/about/privacy/tab.md new file mode 100644 index 0000000..c2fec0b --- /dev/null +++ b/content/about/privacy/tab.md @@ -0,0 +1,10 @@ +--- +status: additional +--- + +Merk op dat Zeus niet de bedoeling heeft haar leden financiële dienstverleningen aan te bieden via Tab. Het "geld" op Tab wordt best vergeleken met een systeem voor drankbonnetjes of virtueel geld in een computerspel. Meer technisch heeft Zeus de bedoeling om een wat de ECB "virtual currency scheme with bidirectional flow" (virtuele valuta met omzetting in twee richtingen) noemt aan te bieden. Aangezien het geld op Tab enkel gebruikt kan worden voor aankopen, is hier geen sprake van een financiële dienstverlening. + +Niettemin kunnen de gegevens op Tab gevoelig zijn; derhalve heeft enkel het bestuur toegang tot deze gegevens. Projectontwikkelaars hebben geen toegang. + +Door technische beperkingen is het niet mogelijk data van Tab te verwijderen. Ze worden hoogsten geanonimiseerd. + diff --git a/content/about/privacy/tap.md b/content/about/privacy/tap.md new file mode 100644 index 0000000..4cbc163 --- /dev/null +++ b/content/about/privacy/tap.md @@ -0,0 +1,7 @@ +--- +status: additional +--- + +De bestellingen op Tap worden, naast het laten werken van Tap en zo ervoor zorgen dat uw drank aangerekend wordt, ook gebruikt om statistieken op te stellen om inzichten te krijgen in de consumptiegewoonten van Zeus, zoals bijvoorbeeld [hier](https://zeus.ugent.be/blog/17-18/eet-en-drankgewoonten-in-zeus/). Bij het opstellen van de statistieken worden de data geanonimiseerd. + +Door technische beperkingen is het niet mogelijk data van Tap te verwijderen. Ze worden hoogsten geanonimiseerd. diff --git a/content/about/privacy/tappb.md b/content/about/privacy/tappb.md new file mode 100644 index 0000000..aa7be11 --- /dev/null +++ b/content/about/privacy/tappb.md @@ -0,0 +1,10 @@ +--- +status: additional +--- + +Tappb verzamelt bijkomende data door het gebruik van Firebase. Het [het privacybeleid](https://firebase.google.com/support/privacy) (Engels) van Firebase verschaft uitgebreide informatie. Concreet gebruikt Tappb volgende diensten en gebruikt daarbij volgende data: + +- **Firebase Cloud Messaging**. Dit wordt gebruikt om meldingen naar de applicatie te sturen. Hiervoor wordt het "instance ID" verzameld, om te identificeren naar welk toestel een melding gestuurd moet worden. Deze worden onbeperkt bijgehouden. Indien dit ID wenst te verwijderen, zal Firebase het ID binnen de 180 dagen verwijderen. +- **ML Kit for Firebase**. Dit wordt gebruikt om de barcodes van producten te scannen. De afbeeldingen met barcodes worden tijdelijk bewaard op de servers van Firebase en worden gewoonlijk na enkele uren verwijderd. Meer informatie is tevens te vinden op [deze pagina](https://cloud.google.com/vision/docs/data-usage) (Engels). Ook hier worden "instance ID"s bijgehouden, volgens dezelfde voorwaarden als bij Firebase Cloud Messaging. + +Ook gebruikt Tappb de diensten van [Tab](#tab) en [Tap](#tap). \ No newline at end of file diff --git a/content/about/privacy/tuxcape.md b/content/about/privacy/tuxcape.md new file mode 100644 index 0000000..adee0d4 --- /dev/null +++ b/content/about/privacy/tuxcape.md @@ -0,0 +1,3 @@ +--- +status: development +--- \ No newline at end of file diff --git a/content/about/privacy/wiki.md b/content/about/privacy/wiki.md new file mode 100644 index 0000000..e0f7064 --- /dev/null +++ b/content/about/privacy/wiki.md @@ -0,0 +1,5 @@ +--- +status: additional +--- + +De wiki laadt bibliotheken via Cloudflare (zie de [gelijknamige paragraaf](#cloudflare)) en [mathjax.org](https://www.mathjax.org/). diff --git a/content/about/privacy/zauth.md b/content/about/privacy/zauth.md new file mode 100644 index 0000000..adee0d4 --- /dev/null +++ b/content/about/privacy/zauth.md @@ -0,0 +1,3 @@ +--- +status: development +--- \ No newline at end of file diff --git a/content/about/privacy/zid.md b/content/about/privacy/zid.md new file mode 100644 index 0000000..2cf8912 --- /dev/null +++ b/content/about/privacy/zid.md @@ -0,0 +1,3 @@ +--- +status: development +--- diff --git a/content/about/privacy/zinc.md b/content/about/privacy/zinc.md new file mode 100644 index 0000000..4159f30 --- /dev/null +++ b/content/about/privacy/zinc.md @@ -0,0 +1,3 @@ +--- +status: general +--- diff --git a/content/about/sponsorende-leden.erb b/content/about/sponsorende-leden.erb new file mode 100644 index 0000000..d26c137 --- /dev/null +++ b/content/about/sponsorende-leden.erb @@ -0,0 +1,53 @@ +--- +narrow_page: true +--- + +<%= render '/partials/_about_sub_navbar.*', selected: 'sponsoring-members' %> +

Sponsorende leden

+ +
+ <% current_sponsoring_members.each do |member| %> +
+ +
+ <% end %> +
diff --git a/content/assets/stylesheets/includes/about.scss b/content/assets/stylesheets/includes/about.scss index b7bb23f..fbb07e6 100644 --- a/content/assets/stylesheets/includes/about.scss +++ b/content/assets/stylesheets/includes/about.scss @@ -161,3 +161,65 @@ table.board-table { border-color: $primary; } } + +.sponsoring-member { + .name { + padding-top: 0.75rem; + font-size: 1.4rem; + font-weight: bold; + text-align: center; + } + + .username { + font-weight: lighter; + font-size: 1.1rem; + } + + .logo-wrapper { + display: flex; + flex-direction: column; + align-items: center; + width: 14rem; + padding: 0.75rem 0; + + img { + max-width: 9rem; + max-height: 9rem; + } + } + + .links { + margin-top: 1.5rem; + + .social-icon { + margin-right: 0.6rem; + } + } + + blockquote { + font-size: 1.2rem; + } + + .description { + font-size: 1.1rem; + font-weight: normal; + } + + .logo-initial { + background-color: #ff7f00; + width: 7rem; + height: 7rem; + } + + @media screen and (max-width: 550px){ + .logo-wrapper { + width: 10rem; + } + .name{ + font-size: 1rem; + } + .username{ + font-size: 0.9rem; + } + } +} diff --git a/content/assets/stylesheets/includes/blogpost.scss b/content/assets/stylesheets/includes/blogpost.scss index 7072df6..9b06104 100644 --- a/content/assets/stylesheets/includes/blogpost.scss +++ b/content/assets/stylesheets/includes/blogpost.scss @@ -1,36 +1,3 @@ -.blogpost { - position: relative; - - #table-of-contents { - @include tablet { - position: absolute; - left: 100%; - } - - @include mobile { - text-align: center; - } - - #markdown-toc { - @extend .menu-list; - - &, ul { - margin: 0; - list-style: none; - } - } - } -} - -$sel: ''; -@for $i from 1 through 9 { - $sel: if($i == 1, "ul", selector-nest($sel, "ul")) !global; - - #markdown-toc.toc-depth-#{$i} #{$sel} { - display: none; - } -} - @keyframes lineAnimation { to { width: 80px; diff --git a/content/assets/stylesheets/includes/navbar.scss b/content/assets/stylesheets/includes/navbar.scss index 2c09ca4..0f6a2dc 100644 --- a/content/assets/stylesheets/includes/navbar.scss +++ b/content/assets/stylesheets/includes/navbar.scss @@ -3,7 +3,7 @@ margin-bottom: 10px; z-index: 100; - .logo-wrapper { + #logo-link { padding-bottom: 0; position: relative; diff --git a/content/assets/stylesheets/includes/privacy.scss b/content/assets/stylesheets/includes/privacy.scss new file mode 100644 index 0000000..5988e02 --- /dev/null +++ b/content/assets/stylesheets/includes/privacy.scss @@ -0,0 +1,7 @@ +.example { + @extend .box; + &:before { + content: "Voorbeeld. "; + font-weight: bold; + } +} diff --git a/content/assets/stylesheets/includes/toc.scss b/content/assets/stylesheets/includes/toc.scss new file mode 100644 index 0000000..252f50d --- /dev/null +++ b/content/assets/stylesheets/includes/toc.scss @@ -0,0 +1,35 @@ +// CSS related to the TOC + +#table-of-contents { + @include tablet { + position: absolute; + left: 100%; + } + + @include mobile { + text-align: center; + } + + #markdown-toc { + @extend .menu-list; + + &, ul { + margin: 0; + list-style: none; + } + } +} + +$sel: ''; +@for $i from 1 through 9 { + $sel: if($i == 1, "ul", selector-nest($sel, "ul")) !global; + + #markdown-toc.toc-depth-#{$i} #{$sel} { + display: none; + } +} + +// Must be applied to the element containing the toc +.toc-container { + position: relative; +} \ No newline at end of file diff --git a/content/assets/stylesheets/main.scss b/content/assets/stylesheets/main.scss index d9f94e9..9783375 100644 --- a/content/assets/stylesheets/main.scss +++ b/content/assets/stylesheets/main.scss @@ -40,3 +40,5 @@ body { @import "includes/navbar"; @import "includes/search"; @import "includes/about"; +@import "includes/privacy"; +@import "includes/toc"; \ No newline at end of file diff --git a/content/events/19-20/hashcode.md b/content/events/19-20/hashcode.md new file mode 100644 index 0000000..38ae8a4 --- /dev/null +++ b/content/events/19-20/hashcode.md @@ -0,0 +1,34 @@ +--- +title: Hashcode +description: Zeus organiseert een UGent Hashcode Hub +created_at: 05-12-2019 +time: '20-02-2020 18:30' +end: '20-02-2020 23:00' +location: 'Campus Sterre, Gebouw S9, Auditorium A3' +locationlink: 'Zeus WPI' +banner: 'https://hashcode.withgoogle.com/resources/images/hero_2.jpg' +image: 'https://zeus.ugent.be/zeuswpi/I9GAh7iy.png' +header_text_background: true +--- + +# Google Hashcode + +Ook dit jaar organiseren we een hub voor de Google Hashcode. Dit is een jaarlijkse programmeerwedstrijd van Google waarin je in een team van 2 tot 4 personen een probleem voorgeschoteld krijgt die je mag oplossen in een programmeertaal naar keuze. De wedstrijd is gericht op studenten en professionals. + +De online kwalificatieronde vindt plaats op **20 februari** om 18:30. Je kan deelnemen met je team in onze hub _Ghent University_ in gebouw S9 op Campus Sterre, lokaal A3. + +De best scorende teams worden uitgenodigd bij Google Dublin op 25 april om mee te doen aan de finale ronde van de competitie. + +## Registratie + +Registreer je **voor 10 februari** op [g.co/hashcode](https://g.co/hashcode) en selecteer **onze hub _Ghent University_**. Hoe meer teams zich registreren bij onze hub, hoe meer mensen er zullen zijn! + +## Benodigdheden + +Om alles optimaal te laten verlopen willen we jullie vragen om je eigen verdeelstekker mee te brengen. Wij zorgen voor drank en snacks. + +## Begint het al te kriebelen? + +Bereid je optimaal voor op de wedstrijd door het voorbeeldprobleem op te lossen, die kan je zien zodra je je hebt geregistreerd. Opgaven van de vorige jaren kan je [hier](https://hashcode.withgoogle.com/past_editions.html) vinden. + +Tot dan! diff --git a/content/projects/12urenloop.md b/content/projects/12urenloop.md index 4cc1898..edc24bc 100644 --- a/content/projects/12urenloop.md +++ b/content/projects/12urenloop.md @@ -1,7 +1,4 @@ --- -title: 12urenloop -github: https://github.com/ZeusWPI/12urenloop -site: https://12urenloop.be/ logo_image: 12urenloop.png priority: 50 --- diff --git a/content/projects/blokmap.md b/content/projects/blokmap.md index 4fe0639..e117d41 100644 --- a/content/projects/blokmap.md +++ b/content/projects/blokmap.md @@ -1,7 +1,4 @@ --- -title: Blokmap -github: https://github.com/ZeusWPI/blokmap -site: http://blok.ugent.be/ logo_image: Logos_Blokmap.svg priority: 25 --- diff --git a/content/projects/cat.md b/content/projects/cat.md index 59cb42d..d9f45fc 100644 --- a/content/projects/cat.md +++ b/content/projects/cat.md @@ -1,7 +1,4 @@ --- -title: Cat -site: https://cat.zeus.gent/ -gitlab: https://git.zeus.gent/ZeusWPI/cat logo_image: cat.png priority: 35 --- diff --git a/content/projects/doorkeeper.md b/content/projects/doorkeeper.md index c138dcd..b8fb11c 100644 --- a/content/projects/doorkeeper.md +++ b/content/projects/doorkeeper.md @@ -1,7 +1,4 @@ --- -title: Doorkeeper -github: https://github.com/ZeusWPI/Doorkeeper -site: https://github.com/ZeusWPI/Doorkeeper logo_image: Logos_Slotmachiin.svg priority: 30 --- diff --git a/content/projects/fk_enrolment.md b/content/projects/fk_enrolment.md index 1e24b6b..3355b6f 100644 --- a/content/projects/fk_enrolment.md +++ b/content/projects/fk_enrolment.md @@ -1,7 +1,4 @@ --- -title: FK Enrolment. -github: https://github.com/ZeusWPI/FK-enrolment -site: https://registratie.fkgent.be/ logo_letter: E logo_color: "#FFBBDD" priority: 5 diff --git a/content/projects/g2.md b/content/projects/g2.md index 333d4da..04a5087 100644 --- a/content/projects/g2.md +++ b/content/projects/g2.md @@ -1,7 +1,4 @@ --- -title: G2 -github: https://github.com/ZeusWPI/g2-frontend -site: https://github.com/ZeusWPI/g2-backend logo_image: Logos_G2.svg priority: 45 --- diff --git a/content/projects/gamification.md b/content/projects/gamification.md index 22a638e..f70433c 100644 --- a/content/projects/gamification.md +++ b/content/projects/gamification.md @@ -1,7 +1,4 @@ --- -title: Gamification -github: https://github.com/ZeusWPI/Gamification -site: https://zeus.ugent.be/game logo_image: Logos_Gamification.svg priority: 30 --- diff --git a/content/projects/gandalf.md b/content/projects/gandalf.md index 00e25d8..92e7894 100644 --- a/content/projects/gandalf.md +++ b/content/projects/gandalf.md @@ -1,7 +1,4 @@ --- -title: Gandalf -github: https://github.com/ZeusWPI/Gandalf -site: https://event.fkgent.be/ logo_image: Logos_Gandalf.svg priority: 5 --- diff --git a/content/projects/haldis.md b/content/projects/haldis.md index ecd472e..989450b 100644 --- a/content/projects/haldis.md +++ b/content/projects/haldis.md @@ -1,7 +1,4 @@ --- -title: Haldis -github: https://github.com/ZeusWPI/Haldis -site: https://haldis.zeus.gent/ logo_image: Logos_Haldis.svg priority: 35 --- diff --git a/content/projects/lana.md b/content/projects/lana.md index 79a7996..634d81e 100644 --- a/content/projects/lana.md +++ b/content/projects/lana.md @@ -1,7 +1,4 @@ --- -title: Lana -github: https://github.com/ZeusWPI/Lana -site: https://github.com/ZeusWPI/Lana logo_letter: L logo_color: "#E4C6A7" priority: 20 diff --git a/content/projects/mozaic.md b/content/projects/mozaic.md index 6588998..34bf088 100644 --- a/content/projects/mozaic.md +++ b/content/projects/mozaic.md @@ -1,7 +1,4 @@ --- -title: Mozaic -github: https://github.com/ZeusWPI/mozaic -site: https://github.com/ZeusWPI/mozaic logo_image: mozaic.png priority: 41 --- diff --git a/content/projects/saruman.md b/content/projects/saruman.md index 7e6677a..889e403 100644 --- a/content/projects/saruman.md +++ b/content/projects/saruman.md @@ -1,7 +1,4 @@ --- -title: Saruman -github: https://github.com/ZeusWPI/Saruman -site: https://materiaal.12urenloop.be/ logo_letter: S logo_color: grey priority: 5 diff --git a/content/projects/site.md b/content/projects/site.md index 5264d00..94f3f49 100644 --- a/content/projects/site.md +++ b/content/projects/site.md @@ -1,7 +1,4 @@ --- -title: zeus.ugent.be -github: https://github.com/ZeusWPI/zeus.ugent.be -site: https://zeus.ugent.be logo_letter: Z logo_color: "#FF7F00" priority: 40 diff --git a/content/projects/slotmachien.md b/content/projects/slotmachien.md index e3b62b1..e469305 100644 --- a/content/projects/slotmachien.md +++ b/content/projects/slotmachien.md @@ -1,7 +1,4 @@ --- -title: SlotMachien -github: https://github.com/ZeusWPI/slotmachien -site: https://github.com/ZeusWPI/slotmachien logo_image: Logos_Slotmachien.svg priority: -1 --- diff --git a/content/projects/tab.md b/content/projects/tab.md index a024090..4661028 100644 --- a/content/projects/tab.md +++ b/content/projects/tab.md @@ -1,7 +1,4 @@ --- -title: Tab -github: https://github.com/ZeusWPI/Tab -site: https://tab.zeus.gent/ logo_image: Logos_Tab.svg priority: 40 --- diff --git a/content/projects/tap.md b/content/projects/tap.md index de04cde..08a135c 100644 --- a/content/projects/tap.md +++ b/content/projects/tap.md @@ -1,7 +1,4 @@ --- -title: Tap -github: https://github.com/ZeusWPI/Tap -site: https://tap.zeus.gent/ logo_image: Logos_Tap.svg priority: 40 --- diff --git a/content/projects/tappb.md b/content/projects/tappb.md index 22f019a..4af239d 100644 --- a/content/projects/tappb.md +++ b/content/projects/tappb.md @@ -1,7 +1,4 @@ --- -title: Tappb -github: https://github.com/ZeusWPI/tappb -site: https://play.google.com/store/apps/details?id=gent.zeus.tappb logo_image: Logos_Tappb.svg priority: 39 --- diff --git a/data/projecten.yaml b/data/projecten.yaml new file mode 100644 index 0000000..16d7bdb --- /dev/null +++ b/data/projecten.yaml @@ -0,0 +1,119 @@ +--- +data: + 12urenloop: + name: 12urenloop + site: https://12urenloop.be/ + repo: https://github.com/12urenloop + blokmap: + name: Blokmap + site: https://blok.ugent.be + repo: https://github.com/ZeusWPI/blokmap + cat: + name: Cat + site: https://cat.zeus.gent/ + repo: https://git.zeus.gent/ZeusWPI/cat + dap: + name: De Account Pagina + repo: https://github.com/ZeusWPI/DAP + doorkeeper: + name: Doorkeeper + repo: https://github.com/ZeusWPI/Doorkeeper + fathom: + name: Fathom + site: https://stats.zeus.gent/ + fk_enrolment: + name: FK Enrolment + site: https://registratie.fkgent.be/ + repo: https://github.com/ZeusWPI/FK-enrolment + g2: + name: G2 + site: https://github.com/ZeusWPI/g2-frontend + repo: https://github.com/ZeusWPI/g2-backend + gamification: + name: Gamification + site: https://zeus.ugent.be/game + repo: https://github.com/ZeusWPI/Gamification + gandalf: + name: Gandalf + site: https://event.fkgent.be/ + repo: https://github.com/ZeusWPI/Gandalf + gitlab: + name: Gitlab + site: https://git.zeus.gent + haldis: + name: Haldis + site: https://haldis.zeus.gent/ + repo: https://github.com/ZeusWPI/Haldis + httpizza: + name: HTTPizza + repo: https://github.com/ZeusWPI/HTTPizza + hydra: + name: Hydra + site: https://hydra.ugent.be + repo: https://github.com/ZeusWPI/Hydra + lana: + name: Lana + repo: https://github.com/ZeusWPI/Lana + mattermost: + name: Mattermost + site: https://mattermost.zeus.gent + mozaic: + name: Mozaic + repo: https://github.com/ZeusWPI/mozaic + sad: + name: "Services Are Down D: Status" + site: https://sad.zeus.gent/ + repo: https://github.com/ZeusWPI/SADStatus + saruman: + name: Saruman + site: https://materiaal.12urenloop.be/ + repo: https://github.com/ZeusWPI/Saruman + site: + name: zeus.ugent.be + site: https://zeus.ugent.be + repo: https://github.com/ZeusWPI/zeus.ugent.be + slotmachien: + name: SlotMachien + repo: https://github.com/ZeusWPI/slotmachien + tab: + name: Tab + site: https://tab.zeus.gent/ + repo: https://github.com/ZeusWPI/Tab + tap: + name: Tap + site: https://tap.zeus.gent/ + repo: https://github.com/ZeusWPI/Tap + tappb: + name: Tappb + site: https://play.google.com/store/apps/details?id=gent.zeus.tappb + repo: https://github.com/ZeusWPI/tappb + tuxcape: + name: TuxcAPE + repo: https://github.com/ZeusWPI/Tuxcape + zauth: + name: Zeus AUTHentication Service + repo: https://github.com/ZeusWPI/zauth + zinc: + name: ZINC + site: https://zinc.zeus.gent + repo: https://github.com/ZeusWPI/zinc + messageos: + name: MessageOS + site: https://git.zeus.gent/ZeusWPI/ass_messages + mattermore: + name: Mattermore + repo: https://git.zeus.gent/mattermost/mattermore + pannenkoekenwachtrij: + name: Pannenkoekenwachtrij + repo: https://git.zeus.gent/kelder/pannenkoekenwachtrij + zid: + name: ZID + repo: https://git.zeus.gent/rien/zid + endorsement: + name: Endorsement + repo: https://git.zeus.gent/bestuur/endorsement + site: https://endorsement.zeus.gent/ + wiki: + name: Wiki + site: https://zeus.ugent.be/wiki + diff --git a/data/supporting_members.yaml b/data/supporting_members.yaml new file mode 100644 index 0000000..456d996 --- /dev/null +++ b/data/supporting_members.yaml @@ -0,0 +1,138 @@ +--- +data: + 19-20: + - name: Titouan Vervack + nickname: FlashYoshi + photo: https://zeus.ugent.be/zeuswpi/0U6neVQP.jpg + quote: Ansible is af! + description: |- + Puns, weeb, Sigasi, klimt, taart. + Houdt écht van Java. + Gebruikt tabs én spaces. + links: + - icon: twitter + url: https://twitter.com/tivervac + - icon: github + url: https://github.com/tivervac + - icon: gitlab + url: https://gitlab.com/FlashYoshi + + - name: Felix Van der Jeugt + nickname: noctua + photo: https://zeus.ugent.be/zeuswpi/9_L03Pm8.jpg + quote: |- + dwergen + dwergen + dwergen + dwergen + Sorry guys + dwergen + dwergen + description: Ik kom Ice Tea's halen in de kelder. + links: + - icon: github + url: https://www.github.com/ninewise + - url: https://users.ugent.be/~fvdrjeug/ + - name: Jasper Van der Jeugt + nickname: jaspervdj + photo: https://zeus.ugent.be/zeuswpi/hEERAL--.jpg + quote: GilJ schrijft supergoeie code + description: Een klein beetje geobsedeerd door Haskell. + links: + - icon: twitter + url: https://twitter.com/jaspervdj + - icon: github + url: https://github.com/jaspervdj/ + - url: https://jaspervdj.be/ + - name: Rien Maertens + nickname: met stokjes + photo: https://zeus.ugent.be/zeuswpi/udVo8mPM.jpg + quote: Fruit op een pizza is als windows op een laptop. + description: // TODO + links: + - icon: github + url: https://github.com/rien + - icon: twitter + url: https://twitter.com/RienMaertens + - url: https://rien.maertens.io + - name: Francis Begyn + nickname: thecy + photo: https://zeus.ugent.be/zeuswpi/Xl5-9fld.jpg + quote: Ik wil eigenlijk nog gaan feesten, maar flask migrations zijn fucked + description: Ik breek dingen die werken en fix dingen die gebroken zijn. + links: + - icon: facebook + url: https://www.facebook.com/begynfrancis + - icon: twitter + url: https://twitter.com/fbegyn + - icon: linkedin + url: https://www.linkedin.com/in/fbegyn/ + - url: https://francis.begyn.be + - name: Tom Naessens + nickname: Silox + photo: https://zeus.ugent.be/zeuswpi/KoAqGb0L.jpg + quote: Raad mij keer een quote aan guys, eentje waarin ik mezelf niet belachelijk maak. + description: To be continued. + links: + - icon: github + url: https://github.com/Silox + - name: David Vandorpe + nickname: Davit + photo: https://zeus.ugent.be/zeuswpi/0xba8AgF.jpg + quote: Teleurstellen is zowat mijn levensdoel, daarom ga ik bij Microsoft werken... + description: |- + Alcoholieker van dienst + Breekt tab enkel als hij zijn tabgeld nog niet gekregen heeft + links: + - icon: github + url: https://github.com/VandorpeDavid + - name: Bauke Blomme + nickname: boterham + photo: https://zeus.ugent.be/zeuswpi/tvKlzNYC.jpg + quote: Als ge uw gas- en rempedaal tegelijk induwt, maakt uw auto een screenshot. + description: Verantwoordelijk voor 95% tot 98% van alle roze dingen in de kelder. + links: + - icon: facebook + url: https://www.facebook.com/bauke.blomme + - icon: instagram + url: https://www.instagram.com/blaukebomme + - icon: github + url: https://github.com/booterham + - icon: gitlab + url: https://git.zeus.gent/bokko + - name: Bart Coppens + nickname: bcoppens + photo: https://zeus.ugent.be/zeuswpi/lmKTWGfn.jpg + quote: |- + I AM BACK + ma nie tegen bcoppens zeggen, anders moet ik verderwerken + description: Houdt van security, assembly, en flitsende ASCII spiralen. + links: + - icon: twitter + url: https://twitter.com/bartcopp + - url: https://bartcoppens.be + - name: Bryan Verfaillie + nickname: Brian + quote: Programmeren, wat is dat eigenlijk? + description: |- + Oude zak die het eindelijk begint te beseffen maar het toch zo lang als mogelijk probeert te negeren! + De oudere generatie zal mij vooral herinners als de brave jongen die in zijn bachelor jaren zoals een voorbeeldig student naar de les ging om schoon mee te volgen (of toch te doen alsof). + Jaar na jaar ging het steeds meer de 'foute' kant op en werd de Zeus kelder een vaste stek, met zijn rode vloer en compleet andere indeling (ja zo oud dus). + Uiteindelijk hebben ze wat gerenoveerd maar goede dingen komen altijd terug, zo ook het typerende rode stof :p + + Na vele zware blokweken, van die leuke herexamens na 6 jaar toch een mooi diploma behaald: Ir. Verfaillie klinkt zo slecht nog niet. + Maar afscheid nemen bestaat niet dus doet hij er nog een master bij, deze keer in de Bioinformatica. Al heb ik horen waaien dat hij daar niet al te vaak in de les zat en meer in de Overpoort (Porter's it is) of zijn bed te vinden was. + Niettemin staat hij maar een thesis verwijderd van een nieuw diploma en een eind? Wie weet! + + In de loop der jaren heb ik ook de leuke zijprojecten leren kennen. Waar ik ooit begonnen ben met 'ik kom wel eens kijken op 12urenloop', kan ik x edities later vol trots zeggen dat ik voor de 2e keer hoofdcoördinator mag zijn van dit fantastische event. + Ook Student Kick-Off staat ondertussen al een aantal jaren op mijn teller en daar zijn ze ook nog niet van me af. Dus als je ze ooit over het manusje-van-alles hoort spreken zou dat wel eens over mij kunnen gaan. + + In 8 jaar universiteit heb ik zo een hele resem mensen mogen leren kennen, van nog oudere knarren tot echte snotneuzen maar allemaal wel toppers. Een deel van hen reken ik soms zelf bij mijn familie. + In 8 jaar tijd veel prachtige momenten en herinneringen verzameld en talrijke euro's armer. Maar dat is wat ik money well spent wil noemen. + Na 8 jaar voelt een mens zich ook soms oud tussen al dat jong geweld en vraagt zich wel eens af waarom hij nog studeert. Het antwoord bleek fantastische vrienden, belevingen en veel liefde <3 + Goed genoeg geleuter over mezelf en nostalgisch gedoe. Tot ooit wel nog eens! + links: + - icon: github + url: https://github.com/bryanverfaillie + - icon: linkedin + url: https://www.linkedin.com/in/bryan-verfaillie-686b66164/ diff --git a/layouts/blogpost.md b/layouts/blogpost.md index a2aa3e5..9e62a23 100644 --- a/layouts/blogpost.md +++ b/layouts/blogpost.md @@ -1,4 +1,4 @@ -
+
<% if item[:toc] %> diff --git a/layouts/partials/_privacy.erb b/layouts/partials/_privacy.erb new file mode 100644 index 0000000..e225a42 --- /dev/null +++ b/layouts/partials/_privacy.erb @@ -0,0 +1,21 @@ +

<%= project[:name] %>

+

+ <% if project.key?(:site) || project.key?(:repo) %> + Nuttige links: + <% end %> + <% if project.key?(:site) %> + projectwebsite + <% end %> + <% if project.key?(:site) && project.key?(:repo) %> + | + <% end %> + <% if project.key?(:repo) %> + repo + <% end %> +

+ +<% if project.compiled_content.strip.empty? %> +

Dit project kent geen afwijkingen van het algemeen beleid.

+<% else %> + <%= project.compiled_content %> +<% end %> diff --git a/layouts/partials/_privacy_link.erb b/layouts/partials/_privacy_link.erb new file mode 100644 index 0000000..44e85cb --- /dev/null +++ b/layouts/partials/_privacy_link.erb @@ -0,0 +1,9 @@ +
  • + <% if project.key?(:site) %> + <%= project[:name] %> + <% elsif project.key?(:repo) %> + <%= project[:name] %> + <% else %> + <%= project[:name] %> + <% end %> +
  • \ No newline at end of file diff --git a/layouts/partials/_project.erb b/layouts/partials/_project.erb index a67622d..c541d18 100644 --- a/layouts/partials/_project.erb +++ b/layouts/partials/_project.erb @@ -1,4 +1,4 @@ -
    +
    <% if project[:logo_image] %> @@ -12,13 +12,20 @@ <% end %>
    -

    <%= project[:title] %>

    - <%= project.compiled_content %> - <% if project[:github] %> - + <% if project.key?(:site) %> +

    <%= project[:name] %>

    + <% else %> +

    <%= project[:name] %>

    <% end %> - <% if project[:gitlab] %> - + <%= project.compiled_content %> + <% if project.key?(:repo) %> + <% if project[:repo].include?("github.com") || project[:repo].include?("github.ugent.be") %> + + <% elsif project[:repo].include?("git.zeus.gent") %> + + <% else %> + + <% end %> <% end %>
    diff --git a/lib/helpers/about.rb b/lib/helpers/about.rb index 1c0d8d2..d7fa3ee 100644 --- a/lib/helpers/about.rb +++ b/lib/helpers/about.rb @@ -7,6 +7,14 @@ module AboutHelper bestuur_of(@config[:academic_year].to_sym) end + def sponsoring_members_of(year) + data_from(:supporting_members)[year] + end + + def current_sponsoring_members + sponsoring_members_of(@config[:academic_year].to_sym) + end + def all_bestuur data_from(:bestuur).sort_by(&method(:academic_year_sort)).reverse.to_h end @@ -24,4 +32,8 @@ module AboutHelper def to_full_year(year) (year.to_i < 90) ? "20#{year}" : "19#{year}" end + + def to_HTML(text) + text.gsub("<", "<").gsub(">", ">").gsub("\n", "
    "); + end end diff --git a/lib/helpers/preprocess.rb b/lib/helpers/preprocess.rb index 6f8a3f4..bb23b51 100644 --- a/lib/helpers/preprocess.rb +++ b/lib/helpers/preprocess.rb @@ -5,16 +5,27 @@ module PreprocessHelper time: 'An event item should include the :time attribute, which describes the begin time and date of the event.', title: 'The event does not include a :title', location: 'The event should include a :location, a textual description', - } + locationlink: 'The event does not include a :locationlink, which is a querystring which is used for Google Maps', + privacy: { + status: 'A privacy item must include the status of the project' + } } end + def allowed_privacy_status + %w(additional general processor development) + end + def check_schema(itemtype, item) schema = required_attrs[itemtype] (schema.keys - item.attributes.keys).each do |key| raise "#{item.identifier}: #{schema[key]}" end + + if itemtype == :privacy && !allowed_privacy_status.include?(item.attributes[:status]) + raise "status must be one of #{allowed_privacy_status}, got #{item.attributes[:status]} on #{item[:filename]}" + end end def ignore_old_content(*paths) @@ -82,4 +93,24 @@ module PreprocessHelper report[:date] = Date.strptime(report.identifier.without_ext.split('/').last) end end + + def update_project_item(projects, project) + id = project.identifier.without_ext.split('/')[-1] + if projects.key?(id.to_sym) + projects[id.to_sym].each do |key, value| + project[key] = value + end + project[:id] = id + end + end + + def add_project_metadata + projects = data_from(:projecten) + all_privacy_items.each do |project| + update_project_item(projects, project) + end + all_project_items.each do |project| + update_project_item(projects, project) + end + end end diff --git a/lib/helpers/privacy.rb b/lib/helpers/privacy.rb new file mode 100644 index 0000000..4566db8 --- /dev/null +++ b/lib/helpers/privacy.rb @@ -0,0 +1,12 @@ +module PrivacyHelper + + def all_privacy_items + @items.find_all('/about/privacy/*') + end + + def privacy_projects(status) + all_privacy_items + .select {|project| project[:status] == status} + .sort_by {|project| project[:name]} + end +end diff --git a/lib/helpers/projects.rb b/lib/helpers/projects.rb index e648bb2..d8375a8 100644 --- a/lib/helpers/projects.rb +++ b/lib/helpers/projects.rb @@ -1,5 +1,10 @@ module ProjectsHelper + + def all_project_items + @items.find_all('/projects/*') + end + def all_projects - @items.find_all('/projects/*').sort_by{|project| -(project[:priority] || 0)} + all_project_items.sort_by{|project| -(project[:priority] || 0)} end end diff --git a/lib/helpers_.rb b/lib/helpers_.rb index 065cccd..ce6c656 100644 --- a/lib/helpers_.rb +++ b/lib/helpers_.rb @@ -22,3 +22,4 @@ include TimeHelper include TileHelper include AboutHelper include ReportsHelper +include PrivacyHelper