added self referce for data
This commit is contained in:
parent
2c9ec8c379
commit
6c7a00868b
@ -40,9 +40,9 @@
|
|||||||
{who[currentLanguage]}
|
{who[currentLanguage]}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div class="cv">
|
||||||
<a class="cv" rel="external" href="/curriculum_it.pdf"><i class="fas fa-download"></i> curriculum_it.pdf</a>
|
<a rel="external" href="/curriculum_it.pdf"><i class="fas fa-download"></i> curriculum_it.pdf</a>
|
||||||
<a class="cv" rel="external" href="/curriculum_en.pdf"><i class="fas fa-download"></i> curriculum_en.pdf</a>
|
<a rel="external" href="/curriculum_en.pdf"><i class="fas fa-download"></i> curriculum_en.pdf</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@ -53,23 +53,28 @@
|
|||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
max-width: $cv-max-width;
|
max-width: $cv-max-width;
|
||||||
width: 95%;
|
width: 90%;
|
||||||
height: auto;
|
height: auto;
|
||||||
border-style: solid;
|
|
||||||
border-width: 0.1px;
|
border-width: 0.1px;
|
||||||
border-color: $rich-black-fogra-29;
|
border-color: $rich-black-fogra-29;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
||||||
-webkit-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
-webkit-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
||||||
-moz-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
-moz-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
||||||
padding-top: 2vh;
|
padding: 1vh;
|
||||||
padding-bottom: 2vh;
|
padding-bottom: 2vh;
|
||||||
text-align: center;
|
padding-top: 2vh;
|
||||||
|
text-align: justify;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cv{
|
.cv>a{
|
||||||
font-size: unset;
|
font-size: unset;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
width: 50%;
|
||||||
|
margin: 20px;
|
||||||
|
}
|
||||||
|
.cv{
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.profile{
|
.profile{
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: auto;
|
height: auto;
|
||||||
font-size: 1.1em;
|
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
width: 95%;
|
width: 95%;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
|
@ -9,7 +9,12 @@
|
|||||||
import data from '../model/jobs.json'
|
import data from '../model/jobs.json'
|
||||||
import type { Schema } from 'src/model/job';
|
import type { Schema } from 'src/model/job';
|
||||||
export let currentLanguage = 'it'
|
export let currentLanguage = 'it'
|
||||||
const jobs:Schema[] = data as Schema[];
|
// const jobs:Schema[] = data as Schema[];
|
||||||
|
let jobs:Schema[] = data as Schema[];
|
||||||
|
fetch('/data/jobs.json').then(async (resp)=>{
|
||||||
|
jobs = (await resp.json()) as Schema[];
|
||||||
|
}).catch(console.error);
|
||||||
|
|
||||||
|
|
||||||
export function changeLanguage(language = 'it'){
|
export function changeLanguage(language = 'it'){
|
||||||
currentLanguage = language
|
currentLanguage = language
|
||||||
@ -59,33 +64,28 @@
|
|||||||
background-color:$steel-blue;
|
background-color:$steel-blue;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
height: auto;
|
|
||||||
font-size: 1.1em;
|
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
width: 95%;
|
width: 90%;
|
||||||
|
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
||||||
-webkit-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
-webkit-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
||||||
-moz-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
-moz-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
||||||
padding-top: 1.5vh;
|
padding: 1vh;
|
||||||
padding-bottom: 1.5vh;
|
|
||||||
}
|
}
|
||||||
.job{
|
.job{
|
||||||
background-color: $cultured;
|
background-color: $cultured;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
width: 98%;
|
width: 98%;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 1vh;
|
||||||
margin-top: 10px;
|
padding: 1vh;
|
||||||
padding-top: 2vh;
|
|
||||||
padding-bottom: 2vh;
|
|
||||||
background-color: $cultured;
|
background-color: $cultured;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 0.1px;
|
border-width: 0.1px;
|
||||||
}
|
}
|
||||||
|
.job:last-child{
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
.job-content{
|
.job-content{
|
||||||
padding: 2vh;
|
padding: 2vh;
|
||||||
|
@ -9,13 +9,17 @@
|
|||||||
import data from '../model/portfolio.json'
|
import data from '../model/portfolio.json'
|
||||||
import type { Schema } from 'src/model/job';
|
import type { Schema } from 'src/model/job';
|
||||||
export let currentLanguage = 'it'
|
export let currentLanguage = 'it'
|
||||||
const portfolio:Schema[] = data as Schema[];
|
// let portfolio:Schema[] = data as Schema[];
|
||||||
|
let portfolio:Schema[] = [];
|
||||||
|
fetch('/data/portfolio.json').then(async (resp)=>{
|
||||||
|
portfolio = (await resp.json()) as Schema[];
|
||||||
|
}).catch(console.error);
|
||||||
|
|
||||||
export function changeLanguage(language = 'it'){
|
export function changeLanguage(language = 'it'){
|
||||||
currentLanguage = language
|
currentLanguage = language
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<div class="extraContainer">
|
<div class="portfolioContainer">
|
||||||
{#each portfolio as element }
|
{#each portfolio as element }
|
||||||
<div class="element">
|
<div class="element">
|
||||||
<h3>{element.title[currentLanguage]}</h3>
|
<h3>{element.title[currentLanguage]}</h3>
|
||||||
@ -49,23 +53,18 @@
|
|||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import '/node_modules/@fortawesome/fontawesome-free/css/all.css';
|
@import '/node_modules/@fortawesome/fontawesome-free/css/all.css';
|
||||||
@import './static/colors.scss';
|
@import './static/colors.scss';
|
||||||
.extraContainer{
|
.portfolioContainer{
|
||||||
margin: auto;
|
margin: auto;
|
||||||
background-color:$steel-blue;
|
background-color:$steel-blue;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
height: auto;
|
|
||||||
font-size: 1.1em;
|
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
width: 95%;
|
width: 90%;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
||||||
-webkit-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
-webkit-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
||||||
-moz-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
-moz-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
||||||
padding-top: 1.5vh;
|
padding: 1vh;
|
||||||
padding-bottom: 1.5vh;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.element{
|
.element{
|
||||||
@ -73,14 +72,17 @@
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
width: 98%;
|
width: 98%;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 1vh;
|
||||||
margin-top: 10px;
|
|
||||||
padding: 1vh;
|
padding: 1vh;
|
||||||
background-color: $cultured;
|
background-color: $cultured;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 0.1px;
|
border-width: 0.1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.element:last-child{
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
.images{
|
.images{
|
||||||
width: 90%;
|
width: 90%;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -112,7 +114,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (min-width: 600px) {
|
@media screen and (min-width: 600px) {
|
||||||
.extraContainer{
|
.portfolioContainer{
|
||||||
display: flex;
|
display: flex;
|
||||||
height: auto;
|
height: auto;
|
||||||
max-width: $cv-max-width;
|
max-width: $cv-max-width;
|
||||||
|
@ -8,25 +8,26 @@
|
|||||||
import data from '../model/training.json'
|
import data from '../model/training.json'
|
||||||
import type { Schema } from 'src/model/job';
|
import type { Schema } from 'src/model/job';
|
||||||
export let currentLanguage = 'it'
|
export let currentLanguage = 'it'
|
||||||
const training:Schema[] = data as Schema[];
|
let training:Schema[] = [];
|
||||||
|
fetch('/data/training.json').then(async (resp)=>{
|
||||||
|
training = (await resp.json()) as Schema[];
|
||||||
|
}).catch(console.error);
|
||||||
|
|
||||||
export function changeLanguage(language = 'it'){
|
export function changeLanguage(language = 'it'){
|
||||||
currentLanguage = language
|
currentLanguage = language
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<div class="trainingContainer">
|
<div class="trainingContainer">
|
||||||
<div class="training">
|
{#each training as school }
|
||||||
{#each training as school }
|
<div class="element">
|
||||||
<div class="element">
|
<img src="{school.images[0]}" alt="school logo" />
|
||||||
<img src="{school.images[0]}" alt="school logo" />
|
<div>
|
||||||
<div>
|
<h4>{school.title[currentLanguage]}</h4>
|
||||||
<h4>{school.title[currentLanguage]}</h4>
|
<p>{school.content[currentLanguage]}</p>
|
||||||
<p>{school.content[currentLanguage]}</p>
|
<p>{school.year.start} - {school.year.end}</p>
|
||||||
<p>{school.year.start} - {school.year.end}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
</div>
|
||||||
</div>
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import './static/colors.scss';
|
@import './static/colors.scss';
|
||||||
@ -35,34 +36,41 @@
|
|||||||
background-color:$navajo-white;
|
background-color:$navajo-white;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
height: auto;
|
|
||||||
font-size: 1.1em;
|
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
width: 95%;
|
width: 90%;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
||||||
-webkit-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
-webkit-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
||||||
-moz-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
-moz-box-shadow: -12px 26px 25px -14px $rich-black-fogra-29;
|
||||||
padding-top: 1vh;
|
padding: 1vh;
|
||||||
padding-bottom: 1vh;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.element{
|
.element{
|
||||||
padding: 2vw;
|
background-color: $cultured;
|
||||||
width: auto;
|
text-align: justify;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center ;
|
||||||
|
width: 98%;
|
||||||
|
border-radius: 10px;
|
||||||
|
margin-bottom: 1vh;
|
||||||
|
padding: 1vh;
|
||||||
|
background-color: $cultured;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0.1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.element:last-child{
|
||||||
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.element>img{
|
.element>img{
|
||||||
width: 35%;
|
max-width: 35%;
|
||||||
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.element>div{
|
.element>div{
|
||||||
max-width: 50%;
|
max-width: 50%;
|
||||||
margin: auto;
|
margin-left: auto;
|
||||||
justify-self: end;
|
justify-self: end;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,21 +80,6 @@
|
|||||||
text-align: justify;
|
text-align: justify;
|
||||||
}
|
}
|
||||||
|
|
||||||
.training{
|
|
||||||
background-color: $cultured;
|
|
||||||
text-align: center;
|
|
||||||
width: 98%;
|
|
||||||
border-radius: 10px;
|
|
||||||
// margin-bottom: 10px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
margin-top: 10px;
|
|
||||||
padding-top: 2vh;
|
|
||||||
padding-bottom: 2vh;
|
|
||||||
background-color: $cultured;
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 0.1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (min-width: 600px) {
|
@media screen and (min-width: 600px) {
|
||||||
.trainingContainer{
|
.trainingContainer{
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -100,7 +100,7 @@
|
|||||||
"title":{"en":"Software Engineering Project","it":"Progetto di Ingegneria del Software"},
|
"title":{"en":"Software Engineering Project","it":"Progetto di Ingegneria del Software"},
|
||||||
"content":{
|
"content":{
|
||||||
"en":"While in university, I worked on a project for the software engineering course. The group decided to develop the project Etherless, a FAAS based on Etherium and AWS lambda. The system worked like this, a user writes a function and uploads it to the service that assigns a cost of execution. Then, when a user wants to execute the function, must issue the request and pay the execution through the Ethereum network. We released all the software in MIT licence here [Tenners Unipd](https://github.com/TennersUnipd).",
|
"en":"While in university, I worked on a project for the software engineering course. The group decided to develop the project Etherless, a FAAS based on Etherium and AWS lambda. The system worked like this, a user writes a function and uploads it to the service that assigns a cost of execution. Then, when a user wants to execute the function, must issue the request and pay the execution through the Ethereum network. We released all the software in MIT licence here [Tenners Unipd](https://github.com/TennersUnipd).",
|
||||||
"it":"Per il corso di ingegneria del software sono stato assegnato ad un gruppo di colleghi di corso universitario e di sviluppare uno dei progetti proposti. Scegliemmo di sviluppare il progetto Etherless un **FAAS** usando la piattaforma AWS lambda per l'esecuzione delle funzioni. Gli utenti possono scrivere e pubblicare funzioni sulla servizio, determinandone il costo di esecuzione. Quindi, gli utenti possono eseguire le funzioni pubblicate richiedendone l'esecuzione attraverso la rete Ethereum. Abbiamo rilasciato il software in licenza MIT [Tenners Unipd](https://github.com/TennersUnipd)"
|
"it":"Per il corso di ingegneria del software sono stato assegnato ad un gruppo di colleghi di corso universitario e di sviluppare uno dei progetti proposti. Scegliemmo di sviluppare il progetto Etherless un **FAAS** usando la piattaforma AWS lambda per l'esecuzione delle funzioni. Gli utenti possono scrivere e pubblicare funzioni sulla servizio, determinandone il costo di esecuzione. Quindi, altri utenti del servizio possono eseguire le funzioni pubblicate richiedendone l'esecuzione, pagando il corrispettivo compenso, attraverso la rete Ethereum. Abbiamo rilasciato il software in licenza MIT [Tenners Unipd](https://github.com/TennersUnipd)"
|
||||||
},
|
},
|
||||||
"collaborators":[{"name":"Gezim","surname":"Cikaqi","ref":"https://www.linkedin.com/in/gezimcikaqi/"},{"name":"Gabriel","surname":"Ciulei","ref":"https://www.linkedin.com/in/gabriel-ciulei/"},{"name":"Simone","surname":"Franconetti","ref":"https://www.linkedin.com/in/simone-franconetti-2b48b4147/"},{"name":"Giovanni","surname":"Incalza","ref":"https://www.linkedin.com/in/giovanni-incalza/"},{"name":"Nicola","surname":"Salvadore","ref":"https://www.linkedin.com/in/nicola-salvadore-02b015210/"},{"name":"Paola","surname":"Trevisan","ref":"https://www.linkedin.com/in/paola-trevisan-166891113/"}],
|
"collaborators":[{"name":"Gezim","surname":"Cikaqi","ref":"https://www.linkedin.com/in/gezimcikaqi/"},{"name":"Gabriel","surname":"Ciulei","ref":"https://www.linkedin.com/in/gabriel-ciulei/"},{"name":"Simone","surname":"Franconetti","ref":"https://www.linkedin.com/in/simone-franconetti-2b48b4147/"},{"name":"Giovanni","surname":"Incalza","ref":"https://www.linkedin.com/in/giovanni-incalza/"},{"name":"Nicola","surname":"Salvadore","ref":"https://www.linkedin.com/in/nicola-salvadore-02b015210/"},{"name":"Paola","surname":"Trevisan","ref":"https://www.linkedin.com/in/paola-trevisan-166891113/"}],
|
||||||
"languages":["typescript","solidity","yml"],
|
"languages":["typescript","solidity","yml"],
|
||||||
|
96
static/data/jobs.json
Normal file
96
static/data/jobs.json
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"year": {
|
||||||
|
"start": "2021-01-10",
|
||||||
|
"end": "..."
|
||||||
|
},
|
||||||
|
"title": {"en":"Jatus.tech my start-up","it":"La mia start-up Jatus.tech"},
|
||||||
|
"content": {
|
||||||
|
"en":"Through this year, I'm working to begin my independent activity base on my idea of business. To do so, I learnt different practices and filled many roles:<div style=\"margin-left: -25px;\">\n- Create a work's infrastructure, mainly create a centralized resource on the server:\n - Manage the **GNU\/Linux** server with \"Unraid\" as distribution.\n - Manage all the services using **Docker**:\n - **GitLab**, with the runner for CI\/CD, other than the software repositories I managed to setup:\n - package **npm** repository\n - **docker** repository\n - **NginxProxyManager** to handle the public services in reverse proxy\n - **SonarQube** to automatically verify the software quality\n - Manage all the virtual machines to develop and deploy software in the staging environment\n - Project and develop the software, main activity of this endeavour:\n - Project the software architecture\n - Project the database\n - Implement the software based on the architecture:\n - Back-end **Typescript** on **AWS-Lambda** platform with **Serverless framework**\n - Front-end in **Typescript** with **Nativescript** framework\n - Implement the database architecture with **MongoDB**\n - Create a Proof of Concept of the application\n - Project and develop **CI\/CD** solution for the product:\n - Create pipelines for the CI\/CD process in the **GitLab** environment\n - Create **docker files** to perform the unit test and compilation of the source code in the repositories.</div>",
|
||||||
|
"it":"Nel corso di quest'anno ho lavorato, e tutt'ora lavoro, per avviare una attività indipendente che si basa su una mia idea di app. Per far ciò, durante questo periodo ho dovuto ricoprire diversi ruoli e svolgere diverse mansioni:<div style=\"margin-left: -25px;\">\n- Creare un'infrastruttura di lavoro, un server dove centralizzare le risorse, nello specifico:\n - Gestire il server **GNU\/Linux** con la distribuzione *prosumer* unraid..\n - Gestire i vari servizi in container **Docker**:\n - **GitLab** con il suo runner per le pipeline **CI/CD**:\n - *repository* di pacchetti **npm** \n - *repository* di immagini **docker**\n - **NginxProxyManager** per la gestione dei servizi pubblici in reverse proxy\n - **SonarQube** per la verifica automatica della qualità del codice\n - Gestione di macchine virtuali per lo sviluppo di codice ma anche come *staging area* per testare le applicazioni in un ambiente *production like*\n - Progettare e sviluppare il software, focus di questa attività:\n - Progettare l'architettura del software\n - Progettare il database\n - Implementare l'architettura:\n - Back-end in **Typescript** su piattaforma **AWS-Lambda** con **Serveless framework**\n - Front-end in app *cross-platform* in **Typescript** con **Nativescript**\n - Implementare l'architettura di database in **MongoDB**\n - Creare un *proof of concept* dell'applicazione.\n - Progettare e sviluppare soluzioni di **CI\/CD** legate al prodotto:\n - Creare pipeline automatiche in **GitLab** con riferimento al \"versionamento\" interno\n - Creare docker-file con l'ambiente di compilazione da utilizzare con le pipeline automatiche.</div>"
|
||||||
|
},
|
||||||
|
"collaborators": [],
|
||||||
|
"languages": [
|
||||||
|
"typescript",
|
||||||
|
"bash",
|
||||||
|
"docker-file",
|
||||||
|
"yaml",
|
||||||
|
"json"
|
||||||
|
],
|
||||||
|
"tecnologies": [
|
||||||
|
"Vuejs",
|
||||||
|
"Nodejs",
|
||||||
|
"Nuxt",
|
||||||
|
"Docker",
|
||||||
|
"GitLab",
|
||||||
|
"Nativescript"
|
||||||
|
],
|
||||||
|
"images":["/logo-jatus-tech.png"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": {
|
||||||
|
"start": "2020-9-21",
|
||||||
|
"end": "2020-11-21"
|
||||||
|
},
|
||||||
|
"title": {"en":"Intership in Athesys","it":"Tirocinio in Athesys"},
|
||||||
|
"content": {
|
||||||
|
"en":"I've chosen to work in Athesis to end my bachelor degree course. The project was about developing a middleware to put in communication two applications between **NATed** networks based on **OAuth2.0**. This middleware assures the connection is authorized. This software mainly approved the connection of devices that detected the presence of a face mask and the body temperature in the range",
|
||||||
|
"it":"Per la tesi di laurea, ho scelto di fare il tirocinio in Athesys. Il progetto prevedeva lo sviluppo di un middleware per mettere in comunicazione, in maniera sicura, due applicazioni tra reti **NAT** basato sui protocolli di autorizzativi di **OAuth2.0**.\n Dato il periodo, dove la seconda ondata della pandemia era alle porte, era necessario avere un sistema sicuro per la comuncazione tra dispositivi di controllo dell'ingresso e il \"back-end\", come tablet con termoscanner e software per il riconoscimento della mascherina."
|
||||||
|
},
|
||||||
|
"collaborators": [],
|
||||||
|
"languages": [
|
||||||
|
"typescript",
|
||||||
|
"HTML",
|
||||||
|
"CSS"
|
||||||
|
],
|
||||||
|
"tecnologies": [
|
||||||
|
"Vuejs",
|
||||||
|
"Nodejs",
|
||||||
|
"Nuxt",
|
||||||
|
"Docker"
|
||||||
|
],
|
||||||
|
"images":["/logo-athesys.png"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": {
|
||||||
|
"start": "2016-08-13",
|
||||||
|
"end": "2017-02-13"
|
||||||
|
},
|
||||||
|
"title": {"en":"Developer in Alternative Studio","it":"Sviluppatore in Alternative Studio"},
|
||||||
|
"content": {
|
||||||
|
"en":"I've projected and developed a Telegram bot with direct communication to management software for the dog squad Italian civil defence to enable communication between HQ and agent on the ground",
|
||||||
|
"it":"Progettazione e sviluppo di un Bot Telegram con comunicazione diretta al gestionale per la sezione cinofila della Protezione Civile"
|
||||||
|
},
|
||||||
|
"collaborators": [],
|
||||||
|
"languages": [
|
||||||
|
"Php"
|
||||||
|
],
|
||||||
|
"tecnologies": [
|
||||||
|
"Telegram",
|
||||||
|
"Composer",
|
||||||
|
"Docker"
|
||||||
|
],
|
||||||
|
"images":["https://www.alternativestudio.it/images/logo/logo-light.png"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": {
|
||||||
|
"start": "2012-06-05",
|
||||||
|
"end": "2012-07-05"
|
||||||
|
},
|
||||||
|
"title": {"en":"ICT office's assistant","it":"Assistente dell'ufficio ICT "},
|
||||||
|
"content": {
|
||||||
|
"en":"I applied to this position, in Saxon Hill Academy, through the European project Leonardo which provided accommodation for the stay, an English course and a workplace mainly for practices the language skill. In Saxon Hill Academy, my responsibilities were:<div style=\"margin-left: -25px;\">\n - Maintenance of administration's computers.\n - Maintenance of students' computers.\n - Make the sensorial room usable.</div>",
|
||||||
|
"it":"Ho avuto l'opportunità di lavorare in questo ambiente grazie al progetto europeo Leonardo. Questo progetto di 4 settimane si occupava di fornire a gli studenti tutto il necessario tra vitto e alloggio, prevedeva, inoltre, un corso di inglese e un luogo di lavoro dove fare principalmente pratica con la lingua. In questo contesto sono stato assegnato a Saxon Hill Academy dove ho svolto le seguenti mansioni:<div style=\"margin-left: -25px;\">\n - Manutenzione dei computer della segreteria\n - Manutenzione dei computer degli studenti \n - Rendere operativa la \"sensiorial room\"</div>"
|
||||||
|
},
|
||||||
|
"collaborators": [],
|
||||||
|
"languages": [
|
||||||
|
"Php"
|
||||||
|
],
|
||||||
|
"tecnologies": [
|
||||||
|
"Telegram",
|
||||||
|
"Composer",
|
||||||
|
"Docker"
|
||||||
|
],
|
||||||
|
"images":["https://www.saxonhillacademy.org.uk/images/saxonhilllogo.jpg"]
|
||||||
|
}
|
||||||
|
]
|
179
static/data/portfolio.json
Normal file
179
static/data/portfolio.json
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"year": {
|
||||||
|
"start": "2021-10-01",
|
||||||
|
"end": "2021-10-02"
|
||||||
|
},
|
||||||
|
"title": {"en":"This web site","it":"Questo sito web"},
|
||||||
|
"content": {
|
||||||
|
"en":"I created this web page to collect and present all my experiences. I'm not a web designer. However, I can build web pages because I have good knowledge of HTML and CSS. I made this page using Typescript and Svelte. To manage the content, I've created a simple system to load content from a couple of JSON files that define where to put the information.",
|
||||||
|
"it":"Ho creato questo sito web per raccogliere e raccontare le mie esperienze. Come si può facilmente intuire non sono un web designer, ma ho comunque buone conoscenze nell'uso di HTML e CSS. Ho realizzato questa pagina web in Typescript e Svelte, per la gestione dei contenuti ho ideato un semplice sistema che controlla i dati presenti in un paio di file JSON che definiscono i contenuti della pagina e delle sezioni."
|
||||||
|
},
|
||||||
|
"collaborators": [],
|
||||||
|
"languages": [
|
||||||
|
"typescript",
|
||||||
|
"JSON-schema"
|
||||||
|
],
|
||||||
|
"tecnologies": [
|
||||||
|
"Svelte",
|
||||||
|
"Nodejs"
|
||||||
|
],
|
||||||
|
"images":["/webpage.png"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year":{
|
||||||
|
"start":"2021-09-15",
|
||||||
|
"end":"2021-09-28"},
|
||||||
|
"title":{"en":"Greenpass server validator","it":"Greenpass server validatore"},
|
||||||
|
"content":{
|
||||||
|
"en":"I've created a server in Typescript with Express.js endpoints that can read the raw data from a Green pass Qrcode and establish if it is valid with the Italian regulations. I [released the software](https://git.jatus.tech/Jatus/dgcserververifier) under AGPLv3 as requested from the DCC utils library.",
|
||||||
|
"it":"Ho creato un server in typescript e express che leggendo i dati *raw* del Qr code del green pass può determinarne la sua validità, ho [rilasciato il software](https://git.jatus.tech/Jatus/dgcserververifier) in licenza AGPLv3 come previsto dalla librearia DCC utils del Ministero della Salute italiano."},
|
||||||
|
"collaborators":[],
|
||||||
|
"languages":["typescript"],
|
||||||
|
"tecnologies":["Nodejs"],
|
||||||
|
"images":[]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": {
|
||||||
|
"start": "2021-04-01",
|
||||||
|
"end": "2021-05-02"
|
||||||
|
},
|
||||||
|
"title": {"en":"Keyboard","it":"Tastiera"},
|
||||||
|
"content": {
|
||||||
|
"en":"I spend a lot of time at my desk writing on the PC with not the best posture. This kind of behaviour was going to take a toll on my well-being, so I decided to start looking for a split design keyboard.\n The first keyboard that I found was the [Ergodox-EZ](https://ergodox-ez.com), but the steep price of more than 300 euros put me off. Then I found the subreddit [r/ErgoMechBoards](https://www.reddit.com/r/ErgoMechKeyboards) and saw a lot of different concepts, the one that stuck with me was the [lily58](https://github.com/kata0510/Lily58).\n So, I ordered all the pieces from various online stores. I took the kit from the [Keyhive](https://keyhive.xyz) shop for the base parts, like PCB and guide for the switches, bought the switches from [CandyKeys](https://candykeys.com) and a cheap keycap set from amazon.\n When all the pieces showed up at my place, I soldered all the components and assembled the keyboard. To add some flare, I printed with my 3d printer a custom case that I found on Thingiverse.\n In the future, I'd like to add a system to tilt the keyboard to fix the pronation issue.",
|
||||||
|
"it":"Io passo molto tempo alla mia scrivania a scrivere al PC e spesso non ho una corretta postura. Sperando di mitigare il problema, iniziai a cercare delle tastiere ergonomiche come quelle con il design *split*.\n La prima che trovai fu [Ergodox-EZ](https://ergodox-ez.com), ma il prezzo di più 300 euro mi fece desistere. Successivamente trovai il *subreddit* [r/ErgoMechBoards](https://www.reddit.com/r/ErgoMechKeyboards) e vidi molti modelli diversi, quello che mi piacque di più fu [lily58](https://github.com/kata0510/Lily58).\n Quindi, ordinai i pezzi da diversi negozi online. Presi da [Keyhive](https://keyhive.xyz) le parti base come il PCB e la guida per i tasti e da [CandyKeys](https://candykeys.com) gli switch, per quanto riguarda i keycaps li presi da Amazon ordinando dal meno caro.\n Quanto tutti i pezzi arrivarono, con pazienza e dedizione saldai tutti componenti e assemblai la tastiera. Per aggiungere un tocco personale, stampai con la mia stampante 3d la scocca che trovai su Thingverse.\n Come miglioramenti futuri, mi piacerebbe aggiungere un sistema per angolare la tastiera e risolvere il problema di pronazione dei polsi."
|
||||||
|
},
|
||||||
|
"collaborators": [],
|
||||||
|
"languages": [
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
"tecnologies": [
|
||||||
|
"QMK"
|
||||||
|
],
|
||||||
|
"images":["/custom-keyboard.jpg"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year":{
|
||||||
|
"start":"2021-09-15",
|
||||||
|
"end":"2021-09-30"},
|
||||||
|
"title":{"en":"3D printer, to print all my ideas","it":"Stampante 3D per stampare le mie idee."},
|
||||||
|
"content":{
|
||||||
|
"en":"I'm a tech enthusiast and, I like to overcome challenges made for the maker type of people. To organize the 3d printer area, I followed a few of the many bits of advice from the 3d printing *community*. Like, build the furniture to hold the printer from two IKEA's Lack stack one upon the other and joined with some 3d printed parts. Another upgrade was to add a Raspberry pi 4 with a camera module and OctoPrint software to remote manage the printer whenever.",
|
||||||
|
"it":"Sono un appassionato di tecnologia e mi piace anche affrontare sfide tipiche dei *maker*. Per organizzare meglio gli spazi ho seguito gli innumerovili consigli della *community* sul costruire un mobile a partide da due mobili ikea \"Lack\" e di unirli con due pezzi stampati. Un'altra miglioria che ho effettuato è sul sistema di controllo della stampante stessa aggiungendo un raspberry pi 4 con webcam e munito del software octoprint che mi permette di controllarne lo stato da remoto."
|
||||||
|
},
|
||||||
|
"collaborators":[],
|
||||||
|
"languages":["bash","python"],
|
||||||
|
"tecnologies":["raspberry"],
|
||||||
|
"images":["/3dprinter.jpg"]
|
||||||
|
},{
|
||||||
|
"year":{
|
||||||
|
"start":"2021-09-15",
|
||||||
|
"end":"2021-09-30"},
|
||||||
|
"title":{"en":"Unraid Server","it":"Unraid Server"},
|
||||||
|
"content":{
|
||||||
|
"en":"To manage all my software and data, I built a home server with Unraid server. I based the system on the Ryzen platform with an R9 3900X CPU, two 2TB disks for work data and software and, 4 disks 4TB for family storage.",
|
||||||
|
"it":"Per gestire il mio software e i miei dati, ho costruito un server usando la distrubuzione Unraid. Il server è basato su una piattaforma ryzen con R9 3900X, due dischi da 2TB per i dati di lavoro e 4 dischi da 4TB, in configurazione RAID10, per lo spazio della mia famiglia."
|
||||||
|
},
|
||||||
|
"collaborators":[],
|
||||||
|
"languages":["yml"],
|
||||||
|
"tecnologies":["docker","unraid","GNU/Linux"],
|
||||||
|
"images":[]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year":{
|
||||||
|
"start":"2021-09-15",
|
||||||
|
"end":"2021-09-30"},
|
||||||
|
"title":{"en":"Workstation","it":"Postazione di lavoro"},
|
||||||
|
"content":{
|
||||||
|
"en":"My workstation is build upon my custom desk made on request and can accommodate my PC and laptop, I use both of them to work and develop my projects. The monitors are an 34\" 21:9 with a resoluztion of 3440x1440 and a 27\" 16:9 with a resolution of 2560x1440. ",
|
||||||
|
"it":"La mia postazione di lavoro parte dalla scrivania che è stata fatta su misura e può accomodare il mio computer fisso e il mio portatile, entrambe macchine che uso per lavorare e dedicarmi ai miei progetti. I monitor sono un 21:9 da 34\" con risoluzione 3440x1440 e un 16:9 da 27\" in verticale da 2560x1440."
|
||||||
|
},
|
||||||
|
"collaborators":[],
|
||||||
|
"languages":[],
|
||||||
|
"tecnologies":[],
|
||||||
|
"images":["/workstation.jpg"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year":{
|
||||||
|
"start":"2021-09-15",
|
||||||
|
"end":"2021-09-30"},
|
||||||
|
"title":{"en":"Software Engineering Project","it":"Progetto di Ingegneria del Software"},
|
||||||
|
"content":{
|
||||||
|
"en":"While in university, I worked on a project for the software engineering course. The group decided to develop the project Etherless, a FAAS based on Etherium and AWS lambda. The system worked like this, a user writes a function and uploads it to the service that assigns a cost of execution. Then, when a user wants to execute the function, must issue the request and pay the execution through the Ethereum network. We released all the software in MIT licence here [Tenners Unipd](https://github.com/TennersUnipd).",
|
||||||
|
"it":"Per il corso di ingegneria del software sono stato assegnato ad un gruppo di colleghi di corso universitario e di sviluppare uno dei progetti proposti. Scegliemmo di sviluppare il progetto Etherless un **FAAS** usando la piattaforma AWS lambda per l'esecuzione delle funzioni. Gli utenti possono scrivere e pubblicare funzioni sulla servizio, determinandone il costo di esecuzione. Quindi, altri utenti del servizio possono eseguire le funzioni pubblicate richiedendone l'esecuzione, pagando il corrispettivo compenso, attraverso la rete Ethereum. Abbiamo rilasciato il software in licenza MIT [Tenners Unipd](https://github.com/TennersUnipd)"
|
||||||
|
},
|
||||||
|
"collaborators":[{"name":"Gezim","surname":"Cikaqi","ref":"https://www.linkedin.com/in/gezimcikaqi/"},{"name":"Gabriel","surname":"Ciulei","ref":"https://www.linkedin.com/in/gabriel-ciulei/"},{"name":"Simone","surname":"Franconetti","ref":"https://www.linkedin.com/in/simone-franconetti-2b48b4147/"},{"name":"Giovanni","surname":"Incalza","ref":"https://www.linkedin.com/in/giovanni-incalza/"},{"name":"Nicola","surname":"Salvadore","ref":"https://www.linkedin.com/in/nicola-salvadore-02b015210/"},{"name":"Paola","surname":"Trevisan","ref":"https://www.linkedin.com/in/paola-trevisan-166891113/"}],
|
||||||
|
"languages":["typescript","solidity","yml"],
|
||||||
|
"tecnologies":["Nodejs","AWS Lambda","docker","github action","ethereum"],
|
||||||
|
"images":[]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year":{
|
||||||
|
"start":"2021-09-15",
|
||||||
|
"end":"2021-09-30"},
|
||||||
|
"title":{"en":"Latex-multicompiler","it":"Latex-multicompiler"},
|
||||||
|
"content":{
|
||||||
|
"en":"I developed a GitHub action to compile Latex documents from a git repository. I did this to produce the PDFs as artefacts and to practice the **CI/CD** practices. I released the project with an MIT license [here](https://github.com/Jatus93/Latex-multicompiler).",
|
||||||
|
"it":"Ho sviluppato una GitHub action per compilare documenti Latex da un repository git. Ho creato questo software per creare PDF come artefatti e quindi fare pratica in pratiche di **CI/CD**. Ho rilasciato il tutto con licenza MIT [qui](https://github.com/Jatus93/Latex-multicompiler)."
|
||||||
|
},
|
||||||
|
"collaborators":[],
|
||||||
|
"languages":["bash"],
|
||||||
|
"tecnologies":["docker","github action"],
|
||||||
|
"images":[]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year":{
|
||||||
|
"start":"2021-09-15",
|
||||||
|
"end":"2021-09-30"},
|
||||||
|
"title":{"en":"Spell checker, aspell github action","it":"Controllo ortografico, aspell github action"},
|
||||||
|
"content":{
|
||||||
|
"en":"I developed a GitHub action to perform a spell check on PDF documents from a git repository, the software transform the PDF file to a plain txt and checks the spelling of words using aspell. I released the project with an LGPL-2.1 license [here](https://github.com/Jatus93/spellCheck).",
|
||||||
|
"it":"Ho sviluppato una GitHub action per effettuare il controllo ortografico, il software trasforma i PDF in file di testo e verifica che le parole siano scritte correttamente usando Aspell. Ho rilasciato il software su licenza LGPL-2.1 [qui](https://github.com/Jatus93/spellCheck)"
|
||||||
|
},
|
||||||
|
"collaborators":[],
|
||||||
|
"languages":["bash"],
|
||||||
|
"tecnologies":["docker","github action"],
|
||||||
|
"images":[]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year":{
|
||||||
|
"start":"2021-09-15",
|
||||||
|
"end":"2021-09-30"},
|
||||||
|
"title":{"en":"Project for object oriented programming course","it":"Progetto per il corso di programmazione ad oggetti"},
|
||||||
|
"content":{
|
||||||
|
"en":"I delevoped a IoT object container for the object oriented programming course with the possiblity to edit the devices' configuration. <a rel=\"external\" href=\"/QContainer.pdf\">I wrote a report about it (italian)</a> and [released the software](https://github.com/Jatus93/QONTAINER) in LGPL-3.0 License ",
|
||||||
|
"it":"Per il corso di programmazione ad oggetti ho fatto un container di dispositivi iot con la possibilità di configurare i dispositivi. Per maggiori infomrmazioni <a rel=\"external\" href=\"/QContainer.pdf\">ho scritto una relazione al riguardo</a> e [rilasciato il software](https://github.com/Jatus93/QONTAINER) sotto licenza LGPL-3.0"
|
||||||
|
},
|
||||||
|
"collaborators":[],
|
||||||
|
"languages":["C++"],
|
||||||
|
"tecnologies":["QT"],
|
||||||
|
"images":["/QContainer.png"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year":{
|
||||||
|
"start":"2021-09-15",
|
||||||
|
"end":"2021-09-30"},
|
||||||
|
"title":{"en":"Tech web","it":"Tecnologie Web"},
|
||||||
|
"content":{
|
||||||
|
"en":"For the tech web course, my colleagues and I develop a portfolio website for an artist where the user could upload and manage all their images and also included a blog with a comments section.",
|
||||||
|
"it":"Per il corso di tecnologie web io e i miei colleghi abbiamo sviluppato un sito web vetrina per artisti con un sistema per la gestione dei contenuti."},
|
||||||
|
"collaborators":[{"name":"Giuseppe Vito","surname":"Bitetti","ref":"https://www.linkedin.com/in/giuseppe-vito-bitetti-587751200"}, {"name":"Enrico","surname":"Buratto","ref":"https://www.linkedin.com/in/enrico-buratto-04104b151"},{"name":"Mariano","surname":"Sciacco","ref":"https://www.linkedin.com/in/marianosciacco/"}],
|
||||||
|
"languages":["php","SQL"],
|
||||||
|
"tecnologies":["apache","mariaDb"],
|
||||||
|
"images":["/techweb.png"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year":{
|
||||||
|
"start":"2021-09-15",
|
||||||
|
"end":"2021-09-30"},
|
||||||
|
"title":{"en":"ANTRL parser Swl","it":"ANTRL parser Swl"},
|
||||||
|
"content":{
|
||||||
|
"en":"For the course about Automata and Formal, my colleague and I developed a translator from a made-up language SWL to a more common C++. For this project, the professors required the use of \"antlr\" a framework used to recognise a regular expression and apply logic for every rule. For more information https://swl.debug.ovh/ (italian)",
|
||||||
|
"it":"Per il corso di Automi e linguaggi formali il mio collega ed io sviluppammo un traduttore da un linguaggio inventato, SWL, a uno più comune C++. Per questo compito i professori richiesero l'uso di un framework chiamato \"ANTRL\" che è in grado di riconoscere le epressioni regolare che gli vengono proposte di applicare delle logiche al riguardo. Per maggiori info https://swl.debug.ovh/"
|
||||||
|
},
|
||||||
|
"collaborators":[{"name":"Mariano","surname":"Sciacco","ref":"https://www.linkedin.com/in/marianosciacco/"}],
|
||||||
|
"languages":[],
|
||||||
|
"tecnologies":[],
|
||||||
|
"images":[]
|
||||||
|
}
|
||||||
|
]
|
29
static/data/training.json
Normal file
29
static/data/training.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"year": {
|
||||||
|
"start": "2016",
|
||||||
|
"end": "2020"
|
||||||
|
},
|
||||||
|
"title": {"en":"Bachelor's degree in Computer Science (EQF 6): ","it":"Laurea triennale in Scienze Informatiche (EQF 6)"},
|
||||||
|
"content": {
|
||||||
|
"en":"Computer Science, Università degli Studi di Padova","it":"Corso triennale in Informatica all'Università degli Studi di Padova"},
|
||||||
|
"collaborators": [],
|
||||||
|
"languages": [],
|
||||||
|
"tecnologies": [],
|
||||||
|
"images":["https://www.jobsanita.it/wp-content/uploads/2020/06/unipd-universita-di-padova.png"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": {
|
||||||
|
"start": "2007",
|
||||||
|
"end": "2013"
|
||||||
|
},
|
||||||
|
"title": {"en":"High School diploma, Liceo Scientifico Tecnologico (EQF 4): ","it":"Diploma di maturità di Liceo Scientifico Tecnologico (EQF 4)"},
|
||||||
|
"content": {
|
||||||
|
"en":"The scientific and technological high school I.T.I.S. Severi di Padova where instead of Latin, there were more physics, chemistry and basic programming lessons.",
|
||||||
|
"it":"Corso di Liceo Scientifico Tecnologico all'istituto I.T.I.S. Severi di Padova, dove al posto del Latino i corsi puntavano di più su fisica, chimica e dei corsi introduttivi alla programmazione"},
|
||||||
|
"collaborators": [],
|
||||||
|
"languages": [],
|
||||||
|
"tecnologies": [],
|
||||||
|
"images":["https://www.itiseveripadova.edu.it/images/logoSeveri100x100.png"]
|
||||||
|
}
|
||||||
|
]
|
Binary file not shown.
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 7.4 KiB |
@ -2,3 +2,4 @@ body{
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user