Ajout de pages

master
Kyllian CHABANON 3 months ago
parent e2c0b34570
commit 0988410293

@ -49,4 +49,4 @@
"dependencies": {
"dayjs": "^1.11.10"
}
}
}

@ -104,10 +104,10 @@
>
{#if $theme}
<UIcon icon="i-carbon-moon" />
<span>Dark Theme</span>
<span>Thème Sombre</span>
{:else}
<UIcon icon="i-carbon-sun" />
<span>Light Theme</span>
<span>Thème Clair</span>
{/if}
</button>
</div>

@ -21,7 +21,7 @@
$: from = `${getMonthName(project.period.from.getMonth())} ${project.period.from.getFullYear()}`;
$: to = project.period.to
? `${getMonthName(project.period.to.getMonth())} ${project.period.to.getFullYear()}`
: 'aujourd\'hui';
: 'Aujourd\'hui';
</script>
<Card color={project.color} href={`${base}/projects/${project.slug}`}>
@ -36,11 +36,16 @@
</div>
<CardDivider />
<div
class="row m-b-15px justify-between text-[var(--secondary-text)] text-0.9em font-italic font-300"
class="row m-b-5px justify-between text-[var(--secondary-text)] text-0.9em font-italic font-300"
>
<p>{project.type}</p>
<p>{period}</p>
</div>
<div
class="row m-b-15px justify-between text-[var(--secondary-text)] text-0.9em font-300"
>
<p>{project.isPersonal? "Projet personnel" : "Projet académique"}</p>
</div>
<div class="col sm:h-100px md:h-160px">
<p
class="text-[0.95em] text-[var(--secondary-text)] font-300 m-t-20px m-b-40px flex-1 line-clamp-3"

@ -79,6 +79,11 @@ const Assets = {
VisualStudio: a('visualstudio.svg'),
JetBrains: a('jetbrains.svg'),
Git: a('git.svg'),
BMServices: a('bm-services.png'),
UCA: a('uca.png'),
SaintJoseph: a('saint-joseph.png'),
PathFinder: a('pathfinder.png'),
Akurelics: a('akurelics.png'),
};
export default Assets;

@ -3,29 +3,29 @@ import type { Education } from '../types';
export const items: Array<Education> = [
{
degree: 'Bachelor degree of Computer Science',
degree: 'BUT Informatique',
description: '',
location: 'Tunisia',
logo: Assets.Unknown,
location: 'Clermont-Ferrand, France',
logo: Assets.UCA,
name: '',
organization: 'ISTIC',
period: { from: new Date(2020, 0, 1), to: new Date(2022, 5, 1) },
organization: 'IUT Clermont Auvergne',
period: { from: new Date(2022, 0, 1) },
shortDescription: '',
slug: 'dummy-education-item',
subjects: ['C', 'Algorithm', 'Algebra', 'Python', 'C++', 'Java', 'English']
slug: 'but-informatique-uca',
subjects: ['Programmation', 'Base de données', 'Réseau', 'Gestion de projet', 'Droit']
},
{
degree: 'PhD of Computer Science',
degree: 'Baccalauréat Général',
description: '',
location: 'USA',
logo: Assets.Unknown,
location: 'Marvejols, France',
logo: Assets.SaintJoseph,
name: '',
organization: 'MIT',
period: { from: new Date(2023, 0, 1) },
organization: 'Lycée Saint Joseph',
period: { from: new Date(2019, 0, 1), to: new Date(2022, 0, 1) },
shortDescription: '',
slug: 'dummy-education-item-2',
subjects: ['Assembly', 'Rust', 'Computer Architecture', 'Algorithms and Data structures']
slug: 'bac-general-saint-joseph',
subjects: ['Mathématiques', 'Physique-Chimie', 'SVT']
}
];
export const title = 'Education';
export const title = 'Éducation';

@ -4,50 +4,20 @@ import { ContractType, type Experience } from '../types';
export const items: Array<Experience> = [
{
slug: 'open-sourcer',
company: 'Self-employed',
description: 'Creating awesome tools for developers.',
contract: ContractType.SelfEmployed,
type: 'Software Development',
location: 'Home',
period: { from: new Date() },
skills: getSkills('ts', 'js'),
name: 'Open Source Developer',
slug: 'bm-services-wordpress-developer',
company: 'BM Services',
description: 'J\'ai créé des plugins et des sites Wordpress pour des clients.',
contract: ContractType.Internship,
type: 'Développement Wordpress',
location: 'La Canourgue',
period: { from: new Date(2024, 3, 26), to: new Date() },
skills: getSkills('css', 'html', 'js', 'php'),
name: 'Développeur Wordpress',
color: 'red',
links: [],
logo: Assets.Unknown,
shortDescription: 'Creating awesome tools for developers.'
},
{
slug: 'software-freelance',
company: 'Self-employed',
description: 'Creating awesome applications for customers.',
contract: ContractType.Freelance,
type: 'Software Development',
location: 'Home',
period: { from: new Date() },
skills: getSkills('svelte', 'ts', 'sass', 'css', 'html', 'js'),
name: 'Freelancer',
color: 'blue',
links: [],
logo: Assets.Unknown,
shortDescription: 'Creating awesome applications for customers.'
},
{
slug: 'software-freelance-junior',
company: 'Self-employed',
description: 'Creating awesome applications for customers.',
contract: ContractType.Freelance,
type: 'Software Development',
location: 'Home',
period: { from: new Date(2022, 0, 1), to: new Date() },
skills: getSkills('css', 'html', 'js'),
name: 'Junior Freelancer',
color: 'green',
links: [],
logo: Assets.Unknown,
shortDescription: 'Creating awesome applications for customers.'
logo: Assets.BMServices,
shortDescription: 'Création de plugins et de sites Wordpress.'
}
];
export const title = 'Experience';
export const title = 'Expérience';

@ -8,7 +8,7 @@ export const name = 'Kyllian';
export const lastName = 'Chabanon';
export const description =
'Salut ! Je mappelle Kyllian Chabanon, et je suis étudiant en deuxième année BUT Informatique à Clermont-Ferrand. Ayant toujours été attiré par linformatique en général, et plus particulièrement par la programmation, cest tout naturellement que je me suis orienté vers cette formation.';
'Salut ! Je mappelle Kyllian Chabanon et bienvenue sur mon portfolio ! Je suis étudiant en deuxième année BUT Informatique. Ayant toujours été attiré par linformatique en général, et plus particulièrement par la programmation, cest tout naturellement que je me suis orienté vers cette formation.';
export const links: Array<{ platform: Platform; link: string }> = [
{
@ -21,4 +21,4 @@ export const links: Array<{ platform: Platform; link: string }> = [
},
];
export const skills = getSkills('js', 'css', 'html', 'flutter', 'dart', 'java', 'csharp', 'python');
export const skills = getSkills('flutter', 'dart', 'java', 'csharp', 'python', 'js');

@ -1,5 +1,7 @@
export const items = [
{ title: 'Compétences', to: '/skills', icon: 'i-carbon-software-resource-cluster' },
{ title: 'Projets', to: '/projects', icon: 'i-carbon-cube' },
{ title: 'CV', to: '/resume', icon: 'i-carbon-result' }
{ title: 'Expérience', to: '/experience', icon: 'i-carbon-development' },
{ title: 'Éducation', to: '/education', icon: 'i-carbon-education' },
{ title: 'CV', to: '/resume', icon: 'i-carbon-result' },
] as const;

@ -3,6 +3,37 @@ import { getSkills } from './skills';
import type { Project } from '../types';
export const items: Array<Project> = [
{
slug: 'pathfinder',
color: '#1684d6',
description:
'PathFinder est un jeu éducatif web et mobile basé sur la théorie des graphes, développé dans le cadre de mon projet à l\'IUT. Ce projet a été réalisé en groupe et vise à rendre l\'apprentissage des concepts de graphes ludique et accessible. Nous avons dû concevoir l\'application (C1), optimiser les performances (C2), et gérer les données des joueurs via une base de données SQL (C4). L\'application fonctionne en mode multijoueur local et prévoit une version en ligne avec des fonctionnalités supplémentaires comme un leaderboard. Nous avons également géré l\'infrastructure en Docker pour le déploiement (C3) et avons collaboré efficacement en équipe pour mener à bien ce projet (C5, C6).',
shortDescription:
'PathFinder est un jeu éducatif sur les graphes, conçu pour rendre l\'apprentissage des graphes ludique.',
links: [],
logo: Assets.PathFinder,
name: 'PathFinder',
period: {
from: new Date(2023, 8, 1)
},
skills: getSkills('js', 'php', 'html', 'css', 'csharp', 'kotlin', 'docker'),
type: 'Application de gestion de tuteurs',
screenshots: [
{
label: 'Page d\'ajout d\'une séance',
src: 'https://cdn.discordapp.com/attachments/901792204224352266/1226715001021267978/ajout-seance.png?ex=6625c65f&is=6613515f&hm=93bbb75c7ef32f7fe961dee0ff5c195245e681f3b517cfdbbf0af6976ba53985&'
},
{
label: 'Page de gestion des comptes',
src: 'https://cdn.discordapp.com/attachments/901792204224352266/1226714999901388893/gestion-comptes.png?ex=6625c65f&is=6613515f&hm=c1d5921ad7fbad610f38c7df9a00cd36a008e2d5ab97f850df95a14d17b87ec2&'
},
{
label: 'Page de connexion à l\'application mobile',
src: 'https://cdn.discordapp.com/attachments/901792204224352266/1226715000576544768/app-connexion.png?ex=6625c65f&is=6613515f&hm=34810f9f1f1e2ca481d1695f8503c9408bb01ddf931c99fde9b7e7f91a8da01f&'
},
],
isPersonal: false
},
{
slug: 'mimir',
color: '#8d05c7',
@ -14,7 +45,8 @@ export const items: Array<Project> = [
logo: Assets.Mimir,
name: 'Mimir',
period: {
from: new Date(2023, 9, 1)
from: new Date(2023, 9, 1),
to: new Date(2024, 6, 1)
},
skills: getSkills('js', 'php', 'html', 'css', 'csharp', 'kotlin', 'docker'),
type: 'Application de gestion de tuteurs',
@ -31,15 +63,16 @@ export const items: Array<Project> = [
label: 'Page de connexion à l\'application mobile',
src: 'https://cdn.discordapp.com/attachments/901792204224352266/1226715000576544768/app-connexion.png?ex=6625c65f&is=6613515f&hm=34810f9f1f1e2ca481d1695f8503c9408bb01ddf931c99fde9b7e7f91a8da01f&'
},
]
],
isPersonal: false
},
{
slug: 'affinity',
color: '#e21ace',
description:
'Affinity (nom temporaire) est une application mobile de rencontre sur Android et iOS. C\'est un projet personnel que je désire faire dans le but d\'améliorer mes compétences, mais surtout dans l\'espoir de gagner beaucoup d\'argent. L\'application en est encore au stade de la conception.',
'Affinity est une application mobile de rencontre sur Android et iOS. C\'est un projet personnel que je désire faire dans le but d\'améliorer mes compétences. L\'application en est encore au stade de la conception.',
shortDescription:
'Affinity (nom temporaire) est une application mobile de rencontre sur Android et iOS.',
'Affinity est une application mobile de rencontre sur Android et iOS.',
links: [],
logo: Assets.Affinity,
name: 'Affinity',
@ -48,7 +81,8 @@ export const items: Array<Project> = [
},
skills: getSkills('flutter', 'dart'),
type: 'Application de rencontre',
screenshots: []
screenshots: [],
isPersonal: true
}
];

@ -217,7 +217,7 @@ export const items = [
}),
defineSkill({
slug: 'vscode',
color: 'blue',
color: 'cyan',
description:
'',
logo: Assets.VisualStudioCode,
@ -244,7 +244,7 @@ export const items = [
}),
defineSkill({
slug: 'git',
color: 'orange',
color: 'orangered',
description:
'',
logo: Assets.Git,
@ -269,6 +269,14 @@ export const items = [
name: 'Photoshop',
category: 'devtools'
}),
defineSkill({
slug: 'firebase',
color: 'orange', description:
'',
logo: Assets.Firebase,
name: 'Firebase',
category: 'devtools'
})
] as const;
export const title = 'Compétences';

@ -7,18 +7,17 @@ export enum Platform {
Linkedin = 'linkedin',
Email = 'email',
Facebook = 'facebook',
Youtube = 'youtube'
Youtube = 'youtube',
}
export type Icon = `i-${string}-${string}`;
export enum ContractType {
FullTime = 'Full-time',
PartTime = 'Part-time',
SelfEmployed = 'Self-employed',
FullTime = 'Temps plein',
PartTime = 'Temps partiel',
SelfEmployed = 'Indépendant',
Freelance = 'Freelance',
Contract = 'Contract',
Internship = 'Internship'
Internship = 'Stage'
}
export type Asset = string | { light: string; dark: string };
@ -61,6 +60,7 @@ export interface Project<S extends string = string> extends Item<S> {
};
type: string;
skills: Array<Skill<S>>;
isPersonal?: boolean;
}
export interface Experience<S extends string = string> extends Project<S> {

@ -58,7 +58,7 @@
alt={education.organization}
height="50"
width="50"
class="mb-5"
class="mb-5 organization-img"
/>
<div class="text-[1.3em]">{education.degree}</div>
<div>{education.organization}</div>
@ -78,3 +78,9 @@
{/if}
</div>
</SearchPage>
<style lang="scss">
.organization-img {
width: fit-content;
}
</style>

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save