Update projects

This commit is contained in:
2026-04-14 23:10:24 +02:00
parent c97a0f73cc
commit 241c04f4fd
29 changed files with 127 additions and 38 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

View File

@@ -6,7 +6,7 @@
<img src="~/assets/images/icons/wip.svg" class="h-6 sm:h-8 dark:invert"/> <img src="~/assets/images/icons/wip.svg" class="h-6 sm:h-8 dark:invert"/>
<span class="sm:text-lg font-bold ml-2">WIP</span> <span class="sm:text-lg font-bold ml-2">WIP</span>
</div> </div>
<h3 class="text-2xl font-semibold text-center text-gray-900 dark:text-white">{{ props.title }}</h3> <h3 class="text-2xl font-semibold text-center text-gray-900 dark:text-white md:mx-10">{{ props.title }}</h3>
<h4 v-if="props.subtitle" class="text font-semibold text-center text-gray-700 dark:text-gray-300">{{ props.subtitle }}</h4> <h4 v-if="props.subtitle" class="text font-semibold text-center text-gray-700 dark:text-gray-300">{{ props.subtitle }}</h4>
<div class="text-center mb-2"> <div class="text-center mb-2">
<a v-for="link in props.links" :href="link.url" class="font-mono inline-block hover:underline mx-2">{{ link.label }}</a> <a v-for="link in props.links" :href="link.url" class="font-mono inline-block hover:underline mx-2">{{ link.label }}</a>

View File

@@ -5,7 +5,7 @@
{ label: 'Repository', url: 'https://github.com/NotXia/animal-house' } { label: 'Repository', url: 'https://github.com/NotXia/animal-house' }
]"> ]">
<p class="text-center">{{ $t("unibo_21-22") }}</p> <!-- <p class="text-center">{{ $t("unibo_21-22") }}</p> -->
<p>{{ $t('animalhouse.description') }}</p> <p>{{ $t('animalhouse.description') }}</p>
<ul class="list-inside list-['-_']"> <ul class="list-inside list-['-_']">
<li>{{ $t('animalhouse.description.game') }}</li> <li>{{ $t('animalhouse.description.game') }}</li>

View File

@@ -1,15 +1,16 @@
<template> <template>
<ProjectCard <ProjectCard
:title="$t('bsc_thesis.title')" :title="$t('bsc_thesis.thesis_title')"
:subtitle="$t('bsc_thesis.thesis_title')" :subtitle="$t('bsc_thesis.title')"
:image="image" :image="image"
:links="[ :links="[
{ label: 'Repository1', url: 'https://github.com/NotXia/biomed-ext-summ' }, { label: 'Repository1', url: 'https://github.com/NotXia/biomed-ext-summ' },
{ label: 'Repository2', url: 'https://github.com/NotXia/pubmed-summ' }, { label: 'Repository2', url: 'https://github.com/NotXia/pubmed-summ' },
{ label: $t('thesis'), url: 'https://amslaurea.unibo.it/id/eprint/29686' } { label: $t('thesis'), url: 'https://amslaurea.unibo.it/id/eprint/29686' },
{ label: $t('paper'), url: 'https://doi.org/10.1145/3766905' }
]"> ]">
<p class="text-center">{{ $t("unibo_22-23") }}</p> <!-- <p class="text-center">{{ $t("unibo_22-23") }}</p> -->
<p>{{ $t("bsc_thesis.description") }}</p> <p>{{ $t("bsc_thesis.description") }}</p>
</ProjectCard> </ProjectCard>
</template> </template>

View File

@@ -0,0 +1,10 @@
<template>
<ProjectCard
title="Multiple Couriers Optimization"
:links="[
{ label: 'Repository', url: 'https://github.com/NotXia/couriers-optimization' }
]">
<p>{{ $t('couriers_optimization.description') }}</p>
</ProjectCard>
</template>

View File

@@ -0,0 +1,15 @@
<template>
<ProjectCard
title="Distributed Optimization" :image="image" image_classes="w-1/2"
:links="[
{ label: 'Repository', url: 'https://github.com/NotXia/distributed-optimization' }
]">
<p>{{ $t('distributed_optimization.description') }}</p>
</ProjectCard>
</template>
<script setup lang="ts">
import image from "@/assets/images/projects/distributed_optmization.png";
</script>

View File

@@ -1,11 +1,11 @@
<template> <template>
<ProjectCard <ProjectCard
title="Image deblur" :image="image" title="Image Deblur" :image="image"
:links="[ :links="[
{ label: 'Repository', url: 'https://github.com/NotXia/imaging' } { label: 'Repository', url: 'https://github.com/NotXia/imaging' }
]"> ]">
<p class="text-center">{{ $t("unibo_21-22") }}</p> <!-- <p class="text-center">{{ $t("unibo_21-22") }}</p> -->
<p>{{ $t('imaging.description') }}</p> <p>{{ $t('imaging.description') }}</p>
</ProjectCard> </ProjectCard>
</template> </template>

View File

@@ -0,0 +1,15 @@
<template>
<ProjectCard
:title="$t('instance_detection.title')" :image="image" image_classes=""
:links="[
{ label: 'Repository', url: 'https://github.com/NotXia/opencv-instance-detection' }
]">
<p>{{ $t('instance_detection.description') }}</p>
</ProjectCard>
</template>
<script setup lang="ts">
import image from "@/assets/images/projects/instance_detection.png";
</script>

View File

@@ -5,7 +5,7 @@
{ label: 'Repository', url: 'https://github.com/NotXia/MNKGame' } { label: 'Repository', url: 'https://github.com/NotXia/MNKGame' }
]"> ]">
<p class="text-center">{{ $t("unibo_20-21") }}</p> <!-- <p class="text-center">{{ $t("unibo_20-21") }}</p> -->
<p>{{ $t('mnk.description') }}</p> <p>{{ $t('mnk.description') }}</p>
</ProjectCard> </ProjectCard>
</template> </template>

View File

@@ -0,0 +1,14 @@
<template>
<ProjectCard
title="Natural example-based XAI" :image="image"
:links="[
{ label: 'Repository', url: 'https://github.com/NotXia/natural-examples-xai' }
]">
<p>{{ $t('natural_examples.description') }}</p>
</ProjectCard>
</template>
<script setup lang="ts">
import image from "@/assets/images/projects/natural_example.png";
</script>

View File

@@ -5,7 +5,7 @@
{ label: 'Repository', url: 'https://github.com/NotXia/pandos-plus' } { label: 'Repository', url: 'https://github.com/NotXia/pandos-plus' }
]"> ]">
<p class="text-center">{{ $t("unibo_21-22") }}</p> <!-- <p class="text-center">{{ $t("unibo_21-22") }}</p> -->
<p>{{ $t('pandos+.description') }}</p> <p>{{ $t('pandos+.description') }}</p>
</ProjectCard> </ProjectCard>
</template> </template>

View File

@@ -1,6 +1,6 @@
<template> <template>
<ProjectCard <ProjectCard
title="Pathfinding visualizer" :image="image" title="Pathfinding Visualizer" :image="image"
:links="[ :links="[
{ label: 'Repository', url: 'https://github.com/NotXia/pathfinding-visualizer' }, { label: 'Repository', url: 'https://github.com/NotXia/pathfinding-visualizer' },
{ label: 'Demo', url: 'https://notxia.github.io/pathfinding-visualizer/' } { label: 'Demo', url: 'https://notxia.github.io/pathfinding-visualizer/' }

View File

@@ -1,11 +1,11 @@
<template> <template>
<ProjectCard <ProjectCard
title="Platform game" :image="image" title="Platform Game" :image="image"
:links="[ :links="[
{ label: 'Repository', url: 'https://github.com/NotXia/platform-game' } { label: 'Repository', url: 'https://github.com/NotXia/platform-game' }
]"> ]">
<p class="text-center">{{ $t("unibo_20-21") }}</p> <!-- <p class="text-center">{{ $t("unibo_20-21") }}</p> -->
<p>{{ $t('platform.description') }}</p> <p>{{ $t('platform.description') }}</p>
</ProjectCard> </ProjectCard>
</template> </template>

View File

@@ -1,6 +1,6 @@
<template> <template>
<ProjectCard <ProjectCard
title="Sorting visualizer" :image="image" title="Sorting Visualizer" :image="image"
:links="[ :links="[
{ label: 'Repository', url: 'https://github.com/NotXia/sorting-visualizer' }, { label: 'Repository', url: 'https://github.com/NotXia/sorting-visualizer' },
{ label: 'Demo', url: 'https://notxia.github.io/sorting-visualizer/' } { label: 'Demo', url: 'https://notxia.github.io/sorting-visualizer/' }

View File

@@ -0,0 +1,15 @@
<template>
<ProjectCard
title="Street Anomaly Segmentation" :image="image" image_classes=""
:links="[
{ label: 'Repository', url: 'https://github.com/NotXia/street-anomaly-segmentation' }
]">
<p>{{ $t('street_anomaly.description') }}</p>
</ProjectCard>
</template>
<script setup lang="ts">
import image from "@/assets/images/projects/street_anomaly.png";
</script>

View File

@@ -5,7 +5,7 @@
{ label: 'Repository', url: 'https://github.com/NotXia/tablut-player' } { label: 'Repository', url: 'https://github.com/NotXia/tablut-player' }
]"> ]">
<p class="text-center">{{ $t("unibo_23-24") }}</p> <!-- <p class="text-center">{{ $t("unibo_23-24") }}</p> -->
<p>{{ $t('tablut.description') }}</p> <p>{{ $t('tablut.description') }}</p>
</ProjectCard> </ProjectCard>
</template> </template>

View File

@@ -5,7 +5,7 @@
{ label: 'Repository', url: 'https://github.com/NotXia/tweet-analysis' } { label: 'Repository', url: 'https://github.com/NotXia/tweet-analysis' }
]"> ]">
<p class="text-center">{{ $t("unibo_22-23") }}</p> <!-- <p class="text-center">{{ $t("unibo_22-23") }}</p> -->
<p>{{ $t('tweet_analysis.description') }}</p> <p>{{ $t('tweet_analysis.description') }}</p>
</ProjectCard> </ProjectCard>
</template> </template>

View File

@@ -5,7 +5,7 @@
{ label: 'Repository', url: 'https://github.com/NotXia/wave-map' }, { label: 'Repository', url: 'https://github.com/NotXia/wave-map' },
]"> ]">
<p class="text-center">{{ $t("unibo_22-23") }}</p> <!-- <p class="text-center">{{ $t("unibo_22-23") }}</p> -->
<p>{{ $t("wavemap.description") }}</p> <p>{{ $t("wavemap.description") }}</p>
</ProjectCard> </ProjectCard>
</template> </template>

View File

@@ -6,7 +6,7 @@
{ label: 'VirtualSquare', url: 'http://wiki.virtualsquare.org/#!index.md' } { label: 'VirtualSquare', url: 'http://wiki.virtualsquare.org/#!index.md' }
]"> ]">
<p class="text-center">{{ $t("unibo_22-23") }}</p> <!-- <p class="text-center">{{ $t("unibo_22-23") }}</p> -->
<p>{{ $t("wirefilter.description") }}</p> <p>{{ $t("wirefilter.description") }}</p>
</ProjectCard> </ProjectCard>
</template> </template>

View File

@@ -15,6 +15,9 @@ export default {
"i am a": "I'm an", "i am a": "I'm an",
"cs student": "A.I. Student", "cs student": "A.I. Student",
"a very accurate description of me": "Sometimes a bit distracted", "a very accurate description of me": "Sometimes a bit distracted",
"i do things": "I do things",
"with backpropagation": "with backpropagation",
"that work most of the times": "that work most of the times",
// About // About

View File

@@ -13,16 +13,14 @@ export default {
"no recursion": "Recursion out of service, sorry for the inconvenience.", "no recursion": "Recursion out of service, sorry for the inconvenience.",
"tablut.description": "tablut.description":
"Project for the Fundamentals of Artificial Intelligence and Knowledge Representation (module 1) course.\n" +
"Minimax-based agent for the Tablut board game, tuned using a genetic algorithm.", "Minimax-based agent for the Tablut board game, tuned using a genetic algorithm.",
"thesis": "Thesis", "thesis": "Thesis",
"bsc_thesis.title": "Bachelor's thesis", "bsc_thesis.title": "Bachelor's Thesis",
"bsc_thesis.thesis_title": "Subtopic-oriented biomedical summarization using pretrained language models", "bsc_thesis.thesis_title": "Subtopic-oriented Biomedical Summarization Using Pretrained Language Models",
"bsc_thesis.description": "Biomedical extractive summarization using pretrained encoders and clustering.", "bsc_thesis.description": "Biomedical extractive summarization using pretrained encoders and clustering.",
"wavemap.description": "wavemap.description":
"Project for the Mobile Applications Laboratory course.\n" +
"Android application displaying, using a heat-map, the strength of signals (Wi-Fi, Bluetooth, LTE) and noise level.", "Android application displaying, using a heat-map, the strength of signals (Wi-Fi, Bluetooth, LTE) and noise level.",
"wirefilter.description": "wirefilter.description":
@@ -30,36 +28,41 @@ export default {
"Wirefilter is a plugin that allows to manipulate packet flow by changing the parameters of the virtual cable.", "Wirefilter is a plugin that allows to manipulate packet flow by changing the parameters of the virtual cable.",
"tweet_analysis.description": "tweet_analysis.description":
"Project for the Software Engineering course.\n" +
"Twitter client with analytics features developed using the Scrum methodology.", "Twitter client with analytics features developed using the Scrum methodology.",
"animalhouse.description": "animalhouse.description":
"Project for the Web Technology course.\n" +
"Web app with three sections:", "Web app with three sections:",
"animalhouse.description.game": "Game: area with games and facts about animals", "animalhouse.description.game": "Game: area with games and facts about animals",
"animalhouse.description.frontoffice": "Frontoffice: area to access services as a logged user", "animalhouse.description.frontoffice": "Frontoffice: area to access services as a logged user",
"animalhouse.description.backoffice": "Backoffice: administration panel", "animalhouse.description.backoffice": "Backoffice: administration panel",
"pandos+.description": "pandos+.description":
"Project for the Operating Systems course.\n" +
"Minimal operating system for the MIPS architecture.", "Minimal operating system for the MIPS architecture.",
"imaging.description": "imaging.description":
"Project for the Numerical Computing course.\n" +
"Image deblurring solved as a minimization problem.", "Image deblurring solved as a minimization problem.",
"mnk.description": "mnk.description":
"Project for the Algorithms and Data Structures course.\n" +
"Algorithm able to efficiently play a generalized version of tic-tac-toe.", "Algorithm able to efficiently play a generalized version of tic-tac-toe.",
"platform.description": "platform.description":
"Project for the Programming course.\n" +
"Text-based platform game with randomly generated levels.", "Text-based platform game with randomly generated levels.",
"pathfinding_visualizer.description": "Visualizer of some graph search algorithms.", "pathfinding_visualizer.description": "Visualizer of some graph search algorithms.",
"sort_visualizer.description": "Visualizer of some sorting algorithms.", "sort_visualizer.description": "Visualizer of some sorting algorithms.",
"nn_scratch.title": "Neural networks from scratch", "nn_scratch.title": "Neural Networks from Scratch",
"nn_scratch.description": "Automatic differentiation and basic neural network layers implemented from scratch using Numpy.", "nn_scratch.description": "Automatic differentiation and basic neural network layers implemented from scratch using Numpy.",
"instance_detection.title": "OpenCV Instance Detection",
"instance_detection.description": "Instance detection on noisy images of products on shelves using traditional image processing techniques.",
"natural_examples.description": "Comparison and evaluation of different natural example-based explainability techniques.",
"couriers_optimization.description": "Capacitated vehicle routing problem solved using constraint programming, propositional satisfiability, satisfiability modulo theories, and mixed-integer linear programming.",
"distributed_optimization.description": "Implementation of distributed multi-robot target localization and positioning algorithms.",
"street_anomaly.description": "Open-world semantic segmantation for anomaly detection.",
} }

View File

@@ -8,6 +8,7 @@ export default {
"link to certificate": "Link to certificate", "link to certificate": "Link to certificate",
"future": "What will happen next?", "future": "What will happen next?",
"like timelines": "I like timelines", "like timelines": "I like timelines",
"paper": "Paper",
"cv_link": "/cv/cv_xia_en1.pdf", "cv_link": "/cv/cv_xia_en1.pdf",
"cv_link_color": "/cv/cv_xia_en2.pdf", "cv_link_color": "/cv/cv_xia_en2.pdf",

View File

@@ -15,6 +15,9 @@ export default {
"i am a": "Sono uno", "i am a": "Sono uno",
"cs student": "Studente di I.A.", "cs student": "Studente di I.A.",
"a very accurate description of me": "A volte un po' distratto", "a very accurate description of me": "A volte un po' distratto",
"i do things": "Faccio cose",
"with backpropagation": "con la backpropagation",
"that work most of the times": "che di solito funzionano",
// About // About

View File

@@ -13,7 +13,6 @@ export default {
"no recursion": "Ricorsione fuori servizio, mi scuso per il disagio.", "no recursion": "Ricorsione fuori servizio, mi scuso per il disagio.",
"tablut.description": "tablut.description":
"Progetto per il corso di Fundamentals of Artificial Intelligence and Knowledge Representation (modulo 1).\n" +
"Agente implementato con minimax e addestrato con un algoritmo genetico per il gioco da tavolo Tablut.", "Agente implementato con minimax e addestrato con un algoritmo genetico per il gioco da tavolo Tablut.",
"thesis": "Tesi", "thesis": "Tesi",
@@ -22,7 +21,6 @@ export default {
"bsc_thesis.description": "Generazione di riassunti estrattivi in ambito biomedico con modelli di linguaggio preaddestrati e algoritmi di clustering.", "bsc_thesis.description": "Generazione di riassunti estrattivi in ambito biomedico con modelli di linguaggio preaddestrati e algoritmi di clustering.",
"wavemap.description": "wavemap.description":
"Progetto per il corso di Laboratorio di Applicazioni Mobili.\n" +
"Applicazione Android per visualizzare, in una heat-map, la potenza di segnali (Wi-Fi, Bluetooth, LTE) e il livello acustico.", "Applicazione Android per visualizzare, in una heat-map, la potenza di segnali (Wi-Fi, Bluetooth, LTE) e il livello acustico.",
"wirefilter.description": "wirefilter.description":
@@ -30,30 +28,24 @@ export default {
"Wirefilter è un plugin che consente di manipolare il flusso dei pacchetti in transito impostando parametri per il cavo virtuale.", "Wirefilter è un plugin che consente di manipolare il flusso dei pacchetti in transito impostando parametri per il cavo virtuale.",
"tweet_analysis.description": "tweet_analysis.description":
"Progetto per il corso di Ingegneria del Software.\n" +
"Webapp per l'analisi di tweet sviluppata con metodologia Scrum.", "Webapp per l'analisi di tweet sviluppata con metodologia Scrum.",
"animalhouse.description": "animalhouse.description":
"Progetto per il corso di Tecnologie Web.\n" +
"Web app suddivisa in tre sezioni:", "Web app suddivisa in tre sezioni:",
"animalhouse.description.game": "Game: area con giochi e curiosità sugli animali", "animalhouse.description.game": "Game: area con giochi e curiosità sugli animali",
"animalhouse.description.frontoffice": "Frontoffice: area con servizi per gli utenti autenticati", "animalhouse.description.frontoffice": "Frontoffice: area con servizi per gli utenti autenticati",
"animalhouse.description.backoffice": "Backoffice: pannello di amministrazione", "animalhouse.description.backoffice": "Backoffice: pannello di amministrazione",
"pandos+.description": "pandos+.description":
"Progetto per il corso di Sistemi Operativi.\n" +
"Sistema operativo minimale per architettura MIPS.", "Sistema operativo minimale per architettura MIPS.",
"imaging.description": "imaging.description":
"Progetto per il corso di Calcolo Numerico.\n" +
"Deblurring di immagini risolto come problema di minimizzazione.", "Deblurring di immagini risolto come problema di minimizzazione.",
"mnk.description": "mnk.description":
"Progetto per il corso di Algoritmi e Strutture Dati.\n" +
"Algoritmo in grado di giocare in modo efficiente ad una versione generalizzata del tris.", "Algoritmo in grado di giocare in modo efficiente ad una versione generalizzata del tris.",
"platform.description": "platform.description":
"Progetto per il corso di Programmazione.\n" +
"Gioco platform su terminale con livelli generati casualmente.", "Gioco platform su terminale con livelli generati casualmente.",
"pathfinding_visualizer.description": "Visualizzazione di alcuni algoritmi di ricerca su grafi.", "pathfinding_visualizer.description": "Visualizzazione di alcuni algoritmi di ricerca su grafi.",
@@ -62,4 +54,15 @@ export default {
"nn_scratch.title": "Reti neurali da zero", "nn_scratch.title": "Reti neurali da zero",
"nn_scratch.description": "Differenziazione automatica e componenti base di una rete neurale implementati in Numpy.", "nn_scratch.description": "Differenziazione automatica e componenti base di una rete neurale implementati in Numpy.",
"instance_detection.title": "OpenCV Instance Detection",
"instance_detection.description": "Instance detection su immagini corrotte di prodotti su scaffali usando tecniche tradizionali di image processing.",
"natural_examples.description": "Confronto e valutazione di diverse tecniche di natural example-based explainability.",
"couriers_optimization.description": "Capacitated vehicle routing problem risolto usando constraint programming, propositional satisfiability, satisfiability modulo theories e mixed-integer linear programming.",
"distributed_optimization.description": "Implementazione di algoritmi distribuiti per i problemi di multi-robot target localization e positioning.",
"street_anomaly.description": "Segmentazione semantica per anomaly detection.",
} }

View File

@@ -8,6 +8,7 @@ export default {
"link to certificate": "Link al certificato", "link to certificate": "Link al certificato",
"future": "Chissà cosa succederà", "future": "Chissà cosa succederà",
"like timelines": "Mi piacciono le linee del tempo", "like timelines": "Mi piacciono le linee del tempo",
"paper": "Paper",
"cv_link": "/cv/cv_xia_it1.pdf", "cv_link": "/cv/cv_xia_it1.pdf",
"cv_link_color": "/cv/cv_xia_it2.pdf", "cv_link_color": "/cv/cv_xia_it2.pdf",

View File

@@ -18,7 +18,12 @@
<div class="grid grid-flow-row-dense grid-cols-12 m-auto justify-center [&>*]:px-5 [&>*]:py-5"> <div class="grid grid-flow-row-dense grid-cols-12 m-auto justify-center [&>*]:px-5 [&>*]:py-5">
<NotXiaGithubio class="lg:col-span-8 row-span-1 col-span-12" /> <NotXiaGithubio class="lg:col-span-4 row-span-1 col-span-12" />
<StreetAnomaly class="lg:col-span-8 row-span-1 col-span-12" />
<DistributedOptimization class="lg:col-span-4 row-span-1 col-span-12" />
<CouriersOptimization class="lg:col-span-4 row-span-1 col-span-12" />
<NaturalExamples class="lg:col-span-4 row-span-1 col-span-12" />
<InstanceDetection class="lg:col-span-8 row-span-1 col-span-12" />
<NNFromScratch class="lg:col-span-4 row-span-1 col-span-12" /> <NNFromScratch class="lg:col-span-4 row-span-1 col-span-12" />
<TablutPlayer class="lg:col-span-4 row-span-1 col-span-12" /> <TablutPlayer class="lg:col-span-4 row-span-1 col-span-12" />
<BScThesis class="lg:col-span-8 row-span-1 col-span-12" /> <BScThesis class="lg:col-span-8 row-span-1 col-span-12" />