Merge branch 'refs/heads/main' into e2e

# Conflicts:
#	tsconfig.json
This commit is contained in:
2024-10-15 11:27:06 +02:00
13 changed files with 243 additions and 73 deletions

View File

@@ -1,4 +0,0 @@
name: "Default setup"
queries:
- javascript-security-and-quality.qls
- typescript-security-and-quality.qls

View File

@@ -1,4 +0,0 @@
name: "Default setup"
queries:
- javascript-security-and-quality.qls
- typescript-security-and-quality.qls

41
.github/workflows/codeQL.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: "CodeQL"
on:
push:
branches:
- '**'
pull_request:
branches:
- '**'
schedule:
- cron: '0 0 * * 0'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript', 'typescript' ]
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
- name: Autobuild
uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3

View File

@@ -56,4 +56,3 @@ jobs:
uploads: |
./dist => /var/www/modelec.club
dry-run: true
delete: true

View File

@@ -1,4 +1,5 @@
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';
//import { ScrollToTop } from './hooks/scrollToTop';
import React from 'react';
import './App.css';
@@ -13,11 +14,11 @@ import Projets from './pages/projets/Projets';
import Contact from './pages/contact/Contact';
const App: React.FC = () => {
return (<>
<Router>
<Navbar />
<div className="page">
return (
<>
<Router>
<Navbar />
<div className="page">
<Routes>
<Route path="/" element={<Home />} />
<Route path="/partenaires" element={<Partenaires />} />
@@ -25,10 +26,11 @@ const App: React.FC = () => {
<Route path="/contact" element={<Contact />} />
<Route path="*" element={<NotFound />} />
</Routes>
</div>
<Footer />
</Router>
</>);
</div>
<Footer />
</Router>
</>
);
};
export default App;

12
src/hooks/scrollToTop.tsx Normal file
View File

@@ -0,0 +1,12 @@
import { useEffect } from 'react';
import { useLocation } from 'react-router-dom';
export const ScrollToTop = () => {
const { pathname } = useLocation();
useEffect(() => {
window.scrollTo(0, 0);
}, [pathname]);
return null;
};

View File

@@ -1,10 +1,17 @@
import React from 'react';
import { Github, Youtube, Instagram, Handbag, MapPin, ChatBubbleEmpty } from 'iconoir-react';
import { SocialNetworkList } from '../../components/socialnetwork/socialnetwork.tsx';
import {
Github,
Youtube,
Instagram,
Handbag,
MapPin,
ChatBubbleEmpty,
} from 'iconoir-react';
import { SocialNetworkList } from '../../components/socialnetwork/socialnetwork';
import { ContactList } from '../../components/contact/contact.tsx';
import { Banner } from '../../components/banner/banner.tsx';
import { ContactList } from '../../components/contact/contact';
import { Banner } from '../../components/banner/banner';
import isen_group_photo from '../../assets/isen_group_photo.png';
@@ -17,35 +24,61 @@ const Contact: React.FC = () => {
{
Icon: Handbag,
title: 'Devenir partenaire',
description: 'Devenez vous aussi partenaire de Modelec et soutenez notre projet.',
link: { location: 'mailto:partenariat@modelec.club', text: 'partenariat@modelec.club' }
description:
'Devenez vous aussi partenaire de Modelec et soutenez notre projet.',
link: {
location: 'mailto:partenariat@modelec.club',
text: 'partenariat@modelec.club',
},
},
{
Icon: MapPin,
title: 'Nous rendre visite',
description: '33 QUATER Avenue du Champ de Manoeuvre, 44470 Carquefou.',
link: { location: 'https://maps.app.goo.gl/UVK3KFS8Zrpx7x9e6', text: 'Voir sur Google Maps' }
description:
'33 QUATER Avenue du Champ de Manoeuvre, 44470 Carquefou.',
link: {
location: 'https://maps.app.goo.gl/UVK3KFS8Zrpx7x9e6',
text: 'Voir sur Google Maps',
},
},
{
Icon: ChatBubbleEmpty,
title: 'Nous contacter',
description: 'Pour toute question ou demande, n\'hésitez pas à nous contacter.',
link: { location: 'mailto:contact@modelec.club', text: 'contact@modelec.club' }
}
description:
"Pour toute question ou demande, n'hésitez pas à nous contacter.",
link: {
location: 'mailto:contact@modelec.club',
text: 'contact@modelec.club',
},
},
]}
/>
<Banner
image={{ src: isen_group_photo, alt: 'Photo de groupe à l\'ISEN' }}
image={{ src: isen_group_photo, alt: "Photo de groupe à l'ISEN" }}
header={'Une question ?'}
>
Vous avez une <b>question</b> vis-à-vis de notre <u>club</u> ou de l'un de nos <u>projets</u> ? N'hésitez pas à nous <u>contacter</u> via l'une des méthode ci-dessus, nous serons ravis de vous répondre.
Vous avez une <b>question</b> vis-à-vis de notre <u>club</u> ou de l'un
de nos <u>projets</u> ? N'hésitez pas à nous <u>contacter</u> via l'une
des méthode ci-dessus, nous serons ravis de vous répondre.
</Banner>
<h1 className={'page-title'}>Nos Réseaux</h1>
<SocialNetworkList
networks={[
{ Icon: Instagram, name: 'modelec_isen', link: 'https://www.instagram.com/modelec_isen' },
{ Icon: Youtube, name: 'modelec', link: 'https://youtube.com/@modelec2165' },
{ Icon: Github, name: 'modelec', link: 'https://www.github.com/modelec' },
{
Icon: Instagram,
name: 'modelec_isen',
link: 'https://www.instagram.com/modelec_isen',
},
{
Icon: Youtube,
name: 'modelec',
link: 'https://youtube.com/@modelec2165',
},
{
Icon: Github,
name: 'modelec',
link: 'https://www.github.com/modelec',
},
]}
/>
</>

View File

@@ -15,19 +15,39 @@ const Home: React.FC = () => {
return (
<>
<Banner
image={{ src: 'https://r2.modelec.club/coupe-2024.png', alt: 'Modelec Photo' }}
image={{
src: 'https://r2.modelec.club/coupe-2024.png',
alt: 'Modelec Photo',
}}
header={'Qui sommes-nous ?'}
label={'Club 100% étudiant'}
>
Nous sommes <u>Modelec</u>, une association étudiante de l'<u>ISEN</u> qui a pour but de promouvoir la <b>robotique</b>, l'<b>électronique</b> et le <b>modélisme</b> auprès des étudiants de notre campus grâce à l'organisation d'ateliers et d'événements.
Nous sommes <u>Modelec</u>, une association étudiante de l'<u>ISEN</u>{' '}
qui a pour but de promouvoir la <b>robotique</b>, l'<b>électronique</b>{' '}
et le <b>modélisme</b> auprès des étudiants de notre campus grâce à
l'organisation d'ateliers et d'événements.
<br />
Nous participons également à la coupe de <u>France de robotique</u> où en 2024, nous avons fini <u>14e</u> sur 82 pour notre <u>première participation</u>.
Nous participons également à la coupe de <u>France de robotique</u> où
en 2024, nous avons fini <u>14e</u> sur 82 pour notre{' '}
<u>première participation</u>.
</Banner>
<SocialNetworkList
networks={[
{ Icon: Instagram, name: 'modelec_isen', link: 'https://www.instagram.com/modelec_isen' },
{ Icon: Youtube, name: 'modelec', link: 'https://youtube.com/modelec' },
{ Icon: Github, name: 'modelec', link: 'https://www.github.com/modelec' },
{
Icon: Instagram,
name: 'modelec_isen',
link: 'https://www.instagram.com/modelec_isen',
},
{
Icon: Youtube,
name: 'modelec',
link: 'https://youtube.com/modelec',
},
{
Icon: Github,
name: 'modelec',
link: 'https://www.github.com/modelec',
},
]}
/>
<div className={'dual'}>
@@ -36,34 +56,63 @@ const Home: React.FC = () => {
subtext={'Première participation'}
label={'Édition 2024'}
elements={[
{ type: "image", src: 'https://r2.modelec.club/serge-pixel.png', alt: 'Serge Pixel' },
{ type: "data", data: "14e", "subtext": "/82 équipes" }
{
type: 'image',
src: 'https://r2.modelec.club/serge-pixel.png',
alt: 'Serge Pixel',
},
{ type: 'data', data: '14e', subtext: '/82 équipes' },
]}
/>
<Box
title={'ISEN Nantes'}
subtext={'Notre école'}
elements={[
'Parce que les technologies du numérique sont partout, lISEN forme des ingénieurs aptes à répondre aux besoins des entreprises dans tous les secteurs dactivité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.'
"Parce que les technologies du numérique sont partout, lISEN forme des ingénieurs aptes à répondre aux besoins des entreprises dans tous les secteurs dactivité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.",
]}
/>
</div>
<div className={'partners page-contrast'}>
<h1 className={'partners-title'}>Ils rendent notre projet possible</h1>
<p className={'partners-text'}>
Un grand merci à nos partenaires qui nous soutiennent dans l'aventure et qui permettent à Modelec de continuer cette année encore.
Un grand merci à nos partenaires qui nous soutiennent dans l'aventure
et qui permettent à Modelec de continuer cette année encore.
</p>
<div className={'partners-list'}>
<a className={'partners-partner'} target={'_blank'} href={'https://isen-nantes.fr'}>
<img className={'partners-partner-logo'} src={'https://r2.modelec.club/isen.png'} alt={'ISEN Nantes'} />
<a
className={'partners-partner'}
target={'_blank'}
href={'https://isen-nantes.fr'}
>
<img
className={'partners-partner-logo'}
src={'https://r2.modelec.club/isen.png'}
alt={'ISEN Nantes'}
/>
<span className={'partners-partner-name'}>ISEN Nantes</span>
</a>
<a className={'partners-partner'} target={'_blank'} href={'https://mercurycloud.fr'}>
<img className={'partners-partner-logo'} src={'https://r2.modelec.club/mercurycloud.png'} alt={'Mercury Cloud'} />
<a
className={'partners-partner'}
target={'_blank'}
href={'https://mercurycloud.fr'}
>
<img
className={'partners-partner-logo'}
src={'https://r2.modelec.club/mercurycloud.png'}
alt={'Mercury Cloud'}
/>
<span className={'partners-partner-name'}>Mercury Cloud</span>
</a>
<a className={'partners-partner'} target={'_blank'} href={'https://instagram.com/odyssey_bde'}>
<img className={'partners-partner-logo'} src={'https://r2.modelec.club/bde.png'} alt={'BDE Odyssey'} />
<a
className={'partners-partner'}
target={'_blank'}
href={'https://instagram.com/odyssey_bde'}
>
<img
className={'partners-partner-logo'}
src={'https://r2.modelec.club/bde.png'}
alt={'BDE Odyssey'}
/>
<span className={'partners-partner-name'}>BDE Odyssey</span>
</a>
</div>
@@ -100,7 +149,7 @@ const Home: React.FC = () => {
image: 'https://picsum.photos/id/4/600/300',
title: 'Pellentesque',
text: 'Pellentesque habitant morbi tristique sen et netus et malesuada fames ac turpis egestas.',
}
},
]}
/>
</div>
@@ -111,20 +160,48 @@ const Home: React.FC = () => {
{
title: 'Bureau',
members: [
{ name: 'Maxime Chauveau', role: 'Président', image: 'https://r2.modelec.club/maxime.png' },
{ name: 'Vincent Rocher', role: 'Vice-Président', image: 'https://r2.modelec.club/maxime.png' },
{ name: 'Felix Marquet', role: 'Secrétaire', image: 'https://r2.modelec.club/maxime.png' },
{ name: 'Florent Butery', role: 'Trésorier', image: 'https://r2.modelec.club/maxime.png' },
]
{
name: 'Maxime Chauveau',
role: 'Président',
image: 'https://r2.modelec.club/maxime.png',
},
{
name: 'Vincent Rocher',
role: 'Vice-Président',
image: 'https://r2.modelec.club/maxime.png',
},
{
name: 'Felix Marquet',
role: 'Secrétaire',
image: 'https://r2.modelec.club/felix.png',
},
{
name: 'Florent Butery',
role: 'Trésorier',
image: 'https://r2.modelec.club/maxime.png',
},
],
},
{
title: 'Responsables',
members: [
{ name: 'Cléo Sionville', role: 'Communication', image: 'https://r2.modelec.club/maxime.png' },
{ name: 'Arthur Grossmann', role: 'Evenementiel', image: 'https://r2.modelec.club/maxime.png' },
{ name: 'Allan Cueff', role: 'Partenariat', image: 'https://r2.modelec.club/maxime.png' },
]
}
{
name: 'Cléo Sionville',
role: 'Communication',
image: 'https://r2.modelec.club/maxime.png',
},
{
name: 'Arthur Grossmann',
role: 'Evenementiel',
image: 'https://r2.modelec.club/maxime.png',
},
{
name: 'Allan Cueff',
role: 'Partenariat',
image: 'https://r2.modelec.club/allan.png',
},
],
},
]}
/>
</div>

View File

@@ -1,6 +1,9 @@
import React from 'react';
import { ProjetsHeader } from '../../components/projetheader/projetheader';
import { ProjectBigCard, ProjectSmallCard, } from '../../components/projectcard/projectcard.tsx';
import {
ProjectBigCard,
ProjectSmallCard,
} from '../../components/projectcard/projectcard';
import './Projets.css';

View File

@@ -1 +1 @@
{"root":["./src/app.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/carousel/carousel.tsx","./src/components/footer/footer.tsx","./src/components/middletext/middletext.tsx","./src/components/navbar/navbar.tsx","./src/components/navbarlink/navbarlink.tsx","./src/components/sidecard/fromleftcard.tsx","./src/components/sidecard/fromrightcard.tsx","./src/components/socialnetwork/socialnetwork.tsx","./src/components/team/team.tsx","./src/pages/404.tsx","./src/pages/home.tsx"],"version":"5.6.2"}
{"root":["./src/app.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/banner/banner.tsx","./src/components/box/box.tsx","./src/components/carousel/carousel.tsx","./src/components/contact/contact.tsx","./src/components/partner/partner.tsx","./src/components/projectcard/projectcard.tsx","./src/components/projetheader/projectheadercard.tsx","./src/components/projetheader/projetheader.tsx","./src/components/socialnetwork/socialnetwork.tsx","./src/components/team/team.tsx","./src/hooks/scrolltotop.tsx","./src/hooks/usewindowssize.tsx","./src/layouts/footer/footer.tsx","./src/layouts/navbar/navbar.tsx","./src/pages/404/404.tsx","./src/pages/contact/contact.tsx","./src/pages/home/home.tsx","./src/pages/partenaires/partenaires.tsx","./src/pages/projets/projets.tsx"],"version":"5.6.3"}

View File

@@ -5,14 +5,11 @@
{ "path": "./tsconfig.node.json" }
],
"compilerOptions": {
"module": "ESNext",
"target": "ESNext",
"sourceMap": true,
"outDir": "./dist",
"target": "esnext",
"module": "esnext",
"moduleResolution": "node",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"resolveJsonModule": true,
"isolatedModules": true,
"skipLibCheck": true
},
"include": ["src"]
"jsx": "react-jsx"
}
}

View File

@@ -1 +1 @@
{"root":["./vite.config.ts"],"version":"5.6.2"}
{"root":["./vite.config.ts"],"version":"5.6.3"}

14
webpack.config.js Normal file
View File

@@ -0,0 +1,14 @@
// webpack.config.js
module.exports = {
// Other configuration options...
devtool: 'source-map',
module: {
rules: [
{
test: /\.js$/,
use: ['source-map-loader'],
enforce: 'pre',
},
],
},
};