Skip to content

opentime is een open source project dat studenten en docenten helpt om hun roosters inzichtelijk te maken. Het project is gemaakt door studenten van mboRijnland

License

Notifications You must be signed in to change notification settings

sjensen19/opentime

Repository files navigation

Let op: Dit project is gemaakt in een week tijd, en is dus nog niet volledig af. Het is dus mogelijk dat er nog bugs in zitten. Als je een bug tegenkomt, maak dan een issue aan op GitHub.

Informatie: Aan dit project wordt op dit moment niet actief gewerkt. Het is dus mogelijk dat er geen updates meer komen. Als je wilt bijdragen aan dit project, maak dan een pull request aan op GitHub.

opentime

opentime is een open source project dat studenten en docenten helpt om hun roosters inzichtelijk te maken. Het project is gemaakt door studenten van mboRijnland.

Motivatie

Dit is een project van een groep 1e jaars studenten van de opleiding Software Developer (Crebo 25604), tijdens een introductieweek. Voor dit project hadden we een week de tijd. Het doel van dit project was om een website te maken die het rooster van de studenten en docenten inzichtelijk maakt. Denk hierbij aan vergelijkbare applicaties, zoals Magister, Osiris (vaak gebruikt op het MBO en HBO) en SOMtoday. Het verschil is dat deze applicatie open source is en dus door iedereen gebruikt kan worden.

Installatie

  1. Clone de repository
git clone https://github.com/sjensen19/opentime
  1. Installeer de benodigde packages
npm install
  1. Maak een lokale mysql database 'opentime'
  2. Stel de database in met de tabellen voor opentime
npm run db
  1. Compileer de tailwind css
npm run tailwind
  1. Maak een .env bestand aan in de root van de repository
  2. Voeg de volgende variabelen toe aan het .env bestand:
  • KN_ISSUER_URL: De URL van de OpenID Connect provider (Kennisnet)
  • KN_CLIENT_ID: De client ID van de OpenID Connect provider (Kennisnet)
  • KN_CLIENT_SECRET: De client secret van de OpenID Connect provider (Kennisnet)
  • KN_REDIRECT_URI: De redirect URI van de OpenID Connect provider (Kennisnet)
  • SESSION_SECRET: Een willekeurige string die gebruikt wordt voor het opslaan van de sessie
  • DB_HOST: De host van de MySQL database
  • DB_USER: De gebruikersnaam van de MySQL database
  • DB_NAME: De naam van de MySQL database
  1. Start de server
npm run dev

Technische aspecten

Voor dit project is gebruik gemaakt van de volgende technische aspecten:

  • Node.js
  • Express
  • MySQL
  • Tailwind CSS
  • EJS
  • Git
  • OpenID Connect

Authenticatie

Authenticatie gaat op dit moment via Kennisnet (Entree Federatie). Dit zorgt ervoor dat je op een vertrouwde manier kan inloggen bij opentime, met je schoolaccount. Op dit moment is het alleen mogelijk om in te loggen met een schoolaccount van mboRijnland. Voor authenticatie maken we gebruik van OpenID Connect. Dit protocol zorgt ervoor dat authenticatie veilig verloopt. Het protocol is gebaseerd op oAuth2.

Database

Voor de database maken we gebruik van MySQL. De database is op dit moment nog niet volledig, maar er is al wel een begin gemaakt. De database bestaat uit de volgende tabellen:

  • students
  • teachers
  • timetable
  • absences

In verband met een deadline voor dit project zijn we er niet aan toegekomen het project volledig af te maken. De database is dus nog niet volledig. De volgende tabellen moeten nog worden toegevoegd:

  • subjects
  • results

Front-end

Voor de front-end maken we gebruik van EJS. Dit is een template engine voor Node.js. EJS zorgt ervoor dat we dynamische pagina's kunnen maken. De front-end is op dit moment nog niet volledig, maar er is al wel een begin gemaakt. De volgende pagina's zijn al gemaakt:

  • Homepagina (Dashboard)
  • Roosterpagina

De volgende pagina's zijn op dit moment nog statisch, en moeten nog dynamisch worden gemaakt:

  • Resultatenpagina
  • Afwezigheidspagina

Pagina's voor docenten zijn nog niet beschikbaar en zullen later worden toegevoegd.

Tailwind CSS

Voor dit project, met een klein tijdsbestek hebben we ervoor gekozen om gebruik te maken van Tailwind CSS. Tailwind CSS is een CSS framework dat het mogelijk maakt om snel en eenvoudig een website te maken. Tailwind CSS is een utility-first CSS framework. Dit betekent dat je geen CSS classes hoeft te schrijven, maar dat je gebruik maakt van de classes die Tailwind CSS al heeft. Dit zorgt ervoor dat je snel en eenvoudig een website kan maken, zonder dat je veel CSS hoeft te schrijven. Dit hebben wij gebruikt in combinatie met de library Preline. Preline bevat al een aantal componenten die wij konden gebruiken voor dit project. Dit zorgde ervoor dat we snel en eenvoudig een goed uitziende front-end konden maken.

Toekomst

Op dit moment is het project nog niet volledig af. Er zijn nog een aantal dingen die nog moeten worden toegevoegd. Eventueel zal dit project in de toekomst volledig worden afgerond.

Bijdragen

Dit project is open source. Dit betekent dat iedereen kan bijdragen aan dit project. Als je wilt bijdragen aan dit project, maak dan een pull request aan op GitHub. Als je een bug tegenkomt, maak dan een issue aan op GitHub.

Licentie

Dit project is gelicenseerd onder de BSD-3-Clause licentie. Zie het bestand LICENSE voor meer informatie.

Credits

Special thanks

  • mboRijnland - Voor het mogelijk maken van dit project
  • Kennisnet - Voor het mogelijk maken van authenticatie via Entree Federatie
  • HTMLstream - Voor het mogelijk maken van de library Preline

Contact

Als je vragen of opmerkingen hebt met betrekking tot dit project, neem dan contact op met:

About

opentime is een open source project dat studenten en docenten helpt om hun roosters inzichtelijk te maken. Het project is gemaakt door studenten van mboRijnland

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages