My portfolio generator"

The portfolio project generates 2 static websites:

  1. the public portfolio
  2. my teaching experiences
  3. a tool to calculate and generate a French pedagogic statement

1. Public portfolio

It's a project based on plain-text files.

How it works?

  1. Get data from local csv files
  2. Retrieve projects information using Github API
  3. Calculate statistics
  4. Generate website (HTML pages)

Previously, it downloads csv files (projects, packages...) directly from Google Drive.

Database

The projects are stored in CSV files. Each CSV file is a category: projects, websites, guides, etc.

I list the projects I did and I’m actually maintaining by editing these CSV files, and I indicate for each project its GitHub repository.

Github API

Each time I generate the portfolio, I retrieve projects information from the GitHub repository directly using the GitHub API.

I store Github informations retrieved in the CSV files.

The description, the topics (or tags), the URL, the language, etc. come directly from GitHub. This forces me to have clean and complete repositories.

Github Topics

I use Github API to list project dependencies based on package.json file for Node or composer.json for PHP.

The project will automatically update GitHub repositories by applying the topics that correspond to the dependencies.

Project details

The portfolio automatically calculates statistics about the projects I have made.

And then automatically, for each project, an HTML page is generated including the project information contained in the CSV file.

2. Teaching experiences

This project is also based on a database made up of plain-text, markdown and CSV files.

All I have to do is update these files and generate the website regularly, so that it presents my teaching experience in the most complete and transparent way possible.

Database

A file lists all the courses I’ve made, and another list lists all the classes I’ve had.

I use these two files as a relational database. This is done using a virtual index made up of three columns: year, city and name of the school.

I use 2 others Portfolio files for statistics: exercises.csv and guides.csv.

Content

The content is written in Markdown. Because that website is multilingual, I have two files, one in English and one in French.

Each file generates a Nunjucks file (e.g. en.njk). Then this file is rendered in HTML.

That means I use the Nunjucks template system inside a markdown file.

Statistics

This project lists and calculates statistics on training, classes, and also on exercises and guides.

3. Pedagogic statement tool

In France, when you are an official teacher, a yearly pedagogic statement is mandatory.

Because all my teaching data are organized in CSV files, I'm able to easily and automatically calculate and generate yearly pedagogic statements.