diff --git a/debug.log b/debug.log index 385b6e3..0802318 100644 --- a/debug.log +++ b/debug.log @@ -5,3 +5,4 @@ [0621/002553.054:ERROR:(-1)] Check failed: false. [0621/134732.729:ERROR:(-1)] Check failed: false. [0621/193354.311:ERROR:(-1)] Check failed: false. +[0622/174844.159:ERROR:(-1)] Check failed: false. diff --git a/public/favicon.ico b/public/favicon.ico index a11777c..7f0ebe2 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/public/logo192.png b/public/logo192.png index fc44b0a..4000dd2 100644 Binary files a/public/logo192.png and b/public/logo192.png differ diff --git a/public/logo512.png b/public/logo512.png index a4e47a6..606547a 100644 Binary files a/public/logo512.png and b/public/logo512.png differ diff --git a/src/App.css b/src/App.css index 9dc7c54..4653936 100644 --- a/src/App.css +++ b/src/App.css @@ -1,3 +1,7 @@ +.min-h-screen { + min-height: 100vh; +} + .blurred { width: inherit; height: inherit; @@ -16,6 +20,11 @@ border-radius: 1em; } +.bottom-rounded { + border-bottom-left-radius: 1em; + border-bottom-right-radius: 1em; +} + .is-carousel-focused { max-height: .8em; transition: max-height .15s; @@ -24,4 +33,4 @@ .is-carousel { max-height: .5em; transition: max-height .15s; -} \ No newline at end of file +} diff --git a/src/App.js b/src/App.js index dbc3ddb..20654c5 100644 --- a/src/App.js +++ b/src/App.js @@ -21,7 +21,7 @@ const router = createBrowserRouter([ function App() { return ( -
+
diff --git a/src/Components/Carousel.js b/src/Components/Carousel.js index 0cd4302..4412381 100644 --- a/src/Components/Carousel.js +++ b/src/Components/Carousel.js @@ -51,7 +51,15 @@ class Carousel extends Component {
} case "picture": { - return Showcase media + return
+ Showcase media + { + media.description !== undefined ? +
+ {media.description} +
: null + } +
} default: { return
@@ -62,16 +70,19 @@ class Carousel extends Component { render() { return
{this.getMediaHTML(this.props.images[this.state.currentImage])} -
-
- < - {this.props.images.map((image, index) => { - let focused = this.state.currentImage === index ? "is-carousel-focused" : "is-carousel"; - return ; - })} - > -
-
+ { + this.props.images.length > 1 ? +
+
+ < + {this.props.images.map((image, index) => { + let focused = this.state.currentImage === index ? "is-carousel-focused" : "is-carousel"; + return ; + })} + > +
+
: null + }
} } diff --git a/src/Pages/Homepage/Homepage.js b/src/Pages/Homepage/Homepage.js index 08c5204..89c543c 100644 --- a/src/Pages/Homepage/Homepage.js +++ b/src/Pages/Homepage/Homepage.js @@ -15,12 +15,12 @@ export default function Homepage() {

Ewen Horville

- Étudiant et passionné en Informatique + Étudiant en informatique

-
-

A Propos

+
+

A Propos

@@ -29,31 +29,35 @@ export default function Homepage() {
-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer cursus mi lectus. Curabitur congue consectetur orci non consectetur. Donec at purus sodales, mollis dui ac, volutpat tellus. Nullam non pulvinar nisl. Maecenas fringilla auctor sem, vitae posuere turpis ultricies vitae. Nullam urna neque, accumsan nec ex eget, aliquet ultrices nulla. Aenean id nisl eu erat iaculis venenatis. Nullam semper sapien leo, vitae mollis augue auctor in. Donec at dui in orci varius placerat aliquet id neque.

-
-
-
-
-
- placeholder -
-
-
-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer cursus mi lectus. Curabitur congue consectetur orci non consectetur. Donec at purus sodales, mollis dui ac, volutpat tellus. Nullam non pulvinar nisl. Maecenas fringilla auctor sem, vitae posuere turpis ultricies vitae. Nullam urna neque, accumsan nec ex eget, aliquet ultrices nulla. Aenean id nisl eu erat iaculis venenatis. Nullam semper sapien leo, vitae mollis augue auctor in. Donec at dui in orci varius placerat aliquet id neque.

+

+ Passionné par l'informatique depuis le collège, je programme sur mon temps libre et j'apprend + tous les jours. +
+ Je me suis aussi lancé dans la gestion de mon propre serveur maison et j'héberge actuellement + plusieurs serveurs de jeu ainsi que ce portfolio. +
+ D'autres projets sont à venir ! +

+ Je suis aujourd'hui à la recherche d'une alternance en informatique afin de continuer mes études + en école d'ingénieur. +

-

Mes Projets

+

Réalisations

-
+
+

Travaux en cours

+
+
diff --git a/src/Pages/Project/Project.js b/src/Pages/Project/Project.js index 1885e65..ea37094 100644 --- a/src/Pages/Project/Project.js +++ b/src/Pages/Project/Project.js @@ -36,8 +36,10 @@ export default function Project() { } } + console.log(project) + return ( -
+
@@ -49,10 +51,13 @@ export default function Project() {
-
-

Plus d'images

- -
+ { + project.secondaryMedia !== undefined ? +
+

Plus d'images

+ +
: null + }
); } \ No newline at end of file diff --git a/src/Projects/Celestia/celestia.png b/src/Projects/Celestia/celestia.png new file mode 100644 index 0000000..85178db Binary files /dev/null and b/src/Projects/Celestia/celestia.png differ diff --git a/src/Projects/Kaiser/illustrator.png b/src/Projects/Kaiser/illustrator.png new file mode 100644 index 0000000..b10fffd Binary files /dev/null and b/src/Projects/Kaiser/illustrator.png differ diff --git a/src/Projects/Luna/menu.png b/src/Projects/Luna/menu.png new file mode 100644 index 0000000..8de65d1 Binary files /dev/null and b/src/Projects/Luna/menu.png differ diff --git a/src/Projects/Wavefront/blender.png b/src/Projects/Wavefront/blender.png new file mode 100644 index 0000000..7558c98 Binary files /dev/null and b/src/Projects/Wavefront/blender.png differ diff --git a/src/Projects/Wavefront/ingame.jpg b/src/Projects/Wavefront/ingame.jpg new file mode 100644 index 0000000..af4f373 Binary files /dev/null and b/src/Projects/Wavefront/ingame.jpg differ diff --git a/src/Projects/manifest.js b/src/Projects/manifest.js index 605f344..942fe9f 100644 --- a/src/Projects/manifest.js +++ b/src/Projects/manifest.js @@ -1,3 +1,5 @@ +import {NavLink} from "react-router-dom"; + const projectData = [ { title: "AquaticWeb", @@ -12,19 +14,19 @@ const projectData = [ Durant un stage de 10 semaines, j'ai été en charge de la refonte complète de l'API du site web ainsi que de la modernisation de la structure de la base de données.


- Technologies utilisées : Symfony (PHP), ReactJS + Technologies utilisées : Symfony (PHP), React (JavaScript)
Dates du stage: 04/2023 - 06/2023

, thumbnail: require("./Aquaticweb/homepage.png"), mainMedia: {type: "picture", value: require("./Aquaticweb/homepage.png")}, secondaryMedia: [ - {type: "picture", value: require("./Aquaticweb/homepage.png")}, - {type: "picture", value: require("./Aquaticweb/homepage-2.png")}, - {type: "picture", value: require("./Aquaticweb/taxa.png")}, - {type: "picture", value: require("./Aquaticweb/signup.png")}, - {type: "picture", value: require("./Aquaticweb/sources.png")}, - {type: "picture", value: require("./Aquaticweb/api.png")} + {type: "picture", value: require("./Aquaticweb/homepage.png"), description: "Page d'accueil"}, + {type: "picture", value: require("./Aquaticweb/homepage-2.png"), description: "Page d'accueil, FAQ & Footer"}, + {type: "picture", value: require("./Aquaticweb/taxa.png"), description: "Page des taxons"}, + {type: "picture", value: require("./Aquaticweb/signup.png"), description: "Page d'inscription"}, + {type: "picture", value: require("./Aquaticweb/sources.png"), description: "Page des sources"}, + {type: "picture", value: require("./Aquaticweb/api.png"), description: "API Back-end"} ], date: 04/2023 - 06/2023 }, @@ -45,17 +47,18 @@ const projectData = [ Aujourd'hui, Kaiser compte plus de 7 500 lignes de code et est utilisé par la majorité des joueurs du serveur.

- Langage utilisées : Lua
+ Technologies utilisées : Lua, Illustrator (UI)
Date de sortie : 2020

, thumbnail: require("./Kaiser/menu.jpg"), mainMedia: {type: "picture", value: require("./Kaiser/menu.jpg")}, secondaryMedia: [ - {type: "picture", value: require("./Kaiser/status.jpg")}, - {type: "picture", value: require("./Kaiser/warp.jpg")}, - {type: "picture", value: require("./Kaiser/tactical.jpg")}, - {type: "picture", value: require("./Kaiser/stargate.jpg")}, - {type: "picture", value: require("./Kaiser/options.jpg")}, + {type: "picture", value: require("./Kaiser/status.jpg"), description: "Statut du vaisseau"}, + {type: "picture", value: require("./Kaiser/warp.jpg"), description: "Menu de déplacement"}, + {type: "picture", value: require("./Kaiser/tactical.jpg"), description: "Écran tactique (armement)"}, + {type: "picture", value: require("./Kaiser/stargate.jpg"), description: "Écran de contrôle de la porte des étoiles."}, + {type: "picture", value: require("./Kaiser/options.jpg"), description: "Menu d'options"}, + {type: "picture", value: require("./Kaiser/illustrator.png"), description: "Prototype sur Illustrator"}, {type: "youtube", value: "https://youtube.com/embed/gLH1JaEDfuQ"} ], date: Date de sortie : 2020 @@ -65,52 +68,91 @@ const projectData = [ shortDesc: Réalisé dans Blender, différents models 3D ayant pour but d'être importé dans Garry's Mod. , - longDesc: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus nec iaculis mauris.", + longDesc:

+ Durant mon temps libre, je conçoit de temps à autres des models 3D déstinés à être utilisés au sein de jeux vidéos. +

+ J'ai acquis grâce à cela une certaine connaissance de Blender afin de créer des models 3D simples + et parfois animés. +

+ Technologie utilisée : Blender +

, thumbnail: require("./Models/farragut.png"), mainMedia: {type: "picture", value: require("./Models/farragut.png")}, secondaryMedia: [ - {type: "picture", value: require("./Models/modbridge_v2.jpg")}, - {type: "picture", value: require("./Models/lawgiver.png")}, - {type: "picture", value: require("./Models/warp_core.png")}, + {type: "picture", value: require("./Models/modbridge_v2.jpg"), description:

+ Couloirs de vaisseaux modulaires +

}, + {type: "picture", value: require("./Models/lawgiver.png"), description:

+ Lawgiver MkII de l'univers Judge Dredd (Référence) +

}, + {type: "picture", value: require("./Models/warp_core.png"), description:

+ Model 3D : Chambre antimatière provenant de Star Trek (Référence) +

}, {type: "youtube", value: "https://youtube.com/embed/A0rNRkiQSeA"} ], date: 2019 - 2023 }, { - title: "AquaticWeb v4", - shortDesc: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus nec iaculis mauris.", - longDesc: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus nec iaculis mauris.", - thumbnail: "https://bulma.io/images/placeholders/1280x960.png", - mainMedia: {type: "picture", value: "https://www.jacksonsquareshopping.co.uk/wp-content/uploads/2016/12/placeholder-1920x1080-copy.png"}, - secondaryMedia: [ - {type: "youtube", value: "https://youtube.com/embed/3Okx0T5vpFc"}, - {type: "picture", value: "https://www.jacksonsquareshopping.co.uk/wp-content/uploads/2016/12/placeholder-1920x1080-copy.png"} - ], - date: "04/2023 - 06/2023" + title: "Luna", + shortDesc: + Le successeur de Kaiser, un script permettant aux joueurs de contrôler leur + vaisseau avec des capacités améliorées et un code plus performant et mieux écrit. + , + longDesc:

+ Kaiser est un script permettant aux joueurs d'un serveur de jeu de contrôler leur vaisseau spatial. Créé en 2020, + Kaiser est aujourd'hui l'un des scripts les plus populaire auprès des joueurs, c'est pourquoi j'ai décidé de recréer + un script similaire avec plus de fonctionnalités et une organisation du code améliorée. +

+ Luna est un projet en développement reprenant les principes de fonctionnement de Kaiser avec plus de fonctionnalités + comme la capacité pour un joueur de développer et facilement pouvoir intégrer ses propres fonctionnalités en utilisant + un système de module. +

+ Luna est aujourd'hui encore en développement avec une partie serveur implémentée et une interface utilisateur + encore à l'état de prototype sur Inkscape. +

+ Technologies utilisées : Lua, Inkscape (design UI) +

, + thumbnail: require("./Luna/menu.png"), + mainMedia: {type: "picture", value: require("./Luna/menu.png")}, }, { - title: "AquaticWeb v5", - shortDesc: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus nec iaculis mauris.", - longDesc: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus nec iaculis mauris.", - thumbnail: "https://www.jacksonsquareshopping.co.uk/wp-content/uploads/2016/12/placeholder-1920x1080-copy.png", - mainMedia: {type: "picture", value: "https://www.jacksonsquareshopping.co.uk/wp-content/uploads/2016/12/placeholder-1920x1080-copy.png"}, - secondaryMedia: [ - {type: "youtube", value: "https://youtube.com/embed/3Okx0T5vpFc"}, - {type: "picture", value: "https://www.jacksonsquareshopping.co.uk/wp-content/uploads/2016/12/placeholder-1920x1080-copy.png"} - ], - date: "04/2023 - 06/2023" + title: "Celestia", + shortDesc: + Un site web permettant à des joueurs de partager leur vaisseaux spatiaux ou leur scripts. + , + longDesc:

+ Afin de faciliter le partage des création de joueurs sur un serveur de jeu, l'idée m'est venu de créer un + site web permettant de mettre en ligne ses créations et de les partager avec d'autres joueurs. +

+ Le développement du site se fera avec React (JavaScript) ainsi que Symfony (PHP) afin de créer une API. +
+ Le site n'est aujourd'hui encore qu'à l'état de prototype. +

+ Technologies utilisées : React (JavaScript), Symfony (PHP), Inkscape (UI) +

, + thumbnail: require("./Celestia/celestia.png"), + mainMedia: {type: "picture", value: require("./Celestia/celestia.png")}, }, { - title: "AquaticWeb v6", - shortDesc: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus nec iaculis mauris.", - longDesc: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus nec iaculis mauris.", - thumbnail: "https://bulma.io/images/placeholders/1280x960.png", - mainMedia: {type: "picture", value: "https://www.jacksonsquareshopping.co.uk/wp-content/uploads/2016/12/placeholder-1920x1080-copy.png"}, + title: "Wavefront Importer", + shortDesc: + Un script permettant d'importer des objets au format wavefront (.obj) en jeu et de les afficher. + , + longDesc:

+ Un script simple permettant d'importer des objets au format wavefront (.obj) en jeu et de les afficher en temps réel. +

+ Le script est capable de recréer un model avec mapping UV, normales et séparation des différents groupes de matériaux. +
+ Le but de ce script est de faciliter le chargement dynamique de models 3D en jeu. Capacité qui n'est actuellement + pas supportée par le jeu. +

+ Technologies utilisées : Lua, Blender (3D) +

, + thumbnail: require("./Wavefront/blender.png"), + mainMedia: {type: "picture", value: require("./Wavefront/blender.png")}, secondaryMedia: [ - {type: "youtube", value: "https://youtube.com/embed/3Okx0T5vpFc"}, - {type: "picture", value: "https://www.jacksonsquareshopping.co.uk/wp-content/uploads/2016/12/placeholder-1920x1080-copy.png"} + {type: "picture", value: require("./Wavefront/ingame.jpg"), description: "Model en jeu"} ], - date: "04/2023 - 06/2023" } ]