mirror of
https://github.com/modelec/modelec.club.git
synced 2026-01-18 16:37:30 +01:00
Merge branch 'refs/heads/main' into e2e
# Conflicts: # tsconfig.json
This commit is contained in:
4
.github/codeql/codeql-analysis.yml
vendored
4
.github/codeql/codeql-analysis.yml
vendored
@@ -1,4 +0,0 @@
|
||||
name: "Default setup"
|
||||
queries:
|
||||
- javascript-security-and-quality.qls
|
||||
- typescript-security-and-quality.qls
|
||||
4
.github/codeql/codeql-config.yml
vendored
4
.github/codeql/codeql-config.yml
vendored
@@ -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
41
.github/workflows/codeQL.yml
vendored
Normal 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
|
||||
1
.github/workflows/deploy-test.yml
vendored
1
.github/workflows/deploy-test.yml
vendored
@@ -56,4 +56,3 @@ jobs:
|
||||
uploads: |
|
||||
./dist => /var/www/modelec.club
|
||||
dry-run: true
|
||||
delete: true
|
||||
|
||||
20
src/App.tsx
20
src/App.tsx
@@ -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
12
src/hooks/scrollToTop.tsx
Normal 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;
|
||||
};
|
||||
@@ -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',
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</>
|
||||
|
||||
@@ -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, 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.'
|
||||
"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.",
|
||||
]}
|
||||
/>
|
||||
</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>
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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"}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"root":["./vite.config.ts"],"version":"5.6.2"}
|
||||
{"root":["./vite.config.ts"],"version":"5.6.3"}
|
||||
14
webpack.config.js
Normal file
14
webpack.config.js
Normal 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',
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user