portfolio created

master
Mohamed HASSANI 1 year ago
commit 9179ff296e

@ -0,0 +1,40 @@
const burgerButton = document.getElementsByClassName("burger-button")[0];
const menu = document.querySelector("header > .menu");
let menuCollapsed = false;
const menuLinks = document.getElementsByClassName("link");
const openMenu = () => {
menuCollapsed = true;
burgerButton.src = "assets/img/close.svg";
burgerButton.style.width = "25px";
menu.style.visibility = "visible";
menu.style.opacity = "1";
};
const closeMenu = () => {
menuCollapsed = false;
burgerButton.style.width = "35px";
burgerButton.src = "assets/img/burger.svg";
menu.style.visibility = "hidden";
menu.style.opacity = "0";
};
burgerButton.addEventListener("click", () => {
if (menuCollapsed === false) {
openMenu();
} else {
closeMenu();
}
});
for (let i = 0; i < menuLinks.length; i++) {
menuLinks[i].addEventListener("click", () => {
if (menuCollapsed === true) {
closeMenu();
}
});
}
const seeMoreProjectsButton = document.querySelector('#see-more-projects')
const seeMoreProjectsContent = document.querySelector('.more-projects__container')
seeMoreProjectsButton.addEventListener('click', () => seeMoreProjectsContent.classList.toggle('more-projects__container--show'))

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="233.549683248" height="428.174419289" viewBox="0 0 300 550" style="enable-background:new 0 0 300 550;" xml:space="preserve">
<path style="fill:#5382A1;" d="M285.104,430.945h-2.038v-1.14h5.486v1.14h-2.024v5.688h-1.424V430.945z M296.046,431.242h-0.032
l-2.019,5.392h-0.924l-2.006-5.392h-0.025v5.392h-1.342v-6.828h1.975l1.86,4.835l1.854-4.835h1.968v6.828h-1.31V431.242z"/>
<path style="fill:#5382A1;" d="M102.681,291.324c0,0-14.178,8.245,10.09,11.035c29.4,3.354,44.426,2.873,76.825-3.259
c0,0,8.518,5.341,20.414,9.967C137.38,340.195,45.634,307.264,102.681,291.324"/>
<path style="fill:#5382A1;" d="M93.806,250.704c0,0-15.902,11.771,8.384,14.283c31.406,3.24,56.208,3.505,99.125-4.759
c0,0,5.936,6.018,15.27,9.309C128.771,295.215,30.962,271.562,93.806,250.704"/>
<path style="fill:#F8981D;" d="M168.625,181.799c17.896,20.604-4.702,39.145-4.702,39.145s45.441-23.458,24.572-52.833
c-19.491-27.394-34.438-41.005,46.479-87.934C234.974,80.177,107.961,111.899,168.625,181.799"/>
<path style="fill:#5382A1;" d="M264.684,321.369c0,0,10.492,8.645-11.555,15.333c-41.923,12.7-174.488,16.535-211.314,0.506
c-13.238-5.759,11.587-13.751,19.396-15.428c8.144-1.766,12.798-1.437,12.798-1.437c-14.722-10.371-95.157,20.364-40.857,29.166
C181.236,373.524,303.095,338.695,264.684,321.369"/>
<path style="fill:#5382A1;" d="M109.499,208.617c0,0-67.431,16.016-23.879,21.832c18.389,2.462,55.047,1.905,89.193-0.956
c27.906-2.354,55.927-7.359,55.927-7.359s-9.84,4.214-16.959,9.075c-68.475,18.009-200.756,9.631-162.674-8.79
C83.313,206.851,109.499,208.617,109.499,208.617"/>
<path style="fill:#5382A1;" d="M230.462,276.231c69.608-36.171,37.424-70.931,14.96-66.248c-5.506,1.146-7.961,2.139-7.961,2.139
s2.044-3.202,5.948-4.588c44.441-15.624,78.619,46.081-14.346,70.52C229.063,278.055,230.14,277.092,230.462,276.231"/>
<path style="fill:#F8981D;" d="M188.495,4.399c0,0,38.55,38.563-36.563,97.862c-60.233,47.568-13.735,74.69-0.025,105.678
c-35.159-31.722-60.961-59.647-43.651-85.637C133.663,84.151,204.049,65.654,188.495,4.399"/>
<path style="fill:#5382A1;" d="M116.339,374.246c66.815,4.277,169.417-2.373,171.847-33.988c0,0-4.671,11.985-55.219,21.503
c-57.028,10.732-127.364,9.479-169.081,2.601C63.887,364.361,72.426,371.43,116.339,374.246"/>
<path style="fill:#5382A1;" d="M105.389,495.048c-6.303,5.467-12.96,8.536-18.934,8.536c-8.527,0-13.134-5.113-13.134-13.314
c0-8.871,4.936-15.357,24.739-15.357h7.328V495.048 M122.781,514.671v-60.742c0-15.517-8.85-25.756-30.188-25.756
c-12.457,0-23.369,3.076-32.238,6.999l2.56,10.752c6.983-2.563,16.022-4.949,24.894-4.949c12.292,0,17.58,4.949,17.58,15.181v7.677
h-6.135c-29.865,0-43.337,11.593-43.337,28.994c0,15.017,8.878,23.553,25.594,23.553c10.745,0,18.766-4.436,26.264-10.928
l1.361,9.22H122.781z"/>
<path style="fill:#5382A1;" d="M180.825,514.671h-21.692l-26.106-84.96h18.943l16.199,52.2l3.601,15.699
c8.195-22.698,13.991-45.726,16.89-67.899h18.427C202.15,457.688,193.266,488.396,180.825,514.671"/>
<path style="fill:#5382A1;" d="M264.038,495.048c-6.315,5.467-12.984,8.536-18.958,8.536c-8.512,0-13.131-5.113-13.131-13.314
c0-8.871,4.948-15.357,24.749-15.357h7.34V495.048 M281.428,514.671v-60.742c0-15.517-8.872-25.756-30.185-25.756
c-12.466,0-23.382,3.076-32.247,6.999l2.556,10.752c6.986-2.563,16.042-4.949,24.907-4.949c12.283,0,17.579,4.949,17.579,15.181
v7.677h-6.145c-29.874,0-43.34,11.593-43.34,28.994c0,15.017,8.871,23.553,25.584,23.553c10.751,0,18.769-4.436,26.28-10.928
l1.366,9.22H281.428z"/>
<path style="fill:#5382A1;" d="M36.847,529.099c-4.958,7.239-12.966,12.966-21.733,16.206l-8.587-10.105
c6.673-3.424,12.396-8.954,15.055-14.105c2.3-4.581,3.252-10.485,3.252-24.604v-96.995h18.478v95.666
C43.311,514.038,41.802,521.663,36.847,529.099"/>
</svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

@ -0,0 +1,4 @@
<svg width="70" height="21" viewBox="0 0 70 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<line y1="2.5" x2="70" y2="2.5" stroke="#D1FF00" stroke-width="5"/>
<line y1="18.5" x2="70" y2="18.5" stroke="#D1FF00" stroke-width="5"/>
</svg>

After

Width:  |  Height:  |  Size: 241 B

@ -0,0 +1,4 @@
<svg width="58" height="54" viewBox="0 0 58 54" fill="none" xmlns="http://www.w3.org/2000/svg">
<line x1="2.23223" y1="51.7297" x2="51.7297" y2="2.2322" stroke="#D1FF00" stroke-width="5"/>
<line x1="5.76777" y1="2.23223" x2="55.2652" y2="51.7297" stroke="#D1FF00" stroke-width="5"/>
</svg>

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 686 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg">
<text y="1.8rem" font-size="1.8rem">
👨‍💻
</text>
</svg>

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 KiB

@ -0,0 +1,789 @@
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap");
:root {
--dark: #333333;
--white: #ffffff;
--light-grey: #f0f0f0;
--primary-color: #e24444;
--secondary-color: #df9f6c;
}
@font-face {
font-family: "MonumentExtend";
src: url("./fonts/MonumentExtended-Regular.otf");
font-weight: normal;
}
@font-face {
font-family: "MonumentExtend";
src: url("./fonts/MonumentExtended-Ultrabold.otf");
font-weight: bold;
}
::-webkit-scrollbar {
width: 10px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
border: var(--dark) 0.5px solid;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "MonumentExtend", sans-serif;
scroll-behavior: smooth;
}
body {
background-color: var(--light-grey);
color: var(--dark);
}
h1,
h2,
h3,
h4,
h5,
h6 {
text-transform: uppercase;
color: var(--dark);
}
a {
text-decoration: none;
color: var(--primary-color);
text-transform: uppercase;
transition: border 400ms;
}
a:hover {
color: var(--dark);
border-color: var(--dark);
}
.link {
border: transparent 3px solid;
border-right: none;
border-left: none;
padding: 10px 0px;
}
button {
background-color: transparent;
outline: none;
padding: 10px 15px;
border: transparent solid 1px;
text-transform: uppercase;
cursor: pointer;
font-size: 16px;
margin: 8px 0;
transition: 400ms color, 400ms background, 400ms border;
}
.btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
color: var(--white);
}
.btn-primary:hover {
background-color: transparent;
color: var(--primary-color);
}
.btn-secondary {
background-color: var(--light-grey);
color: var(--primary-color);
border-color: var(--primary-color);
}
.btn-secondary:hover {
color: var(--dark);
border-color: var(--dark);
}
p {
font-family: "Inter", sans-serif;
color: var(--dark);
font-size: 14px;
font-size: 20px;
}
header {
width: 100%;
border-bottom: var(--dark) solid 0.5px;
display: flex;
justify-content: space-between;
align-items: center;
padding: 16px 35px;
position: fixed;
background-color: var(--white);
backdrop-filter: blur(20px);
z-index: 2;
}
header > h1 {
font-size: 30px;
}
.burger-button {
display: none;
}
.menu > ul {
list-style: none;
display: flex;
gap: 20px;
}
main {
scroll-snap-type: proximity;
}
section {
scroll-snap-align: start;
}
#home {
display: grid;
grid-template-columns: 2fr 1fr;
align-items: center;
gap: 50px;
padding: 0 50px;
width: 100%;
height: 100vh;
background: linear-gradient(90deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.9)),
url("img/cover-main-bg.jpg");
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
#home > div:first-child > h2 {
font-size: 70px;
margin-bottom: 20px;
}
.back-card {
background-color: var(--primary-color);
color: var(--white);
padding: 0px 5px;
font-weight: normal;
}
#home > div:first-child > p {
width: 90%;
}
#home > div:last-child {
height: 100%;
width: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: flex-end;
}
#home > div:last-child > .social-media {
font-size: 14px;
margin-bottom: 50px;
text-align: end;
z-index: 1;
}
#home > div:last-child > .social-media > a {
border-bottom: transparent 3px solid;
margin-left: 15px;
padding: 10px 0;
font-size: 16px;
}
#home > div:last-child > .social-media > a:hover {
border-color: var(--dark);
}
#projects {
display: grid;
grid-template-columns: 35% 32.5% 32.5%;
grid-template-rows: 20vh 100px 70vh;
margin-top: -20vh;
text-align: center;
column-gap: 15px;
padding: 50px;
z-index: 0;
width: 100%;
}
.tech-icons {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 5%;
}
.tech-icons img {
height: 50px; /* ajustez la taille selon vos besoins */
transition: transform 0.3s;
}
.tech-icons img:hover {
transform: scale(1.1);
}
#experiences > h2{
font-size: 52px;
text-align: center;
column-gap: 15px;
padding: 50px;
z-index: 0;
width: 100%;
}
#projects > h2 {
font-size: 52px;
grid-column: 2 / 4;
grid-row: 2 / 3;
}
.project {
background: linear-gradient(rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.9)),
url("img/bg.jpg");
background-repeat: no-repeat;
background-position: center;
background-size: cover;
display: flex;
flex-direction: column;
text-align: left;
justify-content: flex-end;
padding: 25px;
grid-row: 3 / 4;
transition: 400ms ease-in-out;
border: var(--primary-color) 0px solid;
border-radius: 2%;
}
.project:nth-child(2) {
background: linear-gradient(rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.9)),
url("img/athletix\ mockup.png");
background-repeat: no-repeat;
background-position: top center;
background-size: cover;
}
.project:nth-child(3) {
background: linear-gradient(rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.9)),
url("img/rdash.png");
background-repeat: no-repeat;
background-position: center center;
background-size: contain;
}
.project:nth-child(4) {
background: linear-gradient(rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.9)),
url("img/Reflection.png");
background-repeat: no-repeat;
background-position: top center;
background-size: cover;
}
.experience {
background: linear-gradient(rgba(192, 255, 163, 0.3), rgba(140, 237, 250, 0.9));
background-repeat: no-repeat;
background-position: center;
background-size: cover;
display: flex;
flex-direction: column;
text-align: left;
justify-content: flex-end;
padding: 25px;
grid-row: 3 / 4;
transition: 400ms ease-in-out;
border: var(--primary-color) 0px solid;
}
.project:hover {
cursor: pointer;
transition: 400ms ease-in-out;
border: var(--primary-color) 25px solid;
}
.project > h2 {
font-size: 35px;
width: auto;
}
.project > p {
text-transform: none;
font-size: 16px;
margin-top: 10px;
transition: 400ms ease;
background: -webkit-linear-gradient(
rgba(0, 0, 0, 0.8),
rgba(0, 0, 0, 0.2)
);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
#projects > a:nth-child(2) {
grid-row: 1 / 4;
}
#more-projects {
margin: 10px auto 0;
text-align: center;
}
#more-projects .back-card {
font-size: 24px;
padding: 10px 30px;
border: var(--primary-color) solid 1px;
transition: 400ms ease;
}
#more-projects .back-card:hover {
background: transparent;
color: var(--primary-color);
}
#skills {
margin-top: 100px;
margin-right: auto;
margin-bottom: 10px;
margin-left: auto;
text-align: center;
}
#skills > h2 {
font-size: 60px;
}
#skills > p {
width: 75%;
margin: auto;
}
.tech-stack {
height: 90px;
overflow: hidden;
position: relative;
background-color: var(--primary-color);
color: var(--dark);
}
.tech-stack > div > h3 {
color: var(--dark);
font-size: 24px;
font-weight: normal;
white-space: nowrap;
}
.tech-stack > div {
padding: 20px;
position: absolute;
top: 0;
left: 0;
height: 100%;
line-height: 50px;
text-align: center;
/* Starting position */
-moz-transform: translateX(100%);
-webkit-transform: translateX(100%);
transform: translateX(100%);
animation: scroll-left 30s linear infinite;
}
#contact {
margin: auto;
padding: 25px 0;
text-align: center;
height: 70vh;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
#contact > h2 {
font-size: 45px;
}
#contact > a:first-of-type {
padding: 40px 0 0;
color: var(--dark);
display: block;
font-size: 52px;
}
#contact > a:first-of-type:hover {
color: var(--primary-color);
}
#contact > a {
font-size: 30px;
transition: 400ms;
}
.more-projects__container {
padding-top: 80px;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 15px;
width: 95%;
margin: auto;
display: none;
}
.more-projects__container--show {
display: grid !important;
}
.more-projects__container > .project {
grid-row: initial;
height: 600px;
}
@keyframes scroll-left {
0% {
-moz-transform: translateX(100%); /* Browser bug fix */
-webkit-transform: translateX(100%); /* Browser bug fix */
transform: translateX(100%);
}
100% {
-moz-transform: translateX(-100%); /* Browser bug fix */
-webkit-transform: translateX(-100%); /* Browser bug fix */
transform: translateX(-100%);
}
}
#certifications {
padding: 35px 75px 45px;
}
#certifications > h2 {
font-size: 52px;
}
#certifications > p {
width: 90%;
}
.courses-repository {
display: flex;
align-items: flex-start;
margin-top: 30px;
}
.courses-repository > ul {
list-style: none;
}
.courses-repository > ul > a > li {
font-size: 18px;
transition: 400ms ease;
border: var(--primary-color) 1px solid;
padding: 15px;
}
.courses-repository > ul > a > li:hover {
background-color: var(--primary-color);
color: var(--white);
}
/* Tablet */
@media screen and (max-width: 992px) {
body {
max-width: 100%;
}
header > .menu {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background: var(--light-grey);
visibility: hidden;
opacity: 0;
transition: 400ms ease-in-out;
}
.menu > ul {
flex-direction: column;
text-align: center;
z-index: 0;
}
.link {
font-size: 40px;
}
.burger-button {
z-index: 1;
}
#home {
grid-template-columns: 1fr;
grid-template-rows: 80% auto;
text-align: center;
}
#home > div:first-child > p {
margin: auto;
width: 80%;
}
#home > div:last-child {
align-items: center;
}
.burger-button {
display: inline;
}
#projects {
margin: 20px 0 40px;
grid-template-columns: 100vw;
grid-template-rows: 10% 40% 25% 25%;
height: 1200px;
row-gap: 15px;
padding: 50px 10px;
}
#projects > h2 {
grid-column: 1 / 2;
grid-row: 1 / 2;
}
#projects > .project:nth-child(2) {
grid-column: 1 / 2;
grid-row: 2 / 3;
}
#projects > .project:nth-child(3) {
grid-column: 1 / 2;
grid-row: 4 / 5;
}
.project {
width: 95%;
margin: -40px 0 45px 8px;
}
#skills {
margin-bottom: 100px;
}
#skills > p {
width: 90%;
}
#certifications {
padding: 30px 25px;
}
#certifications > p {
width: 100%;
}
.courses-repository {
display: flex;
flex-direction: column;
}
.courses-repository > ul {
width: 100%;
}
#contact {
margin: 100px auto;
padding: 0 25px;
width: 100%;
}
#contact > h2 {
font-size: 34px;
}
#contact > a:first-of-type {
font-size: 30px;
padding: 25px 0 0;
}
#contact > a {
font-size: 24px;
}
}
/* Mobile */
@media screen and (max-width: 600px) {
header {
padding: 15px 20px 15px 10px;
}
header > h1 {
padding: 0;
font-size: 18px;
}
.burger-button {
width: 28px !important;
}
.link {
font-size: 30px;
}
button {
font-size: 10px;
}
h2 {
font-size: 28px !important;
}
p {
font-size: 16px !important;
}
#home {
height: 80vh;
padding: 0;
grid-template-rows: auto 5%;
}
#home > div:first-child > h2 {
font-size: 36px !important;
}
#home > div:first-child > p {
width: 90%;
margin: auto;
}
#home > div:last-child > .social-media {
margin: 30px;
}
#home > div:last-child > .social-media > a {
font-size: 14px;
text-align: center;
margin: 0;
padding: 0;
}
#home > div:first-child > a:first-of-type {
display: none;
}
#projects {
grid-template-rows: 5% 40% 25% 25%;
margin: 0;
padding-bottom: 0;
}
.project {
margin: 0;
padding: 10px;
}
#more-projects > a {
font-size: 14px !important;
}
#skills {
margin: 100px 0 80px;
}
#skills > h2 {
font-size: 34px !important;
}
#certifications {
text-align: center;
}
#certifications > h2 {
font-size: 26px !important;
}
#contact {
margin: 30px auto;
}
#contact > h2 {
font-size: 24px !important;
}
#contact > a:first-of-type {
font-size: 100%;
}
#contact > a {
font-size: 14px;
}
}
.ease-in-out {
transition-timing-function: cubic-bezier(.4,0,.2,1);
}
.duration-1000 {
transition-duration: 1s;
}
.transition-all {
transition-property: all;
transition-timing-function: cubic-bezier(.4,0,.2,1);
transition-duration: .15s;
}
.text-gray-500 {
--tw-text-opacity: 1;
color: rgb(107 114 128 / var(--tw-text-opacity));
}
.font-medium {
font-weight: 500;
}
.text-xl {
font-size: 1.25rem;
line-height: 1.75rem;
}
.py-1 {
padding-top: .25rem;
padding-bottom: .25rem;
}
.px-5 {
padding-left: 1.25rem;
padding-right: 1.25rem;
}
.bg-grey-400 {
--tw-bg-opacity: 1;
background-color: rgb(20 19 20 / var(--tw-bg-opacity));
}
.border-grey-300 {
--tw-border-opacity: 1;
border-color: rgb(36 36 36 / var(--tw-border-opacity));
}
.border {
border-width: .5px;
}
.rounded-full {
border-radius: 9999px;
}
.justify-center {
justify-content: center;
}
.items-center {
align-items: center;
}
.flex {
display: flex;
}

@ -0,0 +1,153 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="assets/style.css" />
<title>
Mohamed Hassani | Développeur Informatique
</title>
<meta name="description"
content="Vous cherchez un développeur Informatique vos projets backend ou mobile ou même web ? Je suis Mohamed Hassani, passionné par la technologie et le développement." />
<link rel="icon" href="assets/img/favicon.svg" />
<meta property="og:title" content="🧑‍💻 Mohamed Hassani: Développeur Informatique"/>
<meta property="og:type" content="website" />
<meta property="og:description" content="👋 Bonjour, je suis Mohamed Hassani, développeur informatique."/>
<meta property="og:url" content="https://votresiteweb.com/" />
</head>
<body>
<header>
<h1>Mohamed Hassani 👨‍💻</h1>
<img class="burger-button" loading="lazy" src="assets/img/burger.svg" width="35px" alt="Menu" />
<nav class="menu">
<ul>
<a class="link" href="#home">
<li>À propos de moi</li>
</a>
<a class="link" href="#projects">
<li>Réalisations</li>
</a>
<a class="link" href="#skills">
<li>Compétences</li>
</a>
<a class="link" href="#contact">
<li>Contact</li>
</a>
</ul>
</nav>
</header>
<main>
<section id="home">
<div>
<h2>Développeur Informatique.</h2>
<p style="color: white; background-color: rgba(0, 0, 0, 0.7); padding: 10px; border-radius: 5px; display: flex; align-items: center;">
<img src="assets/img/profil.jpg" alt="Photo de Mohamed Hassani" style="width: 100%; max-width: 250px; border-radius: 50%; margin-right: 20px;">
<span style="font-family: 'Inter', sans-serif;">
Bonjour, Je suis Mohamed Hassani, développeur Informatique. <br>
Actuellement étudiant en troisième année de BUT Informatique à l'Université Clermont Auvergne. J'ai un intérêt pour le développement web, le développement mobile, la science des données, l'apprentissage automatique, les microservices, le clean code et les bonnes pratiques et surtout le design.
</span>
</p>
<br />
<a href="#contact">
<button class="btn-primary">Contact</button>
</a>
<a href="assets/cv.pdf" download>
<button class="btn-secondary">Télécharger le CV</button>
</a>
</div>
<div>
<div class="social-media">
<a href="https://www.linkedin.com/in/mohamed-hassani-285243251/" target="_blank">LinkedIn</a>
<!-- <a href="https://github.com/votreprofil" target="_blank">Github</a> -->
</div>
</div>
</section>
<section id="projects">
<h2>Réalisations 🏗️</h2>
<a class="project" href="https://codefirst.iut.uca.fr/git/AthletiX" target="_blank">
<h2>💪 <span class="back-card">AthletiX</span></h2>
<p style="color: white; background-color: rgba(0, 0, 0, 0.7); padding: 10px; border-radius: 5px;">
AthletiX est une application mobile développée en Flutter pour les sportifs, intégrant des exercices de musculation et des fonctionnalités de partage d'expérience.
</p>
</a>
<a class="project" href="https://codefirst.iut.uca.fr/git/R-Dash" target="_blank">
<h2>🏎️ <span class="back-card">R-Dash</span></h2>
<p style="color: white; background-color: rgba(0, 0, 0, 0.7); padding: 10px; border-radius: 5px;">
R-Dash est une application mobile développée en React Native permettant aux pilotes de course de consulter et comparer les données de performance de leurs voitures.
</p>
</a>
<a class="project" href="https://github.com/votreprofil/projet3" target="_blank">
<h2>🎮 <span class="back-card">Reflection</span></h2>
<p style="color: white; background-color: rgba(0, 0, 0, 0.7); padding: 10px; border-radius: 5px;">
Reflection est un jeu vidéo d'horreur réalisé avec le moteur de jeu Unity et C# pour le code, le jeu se déroule dans un manoir hanté et met en scène un monstre contrôlé par une intelligence artificielle.
</p>
</a>
</section>
<section id="experiences">
<h2>Expériences professionnelles</h2>
<div class="experience" style="padding: 5%; margin-left: 5%; margin-right: 5%;">
<div class="flex flex-row gap-4" style="gap: 4%;">
<div class="flex justify-center items-center px-5 py-1 rounded-full border border-grey-300 text-xl text-gray-500 font-medium hover:scale-105 transition-all ease-in-out duration-1000">2024</div>
<div class="flex justify-center items-center px-5 py-1 rounded-full border border-grey-300 text-xl text-gray-500 font-medium hover:scale-105 transition-all ease-in-out duration-1000">1 an et 6 mois</div>
</div>
<div class="flex flex-row items-center" style="margin-top: 20px;">
<img src="assets/img/metex.png" alt="logo de l'entreprise Metabolic Explorer" style="width: 5%; margin-right: 10px;">
<span style="font-size: 1.5rem;">Metabolic Explorer</span>
</div>
<span class="text-xl text-gray-500" role="heading">
Alternance d'un an + Stage de 10 semaines.<br><br>
Jai eu lopportunité de rejoindre une entreprise dynamique et agréable qui ma permis de me professionnaliser dans un contexte favorable. Jai travaillé en tant que développeur fullstack sur un logiciel de laboratoire (LIMS).<br><br>
Ma mission principale consistait à laméliorer et maintenir un logiciel LIMS (Application web en Java) utilisé par des scientifiques.<br><br>
Jai pu mettre en pratique mes compétences en gestion de base de données structurée, en algorithmique et en design pour toute la partie vue.
</span>
</div>
</section>
<section id="skills">
<h2>Compétences</h2>
<br />
<p>
Mes compétences incluent le développement informatique dans sa globalité, dont le développement d'applications web et mobile avec plusieurs technologies. J'ai également de l'expérience dans la gestion des systèmes et réseau. En outre, je maîtrise les bases de données SQL et NoSQL, ainsi que divers outils et frameworks tels que Docker, Kubernetes, et CI/CD.
</p>
<br /><br />
<div class="tech-stack">
<div>
<h3>
✴ C# ✴ Java ✴ Flutter ✴ Swift ✴ React Native ✴ HTML ✴ CSS ✴ JavaScript ✴ SQL ✴ NoSQL ✴ Docker ✴ Kubernetes ✴ Git ✴ et plus encore ✴
</h3>
</div>
</div>
<div class="tech-icons" style="margin-top: 1%;">
<img src="assets/img/Logo_C_sharp.svg.png" alt="C#" title="C#">
<img src="assets/img/Java_programming_language_logo.svg" alt="Java" title="Java">
<img src="assets/img/72AF9324-C50A-42F9-9236-C21DB13B90D9.png" alt="Flutter" title="Flutter">
<img src="assets/img/Swift-Logo.png" alt="Swift" title="Swift">
<img src="assets/img/React-icon.svg.png" alt="React Native" title="React Native">
<img src="assets/img/HTML5_Logo_512.png" alt="HTML" title="HTML">
<img src="assets/img/css.png" alt="CSS" title="CSS">
<img src="assets/img/js.png" alt="JavaScript" title="JavaScript">
<img src="assets/img/Docker-Logo.png" alt="Docker" title="Docker">
</div>
</section>
</main>
<footer id="contact">
<h2> Créons <span class="back-card">ensemble</span></h2>
<br />
<p>
N'hésitez pas à me contacter pour que nous puissions travailler ensemble et créer des choses incroyables.
</p>
<a href="mailto:Mohamed.Hassani.2002@outlook.fr">Mohamed.Hassani.2002@outlook.fr</a>
<a href="tel:+33758308886"><span class="back-card">{+33}</span> 7 58 30 88 86</a>
</footer>
<script src="app.js"></script>
</body>
</html>
Loading…
Cancel
Save