Skip to content

Commit

Permalink
feat: implement about us page (#567)
Browse files Browse the repository at this point in the history
* feat: implement about us page

* refactor: remove unused images

* refactor: remove unused image

* refactor: use webp images

* chore: small fixes

* refactor: apply PR requested changes

* refactor: update button variant

---------

Co-authored-by: spaenleh <[email protected]>
  • Loading branch information
pyphilia and spaenleh authored Dec 19, 2024
1 parent 529d027 commit 8555c61
Show file tree
Hide file tree
Showing 24 changed files with 1,209 additions and 3 deletions.
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
"sonarlint.connectedMode.project": {
"connectionId": "graasp",
"projectKey": "graasp_graasp-account"
}
},
"typescript.tsdk": "node_modules/typescript/lib"
}
16 changes: 16 additions & 0 deletions public/projects/climate.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
712 changes: 712 additions & 0 deletions public/projects/helvetas.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/team/basile.webp
Binary file not shown.
Binary file added public/team/denis.webp
Binary file not shown.
Binary file added public/team/francois.webp
Binary file not shown.
Binary file added public/team/hagop.webp
Binary file not shown.
Binary file added public/team/isabelle.webp
Binary file not shown.
Binary file added public/team/jeremy.webp
Binary file not shown.
Binary file added public/team/juancarlos.webp
Binary file not shown.
Binary file added public/team/kim.webp
Binary file not shown.
Binary file added public/team/maria.webp
Binary file not shown.
Binary file added public/team/michele.webp
Binary file not shown.
Binary file added public/team/philippe.webp
Binary file not shown.
Binary file added public/team/sandy.webp
Binary file not shown.
43 changes: 43 additions & 0 deletions src/locales/en/landing.json
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,49 @@
"BUTTON_TEXT": "Visit our Blog"
}
},
"ABOUT_US": {
"TITLE": "Meet the people behind Graasp",
"DESCRIPTION_1": "Founded by a dedicated team of professionals, our mission is to bridge the gap between cutting-edge technology and education, empowering educators and researchers globally.",
"DESCRIPTION_2": "We aim to bridge the gap between research environments and traditional educational settings such as schools. We envision a future where Graasp empowers educators and students in traditional educational setups and more, revolutionizing teaching methodologies and fostering engaging learning experiences.",

"ASSOCIATION": {
"TITLE": "Graasp Association",
"DESCRIPTION": "Graasp is more than a Learning Experience Platform. It is a product behind which there is a Swiss Non-Profit Organization dedicated to advancing digital education. Our primary goal is to support educators and researchers every step of the way, providing help and training to achieve their objectives effectively.",
"PROJECTS": {
"TITLE": "Other projects",
"HELVETAS": {
"TITLE": "Helvetas",
"DESCRIPTION": "Collaborative digital platform for training young people on migration routes"
},
"CLIMATE": {
"TITLE": "Climate",
"DESCRIPTION": "Active learning simulations for investigating the science of global warming"
}
}
},
"TEAM": {
"TITLE": "Meet the team!",
"STATUSES": {
"TITLE_PRESIDENT": "President",
"TITLE_MANAGING_DIRECTOR": "Managing Director",
"TITLE_VP_RESEARCH": "VP Research",
"TITLE_VP_PRODUCT": "VP Product",
"TITLE_VP_ENGINEERING": "VP Engineering",
"TITLE_VP_OUTREACH": "VP Outreach",
"TITLE_VP_INNOVATION": "VP Innovation",
"TITLE_VP_TECHNOLOGY": "VP Technology",
"TITLE_VP_EDUCATION_AND_CONTENT": "VP Education and Content",
"TITLE_SOFTWARE_ENGINEER": "Software Engineer",
"TITLE_AMBASSADOR": "Ambassador",
"TITLE_PEDAGOGICAL_ENGINEER": "Pedagogical Engineer"
}
},
"PRESENTATION_VIDEO": {
"TITLE": "Take a look at our presentation video",
"JOIN_BUTTON_TEXT": "Join our Community",
"LIBRARY_BUTTON_TEXT": "Explore the Library"
}
},
"NEWSLETTER": {
"LEAD_SENTENCE": "Do you want to be updated?",
"TITLE": "Subscribe to our newsletter!",
Expand Down
43 changes: 43 additions & 0 deletions src/locales/fr/landing.json
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,49 @@
}
}
},
"ABOUT_US": {
"TITLE": "Rencontre les personnes derrière Graasp",
"DESCRIPTION_1": "Fondée par une équipe dédiée de professionnels, notre mission est de combler l'écart entre la technologie de pointe et l'éducation, en autonomisant les éducateurs et les chercheurs à l'échelle mondiale.",
"DESCRIPTION_2": "Nous avons pour objectif de combler l'écart entre les environnements de recherche et les établissements éducatifs traditionnels tels que les écoles. Nous imaginons un avenir où Graasp permet aux éducateurs et aux étudiants des structures éducatives traditionnelles et au-delà, de révolutionner les méthodes d'enseignement et de favoriser des expériences d'apprentissage engageantes.",

"ASSOCIATION": {
"TITLE": "Association Graasp",
"DESCRIPTION": "Graasp est bien plus qu'une plateforme d'expérience d'apprentissage. C'est un produit porté par une organisation à but non lucratif suisse dédiée à l'avancement de l'éducation numérique. Notre objectif principal est de soutenir les éducateurs et les chercheurs à chaque étape de leur parcours, en leur offrant aide et formation pour atteindre leurs objectifs de manière efficace.",
"PROJECTS": {
"TITLE": "D'autres projets",
"HELVETAS": {
"TITLE": "Helvetas",
"DESCRIPTION": "Plateforme numérique collaborative pour former les jeunes sur les routes migratoires"
},
"CLIMATE": {
"TITLE": "Climate",
"DESCRIPTION": "Simulations d'apprentissage actif pour explorer la science du réchauffement climatique"
}
}
},
"TEAM": {
"TITLE": "Rencontre l'équipe !",
"STATUSES": {
"TITLE_PRESIDENT": "Président",
"TITLE_MANAGING_DIRECTOR": "Directrice Générale",
"TITLE_VP_RESEARCH": "VP Recherche",
"TITLE_VP_PRODUCT": "VP Produit",
"TITLE_VP_ENGINEERING": "VP Ingénieurie",
"TITLE_VP_OUTREACH": "VP Communication et Promotion",
"TITLE_VP_INNOVATION": "VP Innovation",
"TITLE_VP_TECHNOLOGY": "VP Technologie",
"TITLE_VP_EDUCATION_AND_CONTENT": "VP Formation et Contenu",
"TITLE_SOFTWARE_ENGINEER": "Ingénieur logiciel",
"TITLE_AMBASSADOR": "Ambassadeur",
"TITLE_PEDAGOGICAL_ENGINEER": "Ingénieur pédagogique"
}
},
"PRESENTATION_VIDEO": {
"TITLE": "Regardez notre vidéo de présentation",
"JOIN_BUTTON_TEXT": "Rejoins notre communauté",
"LIBRARY_BUTTON_TEXT": "Explore la Bibliothèque"
}
},
"NEWSLETTER": {
"LEAD_SENTENCE": "Voulez-vous rester informé ?",
"TITLE": "Abonnez-vous à notre newsletter !",
Expand Down
52 changes: 52 additions & 0 deletions src/modules/landing/aboutUs/Association.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import { useTranslation } from 'react-i18next';

import { Grid2 as Grid, Stack, Typography } from '@mui/material';

import { NS } from '@/config/constants';

import { ProjectCard } from './ProjectCard';

function Association() {
const { t } = useTranslation(NS.Landing, {
keyPrefix: 'ABOUT_US.ASSOCIATION',
});

return (
<Stack
maxWidth={{ xs: '600px', md: 'lg' }}
width="100%"
alignItems={{ xs: 'center', md: 'flex-start' }}
gap={4}
>
<Typography variant="h2" color="primary">
{t('TITLE')}
</Typography>

<Typography variant="body1">{t('DESCRIPTION')}</Typography>

<Typography variant="h4" color="primary">
{t('PROJECTS.TITLE')}
</Typography>

<Grid container width="100%" spacing={2}>
<Grid size={{ xs: 12, sm: 6, md: 4, lg: 3 }}>
<ProjectCard
src="/projects/helvetas.svg"
title={'Helvetas'}
description={t('PROJECTS.HELVETAS.DESCRIPTION')}
/>
</Grid>
<Grid size={{ xs: 12, sm: 6, md: 4, lg: 3 }}>
<ProjectCard
src="/projects/climate.svg"
width={100}
title={t('PROJECTS.CLIMATE.TITLE')}
description={t('PROJECTS.CLIMATE.DESCRIPTION')}
/>
</Grid>
</Grid>
</Stack>
);
}

export default Association;
28 changes: 28 additions & 0 deletions src/modules/landing/aboutUs/NumberCard.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { Card, Typography } from '@mui/material';

function NumberCard({
number,
title,
}: Readonly<{ number: string; title: string }>) {
return (
<Card
sx={{
width: '100%',
display: 'block',
background: '#f7eefe',
borderRadius: 5,
p: 2,
textAlign: 'center',
}}
>
<Typography variant="h2" component="p">
{number}
</Typography>
<Typography variant="h6" component="p">
{title}
</Typography>
</Card>
);
}

export default NumberCard;
48 changes: 48 additions & 0 deletions src/modules/landing/aboutUs/PresentationVideoSection.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import { useTranslation } from 'react-i18next';

import { Stack, Typography } from '@mui/material';

import { Button } from '@graasp/ui';

import { ButtonLink } from '@/components/ui/ButtonLink';
import { NS } from '@/config/constants';
import { GRAASP_LIBRARY_HOST } from '@/config/env';

function PresentationVideoSection() {
const { t } = useTranslation(NS.Landing, {
keyPrefix: 'ABOUT_US.PRESENTATION_VIDEO',
});

return (
<Stack
maxWidth={{ xs: '600px', md: 'lg' }}
width="100%"
alignItems={{ xs: 'center', md: 'flex-start' }}
gap={4}
>
<Typography variant="h2" color="primary">
{t('TITLE')}
</Typography>

<Stack alignSelf="center">
{/* eslint-disable-next-line jsx-a11y/media-has-caption */}
<video width="420" height="340" controls>
<source src="movie.mp4" type="video/mp4" />
<source src="movie.ogg" type="video/ogg" />
Your browser does not support the video tag.
</video>
</Stack>

<Stack direction="row" alignSelf="center" gap={2}>
<ButtonLink variant="contained" to="/auth/register">
{t('JOIN_BUTTON_TEXT')}
</ButtonLink>
<a href={GRAASP_LIBRARY_HOST}>
<Button color="secondary">{t('LIBRARY_BUTTON_TEXT')}</Button>
</a>
</Stack>
</Stack>
);
}

export default PresentationVideoSection;
39 changes: 39 additions & 0 deletions src/modules/landing/aboutUs/ProjectCard.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import { Card, Stack, Typography } from '@mui/material';

export function ProjectCard({
description,
title,
src,
width,
}: Readonly<{
description: string;
title: string;
src: string;
width?: string | number;
}>) {
return (
<Card
sx={{
width: '100%',
display: 'block',
background: '#f7eefe',
borderRadius: 5,
p: 4,
textAlign: 'center',
height: '100%',
}}
>
<Stack justifyContent="center" alignItems="center" height="100%" gap={2}>
<img src={src} alt={title} width={width} />
<Stack>
<Typography variant="h5" component="p">
{title}
</Typography>
<Typography variant="body1" component="p">
{description}
</Typography>
</Stack>
</Stack>
</Card>
);
}
Loading

0 comments on commit 8555c61

Please sign in to comment.