diff --git a/.prettierignor b/.prettierignor new file mode 100644 index 0000000..e13c8ee --- /dev/null +++ b/.prettierignor @@ -0,0 +1,3 @@ +node_modules +build +dist \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..d4fed1f --- /dev/null +++ b/.prettierrc @@ -0,0 +1,7 @@ +{ + "semi": true, + "singleQuote": true, + "trailingComma": "es5", + "printWidth": 80, + "tabWidth": 2 +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 19d5feb..c41ec79 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,6 +21,7 @@ "eslint-plugin-react-hooks": "^5.1.0-rc.0", "eslint-plugin-react-refresh": "^0.4.9", "globals": "^15.9.0", + "prettier": "^3.3.3", "typescript": "^5.5.3", "typescript-eslint": "^8.0.1", "vite": "^5.4.1" @@ -2805,6 +2806,22 @@ "node": ">= 0.8.0" } }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", diff --git a/package.json b/package.json index 28fadf3..7e9b06a 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "eslint-plugin-react-hooks": "^5.1.0-rc.0", "eslint-plugin-react-refresh": "^0.4.9", "globals": "^15.9.0", + "prettier": "^3.3.3", "typescript": "^5.5.3", "typescript-eslint": "^8.0.1", "vite": "^5.4.1" diff --git a/public/assets/images/cdf.png b/public/assets/images/cdf.png new file mode 100644 index 0000000..a5263fa Binary files /dev/null and b/public/assets/images/cdf.png differ diff --git a/public/assets/images/serge.png b/public/assets/images/serge.png new file mode 100644 index 0000000..ea35d18 Binary files /dev/null and b/public/assets/images/serge.png differ diff --git a/src/App.css b/src/App.css index e07cb77..e578226 100644 --- a/src/App.css +++ b/src/App.css @@ -409,4 +409,103 @@ width: 100%; height: 50px; background-color: black; +} + +.project-header-container { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + gap: 1em; + margin: 2em 0; +} + +.project-header-container h1 { + font-size: 3em; + font-weight: 300; +} + +.project-header-card-list { + display: flex; + justify-content: center; + align-items: center; + flex-direction: row; + gap: 10em; +} + +.project-header-card { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + gap: 1em; + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1); + border-radius: 20px; + padding-right: 1em; +} + +.project-header-card h2 { + font-size: 2em; + font-weight: 300; + background-color: black; + color: white; + border-radius: 20px; + width: 105%; + text-align: center; +} + +.project-header-card-li { + list-style-type: none; +} + +.project-big-card { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + gap: 1em; + border-radius: 20px; + padding-right: 1em; + background-color: white; + color: black; + width: 50%; + padding: 5em; +} + +.project-big-card img { + width: 45%; + height: auto; +} + +.middle-div-project-big-card { + display: flex; + justify-content: center; + align-items: center; + flex-direction: row; + gap: 1em; + background-color: black; + color: white; + border-radius: 20px; + width: 75%; +} + +.middle-div-project-big-card img { + width: 55%; + height: auto; +} + +.down-div-project-big-card h2 { + color: #0693E3; +} + +.project-small-card { + background-color: white; + color: black; + border-radius: 20px; + width: 50%; + display: flex; + flex-direction: row; + justify-content: space-evenly; + align-items: center; + gap: 2em; } \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index e4f6cce..9ea5b96 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,22 +1,24 @@ -import React from "react"; -import "./App.css"; -import { BrowserRouter as Router, Route, Routes } from "react-router-dom"; -import Home from "./pages/Home"; -import NotFound from "./pages/404"; -import Partenaires from "./pages/Partenaires.tsx"; +import React from 'react'; +import './App.css'; +import { BrowserRouter as Router, Route, Routes } from 'react-router-dom'; +import Home from './pages/Home'; +import NotFound from './pages/404'; +import Partenaires from './pages/Partenaires'; +import Projets from './pages/Projets'; const App: React.FC = () => { - return ( - -
- - } /> - } /> - } /> - -
-
- ); -} + return ( + +
+ + } /> + } /> + } /> + } /> + +
+
+ ); +}; -export default App; \ No newline at end of file +export default App; diff --git a/src/components/projectcard/projectcard.tsx b/src/components/projectcard/projectcard.tsx new file mode 100644 index 0000000..f8ddba6 --- /dev/null +++ b/src/components/projectcard/projectcard.tsx @@ -0,0 +1,56 @@ +import React from 'react'; + +interface ProjectBigCardProps { + imgtitle: string; + lefttext: { __html: string }; + rightimage: string; + downtitle: string; + downcontent: string; +} + +interface ProjectSmallCardProps { + img: string; + title: string; + content: string; +} + +export const ProjectBigCard: React.FC = ({ + imgtitle, + lefttext, + rightimage, + downtitle, + downcontent, +}) => { + return ( +
+ {imgtitle} +
+
+ {rightimage} +
+
+

{downtitle}

+

{downcontent}

+
+
+ ); +}; + +export const ProjectSmallCard: React.FC = ({ + img, + title, + content, +}) => { + return ( +
+ {img} +
+

{title}

+

{content}

+
+
+ ); +}; diff --git a/src/components/projetheader/projectheadercard.tsx b/src/components/projetheader/projectheadercard.tsx new file mode 100644 index 0000000..cdc2ce0 --- /dev/null +++ b/src/components/projetheader/projectheadercard.tsx @@ -0,0 +1,24 @@ +import React from 'react'; + +interface ProjectHeaderCardProps { + title: string; + content: string[]; +} + +export const ProjectHeaderCard: React.FC = ({ + title, + content, +}) => { + return ( +
+

{title}

+
    + {content.map((item, index) => ( +
  • + {item} +
  • + ))} +
+
+ ); +}; diff --git a/src/components/projetheader/projetheader.tsx b/src/components/projetheader/projetheader.tsx new file mode 100644 index 0000000..64f28a4 --- /dev/null +++ b/src/components/projetheader/projetheader.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { ProjectHeaderCard } from './projectheadercard.tsx'; + +export const ProjetsHeader: React.FC = () => { + return ( +
+

PROJETS

+

Vous retrouvez ici la liste des projets en cours et passé.

+
+ + +
+
+ ); +}; diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index da9816f..b626ae8 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -1,40 +1,124 @@ -import React from "react"; -import {Navbar} from "../components/navbar/navbar.tsx"; -import {MiddleText} from "../components/middletext/middletext.tsx"; -import {FromRightCard} from "../components/sidecard/fromrightcard.tsx"; -import {SocialNetworks} from "../components/socialnetwork/socialnetwork.tsx"; -import {FromLeftCardCarousel} from "../components/sidecard/fromleftcard.tsx"; -import {Carousel} from "../components/carousel/carousel.tsx"; -import {Team} from "../components/team/team.tsx"; -import {Footer} from "../components/footer/footer.tsx"; +import React from 'react'; +import { Navbar } from '../components/navbar/navbar.tsx'; +import { MiddleText } from '../components/middletext/middletext.tsx'; +import { FromRightCard } from '../components/sidecard/fromrightcard.tsx'; +import { SocialNetworks } from '../components/socialnetwork/socialnetwork.tsx'; +import { FromLeftCardCarousel } from '../components/sidecard/fromleftcard.tsx'; +import { Carousel } from '../components/carousel/carousel.tsx'; +import { Team } from '../components/team/team.tsx'; +import { Footer } from '../components/footer/footer.tsx'; const Home: React.FC = () => { - return ( - <> - -
- {"Modelec -
-
- {"Modelec -
-
- ELECTRONIQUE
MODELESIME
"}} text={{__html: "

Qui sommes-nous ?

Bienvenue ! Nous sommes Modelec, le club de robotique, électronique et modelisme de l'ISEN Nantes. Nous sommes une association étudiante qui a pour but de promouvoir la robotique, l'électronique et le modelisme auprès des étudiants de l'ISEN Nantes. Nous organisons des ateliers et des événements autour de ces thèmes. Nous participons également à la coupe de france de robotique où pour notre première participation en 2024 nous avons fini 14e sur 82.

CLUB 100% ETUDIANTS

"}}/> - 14 ème sur 82 équipes
1 ère participation

100% étudiants

"}} image={"/assets/images/serge-pixel.png"} className={"coupe-title"}/> -

Nos Réseaux

- - - ECOLE
D'INGENIEUR
"}} text={{__html: "

Notre actualité

Parce que les technologies du numérique sont partout, l’ISEN forme des ingénieurs aptes à répondre aux besoins des entreprises dans tous les secteurs d’activités. Sur un parc de 10 hectares, le campus est doté d'un restaurant. Depuis la rentrée 2021 les étudiants sont accueillis dans le nouveau bâtiment ISEN construit avec le soutien de la Région Pays de la Loire."}}/> -
-
-

Nos Projets

- -

L'équipe

- -
-