PrutCMS

Een heel klein prettig CMS.

De observatie

Ik had geen toegang tot een database, wilde met mijn telefoon een website kunnen updaten en had geen zin meer om zoals daarvoor: handmatig in vim HTML te typen. Ook wilde ik al een tijdje iets doen met contentEditable elementen (stukjes website die je kunt bewerken in de browser) en XMLHttpRequest. Veel CMSsen kennen een backend, een beheersysteem van documenten die je daar kunt aanpassen. Heel ingewikkeld allemaal en moeilijk te navigeren op je telefoon.

Doel

Ik wil de inhoud kunnen aanpassen, exact hoe en waar die staat.

De analyse

Een situatie waarin ik volledig gebruik wilde maken van Apache (de webserver) en PHP (de template/scripting taal), HTML en javascript. Gelukkig mengen die goed. De ontwikkelomgeving bestond uit een teksteditor (gedit), een server met een lege website (sftp mount) en een webbrowser.

De oplossing

Allereerst bouwde ik de website zoals ik dacht dat zeij(?) op een telefoon goed zichtbaar was, ik schreef semantische HTML. Gebruikte de browser om snel layout prototypes te maken (developer tools!) en maakte al snel iets om op te schieten. Het lezen van bestanden uit het filesystem was één van de eerste dingen die geïmplementeerd werd. Opslaan van de contentEditable articles was de volgende: gewoon HTML uitschrijven naar bestanden.. Ik maakte me geen zorgen om code injection, want, waarom zou je je eigen website om zeep willen helpen?

Het login systeem was de volgende, gebruikmakend van de omgeving (Apache kent HTTP Basic authenticatie) en gecombineerd met het TLS certificaat van Letsencrypt is dat prima veilig en: Waarom een login formulier coderen als de browser daar al een prima User Interface voor heeft. Zo veel mogelijk niet zelf maken, gebruik de schouders van Reuzen. Weet je, password managers zijn er ook blij mee. Duidelijkheid over waar in welk veldje het wachtwoord hoort (de één noemt hem password, de ander pass, weer een ander passwd; moet je allemaal rekening mee houden als ontwikkelaar, terwijl je net zoiets moois hebt gemaakt) en op de server gebruik maken van wat geboden wordt... Zo snel was ik nog nooit klaar met authenticatie/authorisatie. Ik ken 1 rol, Admin, en die kon alles. En toen.. was het af.

Voor de lol maakte ik nog een plaatjes-upload-systeem wat plaatjes geplakt vanuit de telefoon netjes uploadt. En voor mijn instagram/facebook vrienden bouwde ik een meme-generator, artikelen op een achtergrond, gerenderd als plaatje (staan op de schouders van reuzen, mijn eerste expliciete dependency: HTML2Canvas) En toen, was het af?

Mijn websites:



 

Source on request, 🔙 naar het Bedrijf zonder Naam