content/projects/Portfolio/cover.png


Portfolio

Other


Python, Django, TailwindCSS, JavaScript, p5.JS, linux, Apache 2



Introduction


Choosing Python as one of my focus languages the choice to create a website with Django was not too far off. This framework takes the role as the builder of the page, which makes it easier for me to reuse code in Python from other projects. It is quite elaborate and has been described by various members of the webdev community as a “Backend frameworks with batteries included”.


Indeed for this project quite an overkill, but yet a good chance to learn something new that also enhances my skills and gives the ability to build full web projects.

Another decision was to choose a content management system to build the project pages, and there is indeed a good count of those available. Most did not suit my need and are too bulky for my use-case like for instance wagtail. I opted to create my own CMD which would have the upside to expose the need to learn how to manage the template system in Django.


Backend

Taking into account the environment of this project it was sufficient to me to make use of the tooling on my system and prioritize the ease of use. I did not want to edit my pages through the browser, but by using a local application and file format which is accessible. I wanted to make use of the tools in doc editors like LibreOffice such as spellchecking but also want to avoid file formats which would make the implementation more complicated than necessary. My decision was the DocBook .xml format because it is simple and has no extra layers such as the Word .xml.

This choice does not influence the processing of the data overall due to the dependency injection into the interface in the data-prepper, through which all needed content and instructions are loaded for the page rendering.

The website itself is deployed via Github on an Ubuntu server.

codeOverview.png

Frontend

For some projects I used the processing p5.js library which makes creating visual effects a breeze. Its advantage is that it removes a good amount of the inconvenience creating with the html canvas element, which makes it fun to create with. In general the visuals of the pages are more mellow and easy to look at without too much distraction from the content. This lead for instance to the choice to use shadows instead of border lines for most elements and in the same way I envisioned some background effects for the user to explore. Noticeable, but not distracting.