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">
<head>
<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" />
<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"
height="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="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
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
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1">
<image
width="1822"

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 157 KiB

-14
View File
@@ -7,26 +7,12 @@
width="1200"
height="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="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
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
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1">
<image
width="1200"

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

-14
View File
@@ -7,26 +7,12 @@
width="2048"
height="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="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
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
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1">
<image
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"
height="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="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
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
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1">
<image
width="169"

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

@@ -7,26 +7,12 @@
width="973"
height="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="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
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
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1">
<image
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"
height="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="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
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
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1">
<image
width="2560"

Before

Width:  |  Height:  |  Size: 247 KiB

After

Width:  |  Height:  |  Size: 246 KiB

-14
View File
@@ -7,26 +7,12 @@
width="110"
height="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="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
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
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1">
<image
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"
height="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="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
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
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1">
<image
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 { Routes, Route, Link } from 'react-router-dom';
import HomePage from './pages/HomePage.jsx';
import ProjectsPage from './pages/ProjectsPage';
import ProjectDetailsPage from "./pages/ProjectDetailsPage.jsx";
import { Routes, Route } from 'react-router-dom';
import HomePage from './pages/Home/HomePage.jsx';
import ProjectsPage from './pages/Projects/ProjectsPage.jsx';
import ProjectDetailsPage from "./pages/ProjectDetails/ProjectDetailsPage.jsx";
function App() {
+1 -1
View File
@@ -3,7 +3,7 @@ import "./Projects.css"
import React, {useEffect, useState} from "react";
import {Link, useLocation} from "react-router-dom";
import NavBar from "../NavBar/NavBar.jsx";
import Filter from "../Filter/Filter.jsx";
import Filter from "../../pages/Projects/components/Filter/Filter.jsx";
function Projects() {
const [projects, setProjects] = useState([]);
@@ -1,10 +1,10 @@
import {useEffect, useState} from 'react'; // 1. Import useEffect
import { useLocation } from 'react-router-dom'; // 2. Import useLocation
import Home from '../components/Home/Home.jsx';
import Experiences from '../components/Experiences/Experiences.jsx';
import Projects from '../components/Projects/Projects.jsx';
import Skills from '../components/Skills/Skills.jsx';
import Footer from '../components/Footer/Footer.jsx';
import {useEffect} from 'react';
import { useLocation } from 'react-router-dom';
import Home from './components/Home/Home.jsx';
import Experiences from './components/Experiences/Experiences.jsx';
import Projects from '../../components/Projects/Projects.jsx';
import Skills from './components/Skills/Skills.jsx';
import Footer from '../../components/Footer/Footer.jsx';
function HomePage() {
const location = useLocation();
@@ -1,6 +1,6 @@
import './Home.css';
import Background from "../thirdParty/Background/Background.jsx";
import NavBar from "../NavBar/NavBar.jsx";
import Background from "../../../../components/thirdParty/Background/Background.jsx";
import NavBar from "../../../../components/NavBar/NavBar.jsx";
function Home() {
return (
@@ -13,7 +13,7 @@ function Home() {
Passionate about development, I am currently looking
for an opportunity to put my skills into practice and continue learning.
</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>
);
@@ -1,8 +1,8 @@
.experience-card {
position: relative;
width: 100%;
width: 90%;
margin-bottom: 3rem;
padding: 1.5rem;
padding: 1.5em;
display: flex;
gap: 6rem;
justify-content: center;
@@ -1,5 +1,5 @@
import React, { useState, useEffect } from 'react';
import SkillCard from "../SkillCard/SkillCard.jsx";
import SkillCard from "../../../../components/SkillCard/SkillCard.jsx";
import "./Skills.css";
function Skills() {
@@ -1,8 +1,7 @@
import { useParams } from "react-router-dom";
import React, { useEffect, useState } from "react";
import NavBar from "../components/NavBar/NavBar.jsx";
import ProjectDetails from "../components/ProjectDetails/ProjectDetails.jsx";
import Footer from "../components/Footer/Footer.jsx";
import ProjectDetails from "./components/ProjectDetails/ProjectDetails.jsx";
import Footer from "../../components/Footer/Footer.jsx";
function ProjectDetailsPage() {
const { id } = useParams();
@@ -1,7 +1,7 @@
import "./ProjectDetails.css"
import SkillCard from "../SkillCard/SkillCard.jsx";
import SkillCard from "../../../../components/SkillCard/SkillCard.jsx";
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 remarkGfm from 'remark-gfm';
import {useNavigate} from "react-router-dom";
@@ -1,5 +1,5 @@
import Projects from "../components/Projects/Projects.jsx";
import Footer from "../components/Footer/Footer.jsx";
import Projects from "../../components/Projects/Projects.jsx";
import Footer from "../../components/Footer/Footer.jsx";
function ProjectsPage() {
return (