13 Commits

Author SHA1 Message Date
Giovanni a875e1dfb7 Merge branch 'refactor/componentsAndPages' into dev 2026-04-23 15:51:22 +02:00
Giovanni 83390d802a move all components that are exclusive to one page 2026-04-23 15:44:19 +02:00
Giovanni cab338c2b3 move all components that are exclusive to one page 2026-04-23 15:39:00 +02:00
Giovanni d34eb5714f move all components that are exclusive to one page 2026-04-23 15:37:39 +02:00
Giovanni-Josserand 6847f7d2c6 Merge pull request 'Remove of the old cv pdf' (#46) from review/cv into dev
Reviewed-on: Giovanni-Josserand/Portfolio#46
2025-11-06 19:56:43 +00:00
Giovanni d415d1ca38 Remove of the old cv pdf 2025-11-06 20:56:13 +01:00
Giovanni-Josserand 34869f0611 Merge pull request 'Update of the cv pdf' (#44) from review/cv into dev
Reviewed-on: Giovanni-Josserand/Portfolio#44
2025-11-06 19:54:24 +00:00
Giovanni a08689086c Update of the cv pdf 2025-11-06 20:54:02 +01:00
Giovanni 45e78dd11c Test to fix Qt image that doesn't display 2025-11-06 19:47:53 +01:00
Giovanni 59538b6f17 Fix of overflow issue with because of the padding in .experience-card 2025-11-06 19:32:21 +01:00
Giovanni-Josserand fdc39d3928 Merge pull request 'Add of Qt image, remove of .png images and fix attribute not allowed on svg' (#41) from review/skillsSection into dev
Reviewed-on: Giovanni-Josserand/Portfolio#41
2025-11-06 18:22:21 +00:00
Giovanni 9f7592ace2 Add of Qt image, remove of .png images and fix attribute not allowed on svg 2025-11-06 19:21:25 +01:00
Giovanni-Josserand 23233d4be6 Merge pull request 'feature/responsive' (#38) from feature/responsive into dev
Reviewed-on: Giovanni-Josserand/Portfolio#38
2025-09-28 17:24:22 +00:00
31 changed files with 48 additions and 138 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/public/assets/images/logo.svg" /> <link rel="icon" type="image/svg+xml" href="/assets/images/logo.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
Binary file not shown.
Binary file not shown.
-14
View File
@@ -7,26 +7,12 @@
width="1822" width="1822"
height="2051" height="2051"
viewBox="0 0 1822 2051" viewBox="0 0 1822 2051"
sodipodi:docname="C++.png"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"> xmlns:svg="http://www.w3.org/2000/svg">
<defs <defs
id="defs1" /> id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g <g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1"> id="g1">
<image <image
width="1822" width="1822"

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 157 KiB

-14
View File
@@ -7,26 +7,12 @@
width="1200" width="1200"
height="1200" height="1200"
viewBox="0 0 1200 1200" viewBox="0 0 1200 1200"
sodipodi:docname="CSS.png"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"> xmlns:svg="http://www.w3.org/2000/svg">
<defs <defs
id="defs1" /> id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g <g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1"> id="g1">
<image <image
width="1200" width="1200"

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

-14
View File
@@ -7,26 +7,12 @@
width="2048" width="2048"
height="2048" height="2048"
viewBox="0 0 2048 2048" viewBox="0 0 2048 2048"
sodipodi:docname="Git.png"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"> xmlns:svg="http://www.w3.org/2000/svg">
<defs <defs
id="defs1" /> id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g <g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1"> id="g1">
<image <image
width="2048" width="2048"

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

-14
View File
@@ -7,26 +7,12 @@
width="169" width="169"
height="169" height="169"
viewBox="0 0 169 169" viewBox="0 0 169 169"
sodipodi:docname="image-removebg-preview.png"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"> xmlns:svg="http://www.w3.org/2000/svg">
<defs <defs
id="defs1" /> id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g <g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1"> id="g1">
<image <image
width="169" width="169"

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

@@ -7,26 +7,12 @@
width="973" width="973"
height="973" height="973"
viewBox="0 0 973 973" viewBox="0 0 973 973"
sodipodi:docname="JavaScript.png"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"> xmlns:svg="http://www.w3.org/2000/svg">
<defs <defs
id="defs1" /> id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g <g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1"> id="g1">
<image <image
width="973" width="973"

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

-14
View File
@@ -7,26 +7,12 @@
width="2560" width="2560"
height="1381" height="1381"
viewBox="0 0 2560 1381" viewBox="0 0 2560 1381"
sodipodi:docname="PHP.png"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"> xmlns:svg="http://www.w3.org/2000/svg">
<defs <defs
id="defs1" /> id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g <g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1"> id="g1">
<image <image
width="2560" width="2560"

Before

Width:  |  Height:  |  Size: 247 KiB

After

Width:  |  Height:  |  Size: 246 KiB

-14
View File
@@ -7,26 +7,12 @@
width="110" width="110"
height="110" height="110"
viewBox="0 0 110 110" viewBox="0 0 110 110"
sodipodi:docname="Pyhton.png"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"> xmlns:svg="http://www.w3.org/2000/svg">
<defs <defs
id="defs1" /> id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g <g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1"> id="g1">
<image <image
width="110" width="110"

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 109 KiB

-14
View File
@@ -7,26 +7,12 @@
width="301" width="301"
height="299" height="299"
viewBox="0 0 301 299" viewBox="0 0 301 299"
sodipodi:docname="SQL.png"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"> xmlns:svg="http://www.w3.org/2000/svg">
<defs <defs
id="defs1" /> id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g <g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1"> id="g1">
<image <image
width="301" width="301"

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 56 KiB

+4 -4
View File
@@ -1,8 +1,8 @@
import './App.css' import './App.css'
import { Routes, Route, Link } from 'react-router-dom'; import { Routes, Route } from 'react-router-dom';
import HomePage from './pages/HomePage.jsx'; import HomePage from './pages/Home/HomePage.jsx';
import ProjectsPage from './pages/ProjectsPage'; import ProjectsPage from './pages/Projects/ProjectsPage.jsx';
import ProjectDetailsPage from "./pages/ProjectDetailsPage.jsx"; import ProjectDetailsPage from "./pages/ProjectDetails/ProjectDetailsPage.jsx";
function App() { function App() {
+1 -1
View File
@@ -3,7 +3,7 @@ import "./Projects.css"
import React, {useEffect, useState} from "react"; import React, {useEffect, useState} from "react";
import {Link, useLocation} from "react-router-dom"; import {Link, useLocation} from "react-router-dom";
import NavBar from "../NavBar/NavBar.jsx"; import NavBar from "../NavBar/NavBar.jsx";
import Filter from "../Filter/Filter.jsx"; import Filter from "../../pages/Projects/components/Filter/Filter.jsx";
function Projects() { function Projects() {
const [projects, setProjects] = useState([]); const [projects, setProjects] = useState([]);
@@ -1,10 +1,10 @@
import {useEffect, useState} from 'react'; // 1. Import useEffect import {useEffect} from 'react';
import { useLocation } from 'react-router-dom'; // 2. Import useLocation import { useLocation } from 'react-router-dom';
import Home from '../components/Home/Home.jsx'; import Home from './components/Home/Home.jsx';
import Experiences from '../components/Experiences/Experiences.jsx'; import Experiences from './components/Experiences/Experiences.jsx';
import Projects from '../components/Projects/Projects.jsx'; import Projects from '../../components/Projects/Projects.jsx';
import Skills from '../components/Skills/Skills.jsx'; import Skills from './components/Skills/Skills.jsx';
import Footer from '../components/Footer/Footer.jsx'; import Footer from '../../components/Footer/Footer.jsx';
function HomePage() { function HomePage() {
const location = useLocation(); const location = useLocation();
@@ -1,6 +1,6 @@
import './Home.css'; import './Home.css';
import Background from "../thirdParty/Background/Background.jsx"; import Background from "../../../../components/thirdParty/Background/Background.jsx";
import NavBar from "../NavBar/NavBar.jsx"; import NavBar from "../../../../components/NavBar/NavBar.jsx";
function Home() { function Home() {
return ( return (
@@ -13,7 +13,7 @@ function Home() {
Passionate about development, I am currently looking Passionate about development, I am currently looking
for an opportunity to put my skills into practice and continue learning. for an opportunity to put my skills into practice and continue learning.
</p> </p>
<a href="/assets/documents/CV.pdf" target="_blank" className="btn">Download my CV</a> <a href="/assets/documents/josserand_giovanni_cv.pdf" target="_blank" className="btn">See my CV</a>
</section> </section>
); );
@@ -1,8 +1,8 @@
.experience-card { .experience-card {
position: relative; position: relative;
width: 100%; width: 90%;
margin-bottom: 3rem; margin-bottom: 3rem;
padding: 1.5rem; padding: 1.5em;
display: flex; display: flex;
gap: 6rem; gap: 6rem;
justify-content: center; justify-content: center;
@@ -1,5 +1,5 @@
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import SkillCard from "../SkillCard/SkillCard.jsx"; import SkillCard from "../../../../components/SkillCard/SkillCard.jsx";
import "./Skills.css"; import "./Skills.css";
function Skills() { function Skills() {
@@ -1,8 +1,7 @@
import { useParams } from "react-router-dom"; import { useParams } from "react-router-dom";
import React, { useEffect, useState } from "react"; import React, { useEffect, useState } from "react";
import NavBar from "../components/NavBar/NavBar.jsx"; import ProjectDetails from "./components/ProjectDetails/ProjectDetails.jsx";
import ProjectDetails from "../components/ProjectDetails/ProjectDetails.jsx"; import Footer from "../../components/Footer/Footer.jsx";
import Footer from "../components/Footer/Footer.jsx";
function ProjectDetailsPage() { function ProjectDetailsPage() {
const { id } = useParams(); const { id } = useParams();
@@ -1,7 +1,7 @@
import "./ProjectDetails.css" import "./ProjectDetails.css"
import SkillCard from "../SkillCard/SkillCard.jsx"; import SkillCard from "../../../../components/SkillCard/SkillCard.jsx";
import React, {useEffect, useState} from "react"; import React, {useEffect, useState} from "react";
import NavBar from "../NavBar/NavBar.jsx"; import NavBar from "../../../../components/NavBar/NavBar.jsx";
import ReactMarkdown from 'react-markdown'; import ReactMarkdown from 'react-markdown';
import remarkGfm from 'remark-gfm'; import remarkGfm from 'remark-gfm';
import {useNavigate} from "react-router-dom"; import {useNavigate} from "react-router-dom";
@@ -1,5 +1,5 @@
import Projects from "../components/Projects/Projects.jsx"; import Projects from "../../components/Projects/Projects.jsx";
import Footer from "../components/Footer/Footer.jsx"; import Footer from "../../components/Footer/Footer.jsx";
function ProjectsPage() { function ProjectsPage() {
return ( return (