Project of building my portfolio, using high-level technologies and centering the development on the data. The idea was to first write down my experiences, projects, profile, education, etc. and then build a portfolio website around this. It ended up in a single yaml file, a website and python scripts.

You are probably reading this on the website resulting of this project (https://antoine.mandin.dev).

The first - and main - part of this project, is the actual data. I have condensed my experiences, projects and skills into a single yaml file.

The second part of the project is the portfolio website. It is built using Jekyll, and hosted on GitHub pages. I used a pre-existing theme (named Beautiful Jekyll) which I overrided with custom styles inspired from other jekyll themes. Using a plugin, I managed to create almost entirely the website from the yaml data file. I also implemented a search bar using MiniSearch library.
In the end, I built a static website, hosted on GitHub pages, with its own styling, search engine and domain name.

Finally, the third part of the project was a small python module dedicated to check the format of the data. I build a grammar file in yaml, representing the expected content of the data (e.g. that a project must a title, which is a text, and may have an end-date with the format dd-mm-yyyy) including the references workflow. Indeed, the whole idea was to have a consistent website, where projects may be linked to a job, and a job to a company, etc.
This python module was accompanied by formatters and linters, and used in a Continuous Integration workflow, to ensure that the data is well formatted all along its lifetime.

This project is still in progress when I wrote that.

Jekyll GitHub pages GitHub actions GitHub Git JavaScript CSS HTML Web UI Design Python CI/CD VS Code

View it online Source code