feat(resume): better json structure
This commit is contained in:
parent
d6bd67a2da
commit
2ffea229a8
|
@ -7,84 +7,92 @@
|
||||||
"label": "CS Engineering Student",
|
"label": "CS Engineering Student",
|
||||||
"about": "I am an hardworking and punctual person, I work well in a team, and equally good on my own. I have good listening and communication skills, I am well organized and rarely fail to meet deadlines."
|
"about": "I am an hardworking and punctual person, I work well in a team, and equally good on my own. I have good listening and communication skills, I am well organized and rarely fail to meet deadlines."
|
||||||
},
|
},
|
||||||
"contacts_title": "Contacts",
|
"contacts": {
|
||||||
"contacts": [
|
"title": "Contacts",
|
||||||
{
|
"list": [
|
||||||
"contact": "laurentfainsin@protonmail.com",
|
{
|
||||||
"url": "mailto:laurentfainsin@protonmail.com",
|
"contact": "laurentfainsin@protonmail.com",
|
||||||
"icon": "fa fa-envelope-o"
|
"url": "mailto:laurentfainsin@protonmail.com",
|
||||||
},
|
"icon": "fa fa-envelope-o"
|
||||||
{
|
},
|
||||||
"contact": "+33781492838",
|
{
|
||||||
"url": "https://signal.org/",
|
"contact": "+33781492838",
|
||||||
"icon": "fa fa-phone"
|
"url": "https://signal.org/",
|
||||||
},
|
"icon": "fa fa-phone"
|
||||||
{
|
},
|
||||||
"contact": "Brest, France",
|
{
|
||||||
"url": "https://www.openstreetmap.org/#map=12/48.3930/-4.4601",
|
"contact": "Brest, France",
|
||||||
"icon": "fa fa-location-arrow"
|
"url": "https://www.openstreetmap.org/#map=12/48.3930/-4.4601",
|
||||||
}
|
"icon": "fa fa-location-arrow"
|
||||||
],
|
}
|
||||||
"socials_title": "Socials",
|
]
|
||||||
"socials": [
|
},
|
||||||
{
|
"socials": {
|
||||||
"network": "laurent-fainsin",
|
"title": "Socials",
|
||||||
"url": "https://www.linkedin.com/in/laurent-fainsin/",
|
"list": [
|
||||||
"icon": "fa fa-linkedin"
|
{
|
||||||
},
|
"network": "laurent-fainsin",
|
||||||
{
|
"url": "https://www.linkedin.com/in/laurent-fainsin/",
|
||||||
"network": "fainsil",
|
"icon": "fa fa-linkedin"
|
||||||
"url": "https://git.inpt.fr/fainsil",
|
},
|
||||||
"icon": "fa fa-gitlab"
|
{
|
||||||
},
|
"network": "fainsil",
|
||||||
{
|
"url": "https://git.inpt.fr/fainsil",
|
||||||
"network": "@fainsil:inpt.fr",
|
"icon": "fa fa-gitlab"
|
||||||
"url": "https://matrix.to/#/@fainsil:inpt.fr",
|
},
|
||||||
"icon": "fa fa-matrix-org"
|
{
|
||||||
}
|
"network": "@fainsil:inpt.fr",
|
||||||
],
|
"url": "https://matrix.to/#/@fainsil:inpt.fr",
|
||||||
"school_projects_title": "School projects",
|
"icon": "fa fa-matrix-org"
|
||||||
"school_projects": [
|
}
|
||||||
{
|
]
|
||||||
"title": "Sagittarius",
|
},
|
||||||
"repo": "https://git.inpt.fr/tobgang/sagittarius",
|
"school_projects": {
|
||||||
"pdf": "https://git.inpt.fr/tobgang/sagittarius-pdf/-/blob/master/iteration3/rapport3.pdf",
|
"title": "School projects",
|
||||||
"role": "Author",
|
"list": [
|
||||||
"description": "As a result of an object oriented programming project in java, here is a little 2D turn-based game inspired from a game, nspired by a game under the same name by George Prosser."
|
{
|
||||||
},
|
"title": "Sagittarius",
|
||||||
{
|
"repo": "https://git.inpt.fr/tobgang/sagittarius",
|
||||||
"title": "Minishell",
|
"pdf": "https://git.inpt.fr/tobgang/sagittarius-pdf/-/blob/master/iteration3/rapport3.pdf",
|
||||||
"repo": "https://git.inpt.fr/fainsil/minishell",
|
"role": "Author",
|
||||||
"role": "Author",
|
"description": "As a result of an object oriented programming project in java, here is a little 2D turn-based game inspired from a game, nspired by a game under the same name by George Prosser."
|
||||||
"description": "As a result of an object oriented programming project in java, here is a little 2D turn-based game inspired from a game, nspired by a game under the same name by George Prosser."
|
},
|
||||||
},
|
{
|
||||||
{
|
"title": "Minishell",
|
||||||
"title": "Pagerank",
|
"repo": "https://git.inpt.fr/fainsil/minishell",
|
||||||
"repo": "https://git.inpt.fr/fainsil/pagerank",
|
"role": "Author",
|
||||||
"pdf": "https://git.inpt.fr/fainsil/pagerank/-/blob/master/doc/rapport.pdf",
|
"description": "As a result of an object oriented programming project in java, here is a little 2D turn-based game inspired from a game, nspired by a game under the same name by George Prosser."
|
||||||
"role": "Author",
|
},
|
||||||
"description": "Implementation of an iterative algorithm in Ada to compute the pagerank of a given network as quickly and efficiently as possible."
|
{
|
||||||
}
|
"title": "Pagerank",
|
||||||
],
|
"repo": "https://git.inpt.fr/fainsil/pagerank",
|
||||||
"personnal_projects_title": "Personnal projects",
|
"pdf": "https://git.inpt.fr/fainsil/pagerank/-/blob/master/doc/rapport.pdf",
|
||||||
"personnal_projects": [
|
"role": "Author",
|
||||||
{
|
"description": "Implementation of an iterative algorithm in Ada to compute the pagerank of a given network as quickly and efficiently as possible."
|
||||||
"title": "B00 plays GBA",
|
}
|
||||||
"repo": "https://git.inpt.fr/fainsil/booplaysgba/",
|
]
|
||||||
"role": "Author",
|
},
|
||||||
"description": "Using technologies such as websocket, redis, docker, rtmp, mgba and gluing it all together with Python, we get a collaborative emulator inspired from TwitchPlaysPokemon."
|
"personnal_projects": {
|
||||||
},
|
"title": "Personnal projects",
|
||||||
{
|
"list": [
|
||||||
"title": "This website",
|
{
|
||||||
"repo": "https://git.inpt.fr/fainsil/personnal-website/",
|
"title": "B00 plays GBA",
|
||||||
"role": "Author",
|
"repo": "https://git.inpt.fr/fainsil/booplaysgba/",
|
||||||
"description": "I made this website almost entirely from scratch, I used the static site generetor 11ty.js to simplify the process thanks to its templating system. I learned a lot about HTML, CSS, Javascript and it also allowed me to strengthen my git skills."
|
"role": "Author",
|
||||||
}
|
"description": "Using technologies such as websocket, redis, docker, rtmp, mgba and gluing it all together with Python, we get a collaborative emulator inspired from TwitchPlaysPokemon."
|
||||||
],
|
},
|
||||||
"education_title": "Education",
|
{
|
||||||
|
"title": "This website",
|
||||||
|
"repo": "https://git.inpt.fr/fainsil/personnal-website/",
|
||||||
|
"role": "Author",
|
||||||
|
"description": "I made this website almost entirely from scratch, I used the static site generetor 11ty.js to simplify the process thanks to its templating system. I learned a lot about HTML, CSS, Javascript and it also allowed me to strengthen my git skills."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"education": {
|
"education": {
|
||||||
|
"title": "Education",
|
||||||
"level": "Master degree",
|
"level": "Master degree",
|
||||||
"history": [
|
"list": [
|
||||||
{
|
{
|
||||||
"institution": "ENSEEIHT",
|
"institution": "ENSEEIHT",
|
||||||
"title": "CS Engineer",
|
"title": "CS Engineer",
|
||||||
|
@ -111,141 +119,149 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"skills_title": "Skills",
|
"skills": {
|
||||||
"skills": [
|
"title": "Skills",
|
||||||
{
|
"list": [
|
||||||
"name": "General Softwares",
|
{
|
||||||
"level": "advanced",
|
"name": "General Softwares",
|
||||||
"tags": [
|
"level": "advanced",
|
||||||
"Linux",
|
"tags": [
|
||||||
"LaTeX",
|
"Linux",
|
||||||
"Git",
|
"LaTeX",
|
||||||
"Word",
|
"Git",
|
||||||
"Excel"
|
"Word",
|
||||||
]
|
"Excel"
|
||||||
},
|
]
|
||||||
{
|
},
|
||||||
"name": "Web Development",
|
{
|
||||||
"level": "intermediate",
|
"name": "Web Development",
|
||||||
"tags": [
|
"level": "intermediate",
|
||||||
"HTML5",
|
"tags": [
|
||||||
"CSS3",
|
"HTML5",
|
||||||
"JavaScript",
|
"CSS3",
|
||||||
"Django",
|
"JavaScript",
|
||||||
"11ty.js"
|
"Django",
|
||||||
]
|
"11ty.js"
|
||||||
},
|
]
|
||||||
{
|
},
|
||||||
"name": "Scientific Computing",
|
{
|
||||||
"level": "intermediate",
|
"name": "Scientific Computing",
|
||||||
"tags": [
|
"level": "intermediate",
|
||||||
"Numpy",
|
"tags": [
|
||||||
"Matlab",
|
"Numpy",
|
||||||
"Julia"
|
"Matlab",
|
||||||
]
|
"Julia"
|
||||||
},
|
]
|
||||||
{
|
},
|
||||||
"name": "Licenses",
|
{
|
||||||
"level": "french",
|
"name": "Licenses",
|
||||||
"tags": [
|
"level": "french",
|
||||||
"AM",
|
"tags": [
|
||||||
"B",
|
"AM",
|
||||||
"B1"
|
"B",
|
||||||
]
|
"B1"
|
||||||
}
|
]
|
||||||
],
|
}
|
||||||
"reading_title": "Readings",
|
]
|
||||||
"reading": [
|
},
|
||||||
{
|
"reading": {
|
||||||
"title": "Data-Driven Science and Engineering",
|
"title": "Readings",
|
||||||
"url": "http://www.databookuw.com/"
|
"list": [
|
||||||
},
|
{
|
||||||
{
|
"title": "Data-Driven Science and Engineering",
|
||||||
"title": "Linux Bible, 10th Edition",
|
"url": "http://www.databookuw.com/"
|
||||||
"url": "https://www.oreilly.com/library/view/linux-bible-10th/9781119578888/"
|
},
|
||||||
},
|
{
|
||||||
{
|
"title": "Linux Bible, 10th Edition",
|
||||||
"title": "The Book of Shaders",
|
"url": "https://www.oreilly.com/library/view/linux-bible-10th/9781119578888/"
|
||||||
"url": "https://thebookofshaders.com/"
|
},
|
||||||
},
|
{
|
||||||
{
|
"title": "The Book of Shaders",
|
||||||
"title": "r/programming",
|
"url": "https://thebookofshaders.com/"
|
||||||
"url": "https://www.reddit.com/r/programming"
|
},
|
||||||
},
|
{
|
||||||
{
|
"title": "r/programming",
|
||||||
"title": "r/privacy",
|
"url": "https://www.reddit.com/r/programming"
|
||||||
"url": "https://www.reddit.com/r/privacy"
|
},
|
||||||
}
|
{
|
||||||
],
|
"title": "r/privacy",
|
||||||
"languages_title": "Languages",
|
"url": "https://www.reddit.com/r/privacy"
|
||||||
"languages": [
|
}
|
||||||
{
|
]
|
||||||
"language": "French",
|
},
|
||||||
"level": "native",
|
"languages": {
|
||||||
"icon": "flag-icon flag-icon-fr"
|
"title": "Languages",
|
||||||
},
|
"list": [
|
||||||
{
|
{
|
||||||
"language": "English",
|
"language": "French",
|
||||||
"level": "proficient",
|
"level": "native",
|
||||||
"icon": "flag-icon flag-icon-gb"
|
"icon": "flag-icon flag-icon-fr"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"language": "Japanese",
|
"language": "English",
|
||||||
"level": "beginner",
|
"level": "proficient",
|
||||||
"icon": "flag-icon flag-icon-jp"
|
"icon": "flag-icon flag-icon-gb"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"language": "Spanish",
|
"language": "Japanese",
|
||||||
"level": "elementary",
|
"level": "beginner",
|
||||||
"icon": "flag-icon flag-icon-es"
|
"icon": "flag-icon flag-icon-jp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"language": "Python",
|
"language": "Spanish",
|
||||||
"level": "intermediate",
|
"level": "elementary",
|
||||||
"icon": "devicon-python-plain"
|
"icon": "flag-icon flag-icon-es"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"language": "Java",
|
"language": "Python",
|
||||||
"level": "intermediate",
|
"level": "intermediate",
|
||||||
"icon": "devicon-java-plain"
|
"icon": "devicon-python-plain"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"language": "Rust",
|
"language": "Java",
|
||||||
"level": "beginner",
|
"level": "intermediate",
|
||||||
"icon": "devicon-rust-plain"
|
"icon": "devicon-java-plain"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"language": "C",
|
"language": "Rust",
|
||||||
"level": "beginner",
|
"level": "beginner",
|
||||||
"icon": "devicon-c-plain"
|
"icon": "devicon-rust-plain"
|
||||||
}
|
},
|
||||||
],
|
{
|
||||||
"interests_title": "Interests",
|
"language": "C",
|
||||||
"interests": [
|
"level": "beginner",
|
||||||
{
|
"icon": "devicon-c-plain"
|
||||||
"name": "GitHub/Gitlab",
|
}
|
||||||
"summary": "Regular open source software user and tinkerer.",
|
]
|
||||||
"tags": [
|
},
|
||||||
"Git",
|
"interests": {
|
||||||
"Open Source"
|
"title": "Interests",
|
||||||
]
|
"list": [
|
||||||
},
|
{
|
||||||
{
|
"name": "GitHub/Gitlab",
|
||||||
"name": "Archery",
|
"summary": "Regular open source software user and tinkerer.",
|
||||||
"summary": "Practiced for a couple years the art of precision & accuracy.",
|
"tags": [
|
||||||
"tags": [
|
"Git",
|
||||||
"Precision",
|
"Open Source"
|
||||||
"Accuracy",
|
]
|
||||||
"Patience"
|
},
|
||||||
]
|
{
|
||||||
},
|
"name": "Archery",
|
||||||
{
|
"summary": "Practiced for a couple years the art of precision & accuracy.",
|
||||||
"name": "Fishkeeping",
|
"tags": [
|
||||||
"summary": "Tamagochis, but with real responsibilities.",
|
"Precision",
|
||||||
"tags": [
|
"Accuracy",
|
||||||
"Patience",
|
"Patience"
|
||||||
"Perfectionism"
|
]
|
||||||
]
|
},
|
||||||
}
|
{
|
||||||
]
|
"name": "Fishkeeping",
|
||||||
|
"summary": "Tamagochis, but with real responsibilities.",
|
||||||
|
"tags": [
|
||||||
|
"Patience",
|
||||||
|
"Perfectionism"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,8 +41,8 @@ permalink: "resume/{{ resume.locale }}/index.html"
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>{{ resume.school_projects_title }}</h2>
|
<h2>{{ resume.school_projects.title }}</h2>
|
||||||
{% for project in resume.school_projects %}
|
{% for project in resume.school_projects.list %}
|
||||||
<section>
|
<section>
|
||||||
<h3>{{ project.title }}</h3>
|
<h3>{{ project.title }}</h3>
|
||||||
<p>{{ project.description }}</p>
|
<p>{{ project.description }}</p>
|
||||||
|
@ -60,8 +60,8 @@ permalink: "resume/{{ resume.locale }}/index.html"
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>{{ resume.personnal_projects_title }}</h2>
|
<h2>{{ resume.personnal_projects.title }}</h2>
|
||||||
{% for project in resume.personnal_projects %}
|
{% for project in resume.personnal_projects.list %}
|
||||||
<section>
|
<section>
|
||||||
<h3>{{ project.title }}</h3>
|
<h3>{{ project.title }}</h3>
|
||||||
<p>{{ project.description }}</p>
|
<p>{{ project.description }}</p>
|
||||||
|
@ -78,9 +78,9 @@ permalink: "resume/{{ resume.locale }}/index.html"
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>{{ resume.reading_title }}</h2>
|
<h2>{{ resume.reading.title }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
{% for read in resume.reading %}
|
{% for read in resume.reading.list %}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ read.url }}">{{ read.title | safe }}</a>
|
<a href="{{ read.url }}">{{ read.title | safe }}</a>
|
||||||
</li>
|
</li>
|
||||||
|
@ -89,8 +89,8 @@ permalink: "resume/{{ resume.locale }}/index.html"
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>{{ resume.interests_title }}</h2>
|
<h2>{{ resume.interests.title }}</h2>
|
||||||
{% for interest in resume.interests %}
|
{% for interest in resume.interests.list %}
|
||||||
<section>
|
<section>
|
||||||
<h3>{{ interest.name }}</h3>
|
<h3>{{ interest.name }}</h3>
|
||||||
<p>{{ interest.summary }}</p>
|
<p>{{ interest.summary }}</p>
|
||||||
|
@ -106,9 +106,9 @@ permalink: "resume/{{ resume.locale }}/index.html"
|
||||||
|
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
|
|
||||||
<h2>{{ resume.contacts_title }}</h2>
|
<h2>{{ resume.contacts.title }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
{% for contact in resume.contacts %}
|
{% for contact in resume.contacts.list %}
|
||||||
<li>
|
<li>
|
||||||
<span class="{{ contact.icon }}"></span>
|
<span class="{{ contact.icon }}"></span>
|
||||||
<a href="{{ contact.url }}">{{ contact.contact }}</a>
|
<a href="{{ contact.url }}">{{ contact.contact }}</a>
|
||||||
|
@ -118,9 +118,9 @@ permalink: "resume/{{ resume.locale }}/index.html"
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>{{ resume.socials_title }}</h2>
|
<h2>{{ resume.socials.title }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
{% for social in resume.socials %}
|
{% for social in resume.socials.list %}
|
||||||
<li>
|
<li>
|
||||||
<span class="{{social.icon}}"></span>
|
<span class="{{social.icon}}"></span>
|
||||||
<a href="{{social.url}}">{{social.network}}</a>
|
<a href="{{social.url}}">{{social.network}}</a>
|
||||||
|
@ -130,13 +130,13 @@ permalink: "resume/{{ resume.locale }}/index.html"
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>{{ resume.education_title }}</h2>
|
<h2>{{ resume.education.title }}</h2>
|
||||||
<ul class="timeline">
|
<ul class="timeline">
|
||||||
<span class="arrow-up"></span>
|
<span class="arrow-up"></span>
|
||||||
<li class="event"></li>
|
<li class="event"></li>
|
||||||
|
|
||||||
{% for edu in resume.education.history %}
|
{% for edu in resume.education.list %}
|
||||||
{% if edu.end != resume.education.history[loop.index - 2].start %}
|
{% if edu.end != resume.education.list[loop.index - 2].start %}
|
||||||
{% if loop.index != 1 %}
|
{% if loop.index != 1 %}
|
||||||
<li class="event"></li>
|
<li class="event"></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -157,9 +157,9 @@ permalink: "resume/{{ resume.locale }}/index.html"
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>{{ resume.skills_title }}</h2>
|
<h2>{{ resume.skills.title }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
{% for skill in resume.skills %}
|
{% for skill in resume.skills.list %}
|
||||||
<li>
|
<li>
|
||||||
{{ skill.name }}
|
{{ skill.name }}
|
||||||
{% if skill.level %}
|
{% if skill.level %}
|
||||||
|
@ -176,9 +176,9 @@ permalink: "resume/{{ resume.locale }}/index.html"
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>{{ resume.languages_title }}</h2>
|
<h2>{{ resume.languages.title }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
{% for lang in resume.languages %}
|
{% for lang in resume.languages.list %}
|
||||||
<li>
|
<li>
|
||||||
<span class="{{ lang.icon }}"></span>
|
<span class="{{ lang.icon }}"></span>
|
||||||
{{ lang.language }}
|
{{ lang.language }}
|
||||||
|
|
Reference in a new issue