Nijntje

Project details

Hobbyproject Nijntje ontstond uit de behoefte om een website helemaal zelf op te zetten en te experimenteren met verschillende technieken. Ik wilde eens testen hoe het is om met CSS Grid te werken (vandaar de ongewone lay-out) en hoe het is om met Django aan de slag te gaan. In mijn missie om een breed inzetbare programmeur te worden, wil ik natuurlijk kennismaken met zoveel mogelijk verschillende technologieën. Daar moet je meters voor maken — en dat heb ik met dit project dan ook gedaan. De website is niet zozeer bedoeld voor dagelijks gebruik, maar was eerder een speeltuin voor mijzelf om te ontdekken — en hopelijk ook voor de bezoeker.

  • HTML5 logo
    HTML5
  • CSS3 logo
    CCS3
  • Certbot logo
    Certbot
  • Django logo
    Django
  • Gunicorn logo
    Gunicorn
  • JavaScript logo
    JavaScript
  • Nginx logo
    Nginx
Live site
Screenshot, hoofdpagina Nijntje

Problemen en oplossingen

Het opzetten van het messageboard met Django was een flinke klus. Hiervoor moest ik een VPS hebben maar deze had ik nog niet. Dat dus uitgezocht, aangeschaft en ingesteld. Het instellen van Gunicorn als WSGI-server voor Python en Nginx als reverse proxy was ook even puzzelen maar uiteindelijk gelukt. Ik haal de berichten op met Javascript fetch. In Nginx heb ik aardig wat tijd besteed aan het werken met poorten en serverblokken, een concept dat me eerst niet helemaal duidelijk was, maar nu wel. Daarnaast heb ik gewerkt op basis van een functioneel ontwerp en het design zelf gedaan. Ik ben geen designer natuurlijk, maar ik ben niet verlegen om dingen uit te proberen.

Screenshot, messageboard Nijntje Screenshot, 'over Nijntje' pagina

Wat ik heb geleerd

Het belang van een duidelijk omschreven doel is essentieel, zodat je weet welk probleem je wilt oplossen, en wat de beste manier is om dat te doen. Verder, ik weet nu hoe een VPS werkt en hoe je ermee kunt werken. Ook met SSH-sleutels en Certbot gewerkt met oog op beveiliging. Ik begrijp de basis van hoe servers functioneren, hoe poorten geconfigureerd moeten worden, hoe je een messageboard opzet met Django en hoe je een eenvoudige e-mailfunctionaliteit opzet. Het besef dat ik, zonder veel voorkennis, relatief ingewikkelde stof aan de praat krijg, is een motiverende gedachte.