need to take a break

This commit is contained in:
Emi Boucly 2025-06-09 16:40:58 +02:00
parent 5e2183fd25
commit 65452ce448
27 changed files with 454 additions and 32 deletions

View file

@ -52,6 +52,10 @@ import HeaderNav from "@/components/HeaderNav.vue"
a { color: inherit; }
.grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-gap: 10px;
grid-auto-rows: minmax(100px, auto);
}
</style>

View file

@ -45,3 +45,14 @@ $themes: (
.font-bigger {
font-size: x-large;
}
.marginauto {
margin: auto;
}
.locale-changer select {
border: 2px solid #7f5be1;
background: #2f27ce;
padding: 10px;
transition: 1s;
}

View file

@ -3,7 +3,7 @@
</script>
<template>
<h3 class="center">There, have cool old-fashioned 88x31 buttons</h3>
<h3 class="center">{{ $t('home.buttons') }}</h3>
<div class="wrapper flex">
<a href="https://tralala.fr.eu.org" title="tralala.fr.eu.org"><img src="../components/icons/tralala-88x31.gif" alt="tralala.fr.eu.org" height="31" width="88"></a>
<a href="https://fransgenre.fr/" title="fransgenre.fr"><img src="../components/icons/estrogen-88x31.gif" alt="fransgenre.fr" height="31" width="88"></a>

View file

@ -1,8 +1,14 @@
<template>
<nav class="font-bigger">
<RouterLink to="/cv" class="nav-li">Web Resume</RouterLink>
<RouterLink to="/about" class="nav-li">About me</RouterLink>
<RouterLink to="/" class="nav-li">Home</RouterLink>
<RouterLink to="/alternance" class="nav-li">{{ $t('nav.alt') }}</RouterLink>
<RouterLink to="/cv" class="nav-li">{{ $t('nav.cv') }}</RouterLink>
<RouterLink to="/about" class="nav-li">{{ $t('nav.about') }}</RouterLink>
<RouterLink to="/" class="nav-li">{{ $t('nav.home') }}</RouterLink>
<div class="locale-changer">
<select v-model="$i18n.locale">
<option v-for="locale in $i18n.availableLocales" :key="`locale-${locale}`" :value="locale">{{ locale }}</option>
</select>
</div>
</nav>
</template>
@ -16,6 +22,7 @@ import {RouterLink} from "vue-router";
padding: 15pt;
display: flex;
flex-direction: row-reverse;
flex-wrap: wrap;
}
</style>

View file

@ -1,8 +1,9 @@
<script setup lang="ts">
import {RouterLink} from "vue-router";
</script>
<template>
<h3 class="center">Some cool projects I worked on</h3>
<h3 class="center">{{ $t('home.projects') }}</h3>
<div class="center card-container">
<div>
@ -14,20 +15,36 @@
</div>
<div>
<a class="card" href="https://github.com/Akomry/sae302-chat">
<img class="rounded card" src="" alt="sae302-chat" width="300">
</a>
<RouterLink to="/sae302" class="nav-li">
<img class="rounded card" src="../components/images/sae302-screen.png" alt="sae302-chat" width="200">
</RouterLink>
<br>
<span>Communication app</span>
</div>
<div>
<a class="card" href="https://github.com/Akomry/website">
<img class="rounded card" src="" alt="website" width="300">
<a class="card" href="https://github.com/Akomry/website" target="_blank" rel="external nofllow noopener">
<img class="rounded card" src="../components/images/website.png" alt="website" width="200">
</a>
<br>
<span>Current website</span>
</div>
<div>
<RouterLink to="/sae201" class="nav-li">
<img class="rounded card" src="../components/images/schema_reseau.png" alt="sae201" width="200">
</RouterLink>
<br>
<span>Network Project</span>
</div>
<div>
<RouterLink to="/sae301" class="nav-li">
<img class="rounded card" src="../components/images/sae301-scheme.jpg" alt="sae301" width="200">
</RouterLink>
<br>
<span>Electronics</span>
</div>
</div>
</template>

View file

@ -352,7 +352,7 @@
$size: math.random(5);
position: absolute;
top: math.random(250) - 1 + vh;
top: math.random(200) - 1 + vh;
left: math.random(100) - 1 + vw;
width: $size + px;
height: $size + px;

Binary file not shown.

After

Width:  |  Height:  |  Size: 924 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -0,0 +1,91 @@
import {createI18n} from "vue-i18n";
const i18n = createI18n({
locale: "fr",
fallbackLocale: 'en',
messages: {
en: {
nav: {
home: "Home",
about: "About me",
cv: "Web Resume",
alt: "Apprenticeship"
},
home: {
welcome: "Welcome to my website !",
projects: "Some cool projects I worked on",
buttons: "There, have cool old-fashioned 88x31 buttons"
},
cv: {
title: 'Web Resume',
coord: 'Coordinates',
age: '19 years old',
formation: 'Education',
rt: '2nd year of Networking and Telecommunications',
iut: 'IUT1 from Grenoble - Saint-Martin-d\'Hères',
bac: 'High school diploma',
lycee: 'Charles-Gabriel Pravaz High School',
spebac: 'Math, English Literature, Expert Maths, with high honours',
lang: 'Language',
francais: 'French : Mother tongue',
anglais: 'English : Fluent (B2)',
allemand: 'German : Solid foundations (A2)',
comp: 'Skills',
prog: 'Programming',
devnet: 'Develop an app based on a network protocol',
cont: 'Containerize and manage a Docker infrastructure',
ad: 'Setup and manage an Active Directory infrastructure',
db: 'Setup and manage a Database Management System',
automate: 'Automate administration tasks using scripting and Ansible'
}
},
fr: {
nav: {
home: "Accueil",
about: "A propos de moi",
cv: "Web CV",
alt: "Alternance"
},
home: {
welcome: "Bienvenue sur mon site web !",
projects: "Quelques projects sympathiques sur lesquels j'ai travaillé",
buttons: "Tiens, quelques boutons 88x31 à l'ancienne"
},
cv: {
title: 'Web CV',
coord: 'Coordonées',
age: '19 ans',
formation: 'Formation',
rt: '2e année de BUT Réseaux et Télécommunications',
iut: 'IUT1 de Grenoble - Saint-Martin-d\'Hères',
bac: 'Baccalauréat Général',
lycee: 'Lycée Charles-Gabriel Pravaz',
spebac: 'Maths, LLCER, Maths expertes avec mention bien',
lang: 'Langues',
francais: 'Français : Langue maternelle',
anglais: 'Anglais : Parle couramment (B2)',
allemand: 'Allemand : Bases solides (A2)',
comp: 'Compétences',
prog: 'Programmation',
devnet: 'Développer une application basée sur un protocole réseau',
cont: 'Conteneuriser et maintenir une infrastructure Docker',
ad: 'Installer et configurer un serveur Active Directory',
db: 'Mettre en place et maintenir une SGBD',
automate: 'Automatiser les tâches d\'administration avec du scripting et Ansible',
}
}
}
})
export default i18n

View file

@ -1,9 +1,14 @@
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import {createI18n} from "vue-i18n";
import i18n from "./i18n";
const app = createApp(App)
app.use(router)
app.use(i18n)
app.mount('#app')

View file

@ -2,9 +2,20 @@ import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '@/views/HomeView.vue'
import AboutView from '@/views/AboutView.vue'
import CvView from "@/views/CvView.vue";
import ApprenticeshipView from "@/views/ApprenticeshipView.vue";
import Sae201View from "@/views/Sae201View.vue";
import Sae301View from "@/views/Sae301View.vue";
import Sae302View from "@/views/Sae302View.vue";
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
scrollBehavior(to, from, savedPosition) {
if (savedPosition) {
return savedPosition
} else {
return { top: 0 }
}
},
routes: [
{
path: '/',
@ -20,6 +31,26 @@ const router = createRouter({
path: '/cv',
name: 'cv',
component: CvView
},
{
path: '/apprenticeship',
name: 'apprenticeship',
component: ApprenticeshipView
},
{
path: '/sae201',
name: 'sae201',
component: Sae201View
},
{
path: '/sae301',
name: 'sae301',
component: Sae301View
},
{
path: '/sae302',
name: 'sae302',
component: Sae302View
}
],
})

View file

@ -80,14 +80,13 @@
<br>
<p>Want a linktree ? Have one.</p>
<ul>
<li><a href="">Backloggd</a></li>
<li><a href="">Steam</a></li>
<li><a href="">Discord</a></li>
<li><a href="">GitHub</a></li>
<li><a href="">Itch.io</a></li>
<li><a href="">SoundCloud</a></li>
<li><a href="">AniList</a></li>
<li><a href="">Instagram</a></li>
<li><a href="https://backloggd.com/u/Akorona/">Backloggd</a></li>
<li><a href="https://steamcommunity.com/profiles/76561198347930009/">Steam</a></li>
<li><a href="https://discord.com/users/281342667781308417/">Discord</a></li>
<li><a href="https://github.com/Akomry/">GitHub</a></li>
<li><a href="https://akorona.itch.io/">Itch.io</a></li>
<li><a href="https://soundcloud.com/akorona/">SoundCloud</a></li>
<li><a href="https://anilist.co/user/Akorona/">AniList</a></li>
</ul>
</div>
<div>

View file

@ -0,0 +1,10 @@
<script setup lang="ts">
</script>
<template>
</template>
<style scoped lang="scss">
</style>

View file

@ -1,35 +1,60 @@
<script setup lang="ts">
import {RouterLink} from "vue-router";
</script>
<template>
<div class="center">
<h1>Web Resume</h1>
<h1>{{ $t('cv.title') }}</h1>
</div>
<div class="margin flex space-around">
<div>
<h2>Coordinates</h2>
<h2>{{ $t('cv.coord') }}</h2>
<p>Emi BOUCLY</p>
<p>34 rue de Mortillet, 38000 Grenoble</p>
<p><a href="mailto:emi.boucly38@gmail.com">emi.boucly38@gmail.com</a></p>
<p><a href="tel:0768280432">07 68 28 04 32</a></p>
<p>19 years old</p>
<p>{{ $t('cv.age') }}</p>
</div>
<div>
<h2>Education</h2>
<p>2024/2025 - 2nd year of Networking and Telecommunications</p>
<em style="font-size: smaller">IUT1 from Grenoble - Saint-Martin-d'Hères</em>
<h2>{{ $t('cv.formation') }}</h2>
<p>2024/2025 - {{ $t('cv.rt') }}</p>
<em style="font-size: smaller">{{ $t('cv.iut') }}</em>
<br><br>
<p>2022/2023 - High school diploma</p>
<em style="font-size: smaller">Charles-Gabriel Pravaz High School - Pont de Beauvoisin</em> <br>
<em style="font-size: smaller">Math, English Literature, Expert Maths, with high honours</em>
<p>2022/2023 - {{ $t('cv.bac') }}</p>
<em style="font-size: smaller">{{ $t('cv.lycee') }} - Pont de Beauvoisin</em> <br>
<em style="font-size: smaller">{{ $t('cv.spebac') }}</em>
</div>
<div>
<h2>{{ $t('cv.lang') }}</h2>
<p>{{ $t('cv.francais') }}</p>
<p>{{ $t('cv.anglais') }}</p>
<p>{{ $t('cv.allemand') }}</p>
</div>
<div>
<h2>{{ $t('cv.comp') }}</h2>
<p>{{ $t('cv.prog') }}</p>
<p>{{ $t('cv.devnet') }}</p>
<p>{{ $t('cv.cont') }}</p>
<p>{{ $t('cv.ad') }}</p>
<p>{{ $t('cv.db') }}</p>
<p>{{ $t('cv.automate') }}</p>
</div>
<div>
<h2>Experience</h2>
<h3><RouterLink to="/apprenticeship">Impactiv'</RouterLink></h3>
<em style="font-size: smaller">2024 - Now</em>
<p>IT and networking technician in a co-op program.</p>
</div>
<div>
<h2></h2>
</div>
@ -37,5 +62,7 @@
</template>
<style scoped lang="scss">
h2 {
text-align: center;
}
</style>

View file

@ -24,7 +24,7 @@ import { Icon } from '@iconify/vue'
\___||_| |_| |_||_||_|\_\\___/(_)|_| |_|
</pre>
<div class="center">
<h1>Welcome to my website !</h1>
<h1>{{ $t('home.welcome') }}</h1>
<button class="scroll-indicator" style="margin-top: 12%" @click="scrollToProjects()">
<Icon icon="mingcute:down-line" style="width: 3rem; height: 3rem;" width="3rem" />
</button>

View file

@ -0,0 +1,49 @@
<script setup lang="ts">
</script>
<template>
<div class="margin">
<div>
<h2>What is SAE201?</h2>
<div class="grid">
<p class="marginauto">
During this project, I proceeded to the installation simulation of a microenterprise's networking system.
For this I used tools like OpenStack to create virtual machines and networks. Then, I installed various services
on CentOS Stream 8 machines. Those services includes Apache, DNSMasq, Grafana & Prometheus, and Nextcloud.
</p>
<img class="marginauto" src="../components/images/openstack.png" alt="openstack logo" width="300">
</div>
</div>
<div class="grid">
<img class="marginauto" src="../components/images/schema_reseau.png" alt="network_scheme" width="500">
<p class="marginauto">
The simulated network was independant for each group. To access to our machines, we had to use virtual machines
running Windows which had elastic IPs connected to our university's VPN.
</p>
<br>
</div>
<div class="grid">
<div>
<h2>What I learnt</h2>
<ul>
<li>Install Linux services</li>
<li>Create bash scripts and manage a Linux system</li>
<li>Debug using tools such as Wireshark or TCPDump</li>
</ul>
</div>
<div>
<h2>My feelings</h2>
<p>
It's the project I loved the most this year. Having an appetite for Linux systems and their manipulation, I enjoyed
working on this project
</p>
</div>
</div>
</div>
</template>
<style scoped lang="scss">
</style>

View file

@ -0,0 +1,54 @@
<script setup lang="ts">
</script>
<template>
<div class="margin">
<h2>What is SAE301?</h2>
<div class="grid">
<img style="grid-column: 2; grid-row: 1;" src="../components/images/sae301-scheme.jpg" alt="file_scheme" width="500">
<p class="marginauto" style="grid-column: 1; grid-row: 1;">
This project was dedicated to make amplitude modulation on a RZ signal. We studied the whole circuitry, made the
electronic schemes and calculated every component value to make everything work.
We used an NE-555 to generate an NRZ signal, then used a programmable circuit to convert it to an RZ signal,
then used a Wien bridge oscillator to generate a carrier sine that we multiplied to the RZ signal to modulate it.
After modulation, we made a synchronous demodulation using the generated carrier, a multiplier and a low-pass filter.
</p>
</div>
</div>
<div class="margin grid">
<!--
<div>
<p>
</p>
<img src="../components/images/sae204-elec.jpg" alt="elec_circuitry">
</div>
<hr>
-->
<div>
<h2>What I learnt</h2>
<ul>
<li>How an amplitude modulation works (+ demodulation)</li>
<li>How to make an oscillator from scratch</li>
<li>To brainstorm and work as a group</li>
<li>How a NE-555 works to generate an NRZ signal</li>
</ul>
</div>
<div>
<h2>My feelings</h2>
<div>
This was complicated. We had to do a lot of calculus and brainstorming,
deduce spectral densities of the various signals,
without doing any circuitry.
But still it was fun and interesting to learn.
</div>
</div>
</div>
</template>
<style scoped lang="scss">
</style>

View file

@ -0,0 +1,51 @@
<script setup lang="ts">
</script>
<template>
<div class="margin">
<h2>What is SAE302?</h2>
<div class="grid">
<p class="marginauto">
Basically, I had to recreate a communication app using JavaFX.
From the very basics, I had to use SceneBuilder to create our graphical environment, then create the whole
controller stack using callbacks. I then wrote a TCP server and client, and incorporated them in the client app.
Even though we were guided through this project, only a few managed to finish it.
</p>
<img class="marginauto" src="../components/images/sae302-screen.png" alt="app-screen" width="500">
</div>
<br>
<div class="grid">
<img class="marginauto" src="../components/images/sae302-intellij.png" alt="intellij" width="700">
<p class="marginauto">We also had to use git versioning, and the whole code is available to download on
<a href="https://github.com/Akomry/sae302_applicom">GitHub</a>. I used the IntelliJ IDE.</p>
</div>
<br>
<div class="grid">
<div>
<h2>What I learnt</h2>
<ul>
<li>How to code in Java and in Object-Oriented Programming</li>
<li>How to create a graphical application using JavaFX</li>
<li>How to communicate between to apps using TCP</li>
</ul>
</div>
<div>
<h2>My feelings</h2>
<p>
My favorite project of the year, again. It was fun to develop such an app, and I was thrilled to finally code in
Java and/or OOP.
</p>
</div>
</div>
</div>
</template>
<style scoped lang="scss">
</style>