Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ $ yarn dev
Fix linting format errors :

```bash
npm run lint -- --fix
npm run lint
```

### Contributors
Expand Down
1 change: 1 addition & 0 deletions i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"/policy": ["policy"],
"/privacy": ["privacy"],
"/terms": ["terms"],
"/conduct": ["conduct"],
"/404": ["404"],
"/500": ["500"]
}
Expand Down
4 changes: 2 additions & 2 deletions locales/en/about.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"presentation": {
"firstHeading": "Galsen DEV is a community that brings together Senegalese developers with the aim of creating an ecosystem conducive to creation and sharing as a developer and popularizing programming throughout Senegal. We also set ourselves the goal of helping beginners and people wishing to join the field of programming.",
"secondHeading": "We offer a wide range of benefits and opportunities for our members. You will have access to workshops and training led by experienced professionals, which will allow you to stay current with the latest technological trends and continuously improve your skills. You will also have the chance to participate in exciting collaborative projects, where you can put your knowledge into practice and work in teams with other talented developers.",
"aboutTitle": "We are Galsen DEV !",
"aboutHeading": "A community of developers in Senegal with over 2,500 passionate members. Our mission is to build a dynamic tech ecosystem where developers can connect, create, and grow together.",
"join": "Join us"
}
}
4 changes: 4 additions & 0 deletions locales/en/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"about": "About",
"events": "Events",
"gallery": "Gallery",
"conduct": "Code of Conduct",
"policy": "Policy",
"privacy": "Privacy",
"terms": "Terms of Use"
Expand All @@ -39,6 +40,9 @@
"terms": {
"header": "Terms of Use"
},
"conduct": {
"header": "Community Code of Conduct"
},
"donation": {
"text": {
"first": "You can make a",
Expand Down
28 changes: 28 additions & 0 deletions locales/en/conduct.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"conductPage": {
"tag": "galsen.dev/code-of-conduct",
"title": "Code of Conduct",
"description": "At Galsen DEV, we are committed to building an inclusive, supportive, and respectful community that is open to everyone, regardless of experience level, background, religion, or personal circumstances.",
"description2": "We do not tolerate any form of harassment or abusive behavior towards members of the community, whether during our events, online (Discord, Telegram, social media), or in any interaction related to Galsen DEV.",
"step1": "🙌 What We Expect",
"desc1": "All participants in Galsen DEV activities — including members, ambassadors, speakers, volunteers, and organizers — are expected to follow these rules:",
"addS1-1": "- Be respectful in your words and behavior.",
"addS1-2": "- Be kind: help, encourage, and support others.",
"addS1-3": "- Sexist, racist, discriminatory, or offensive language will not be tolerated.",
"addS1-4": "- Do not use sexual or inappropriate language or imagery.",
"addS1-5": "- Do not post photos of people without their consent.",
"addS1-6": "- Be considerate of those for whom French is not their first language.",
"end1": "We are a pan-African community: please keep in mind that everyone brings different cultural sensitivities.",
"step2": "🚫 What Is Considered Harassment",
"desc2": "Harassment includes (but is not limited to):",
"addS2-1": "- Offensive or discriminatory remarks (online or in person).",
"addS2-2": "- Intimidation, threats, or repeated harassment.",
"addS2-3": "- Unwanted photography or recordings.",
"addS2-4": "- Intentional disruption of workshops, discussions, or chat channels.",
"end2": "Anyone asked to stop inappropriate behavior must comply immediately.",
"step3": "⚠️ If a Problem Arises",
"desc3": "If you witness or experience inappropriate behavior or have any concerns, contact a member of the Galsen DEV team right away (Discord moderators, admins, event staff). We are here to listen, support you, and take appropriate action.",
"desc4": "Actions may include a warning, temporary or permanent removal from an event, the Discord server, or the community as a whole, depending on the severity of the situation.",
"final": "Last updated: 28/06/2025"
}
}
10 changes: 10 additions & 0 deletions locales/en/events.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@
"upcoming": "Upcoming event",
"previous": "Previous event",
"events": {
"galsendev-meetup-7": {
"title": "GalsenDEV Meetup #7",
"desc": "A talk to discover Filament, a Laravel tool for building modern admin interfaces.",
"full": "This meetup was dedicated to Filament, a powerful and essential tool for quickly creating admin interfaces with Laravel. The event was led by Mahamadou Kheraba DIABY (aka Kepson DIAZ), Software Engineer at ALAL Technologies, who shared valuable and practical feedback on integrating Filament into production projects. This accessible, hands-on session allowed participants to explore how to fully leverage Filament to boost productivity, structure their projects, and efficiently modernize their Laravel back offices. An inspiring talk that highlighted the simplicity and power of this ecosystem."
},
"galsen-dev-x-uam": {
"title": "Galsen DEV x UAM",
"desc": "An afternoon of discussions on development, Go, and the opportunities offered by Bitcoin.",
"full": "On June 21, 2025, in collaboration with Bitcoin Senegal, Galsen DEV hosted an event at Amadou Mahtar MBOW University as part of its Ambassador Program. This gathering, designed to spark curiosity and fuel the ambitions of students, featured both technical and inspiring talks. Attendees took part in a hands-on workshop led by Papa Elhadj Abdoulaye NDOYE, discovered the Go programming language through a clear and engaging introduction by Mouhamadou Moustapha DIAGNE, and explored the opportunities Bitcoin offers developers during an online session with Mouhamadou Kouta (Nourou). It was a great afternoon of learning, sharing, and connecting among tech enthusiasts."
},
"weekend-code-4": {
"title": "Weekend Code #4",
"desc": "Two days of technical talks and discussions around Flutter and Semantic Versioning.",
Expand Down
5 changes: 5 additions & 0 deletions locales/en/gallery.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
"firstHeading": "Our photo gallery",
"secondHeading": "Find highlights from our latest events with the Galsen DEV community.",
"see": "See the pictures",
"event-8": {
"title": "Galsen DEV x UAM",
"desc": "An afternoon with the students of Amadou Mahtar MBOW University.",
"date": "June 21, 2025"
},
"event-7": {
"title": "ICAGI Student Dev Workshop",
"desc": "An enriching day of learning with the students of ICAGI !",
Expand Down
4 changes: 2 additions & 2 deletions locales/en/home.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
"description": "Created in 2018, Galsen DEV welcomes new members every day.",
"events": {
"title": "Events",
"count": "+50"
"count": "+100"
},
"members": {
"title": "Members",
"count": "+1K"
"count": "+2.5K"
},
"commits": {
"title": "Commits",
Expand Down
4 changes: 2 additions & 2 deletions locales/fr/about.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"presentation": {
"firstHeading": "Galsen DEV est une communauté qui regroupe les développeurs sénégalais dans le but de mettre en place un écosystème favorable à la création et au partage en développeur et de vulgariser la programmation partout au Sénégal. Nous nous fixons aussi pour objectif d'aider les débutants et les personnes désireux de rejoindre le domaine de la programmation.",
"secondHeading": "Nous offrons un large éventail d'avantages et de possibilités pour nos membres. Vous aurez accès à des ateliers et des formations animés par des professionnels chevronnés, qui vous permettront de rester à jour avec les dernières tendances technologiques et d'améliorer continuellement vos compétences. Vous aurez également la chance de participer à des projets collaboratifs passionnants, vous pourrez mettre en pratique vos connaissances et travailler en équipe avec d'autres développeurs talentueux.",
"aboutTitle": "Nous sommes Galsen DEV !",
"aboutHeading": "Une communauté de développeurs au Sénégal, avec plus de 2.500 membres passionnés. Avec pour mission, bâtir un écosystème tech dynamique les développeurs peuvent se connecter, créer et évoluer ensemble.",
"join": "Rejoignez-nous"
}
}
4 changes: 4 additions & 0 deletions locales/fr/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"about": "A propos",
"events": "Evénements",
"gallery": "Galerie",
"conduct": "Code de Conduite",
"policy": "Confidentialité",
"privacy": "Vie Privée",
"terms": "Conditions"
Expand All @@ -39,6 +40,9 @@
"terms": {
"header": "Conditions d'Utilisation"
},
"conduct": {
"header": "Code de Conduite de la communauté"
},
"donation": {
"text": {
"first": "Vous pouvez faire un",
Expand Down
28 changes: 28 additions & 0 deletions locales/fr/conduct.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"conductPage": {
"tag": "galsen.dev/code-de-conduite",
"title": "Code de Conduite",
"description": "Chez Galsen DEV, nous nous engageons à bâtir une communauté inclusive, bienveillante et respectueuse, ouverte à toutes et à tous, quel que soit le niveau d'expérience, l’origine, la religion ou la situation personnelle.",
"description2": "Nous ne tolérons aucune forme de harcèlement ou de comportement abusif envers les membres de la communauté, que ce soit lors de nos événements, en ligne (Discord, Telegram, réseaux sociaux) ou dans toute interaction liée à Galsen DEV.",
"step1": "🙌 Ce que nous attendons",
"desc1": "Tous les participants aux activités de Galsen DEV — qu’ils soient membres, ambassadeurs, intervenants, bénévoles ou organisateurs — sont tenus de respecter les règles suivantes :",
"addS1-1": "- Soyez respectueux dans vos propos et vos comportements.",
"addS1-2": "- Soyez bienveillants : aidez, encouragez et soutenez les autres.",
"addS1-3": "- Aucun propos sexiste, raciste, discriminatoire ou offensant ne sera toléré.",
"addS1-4": "- N’utilisez pas de langage ou d’images à caractère sexuel ou inapproprié.",
"addS1-5": "- Ne publiez pas de photos de personnes sans leur consentement.",
"addS1-6": "- Respectez les personnes pour qui le français n’est pas la langue principale.",
"end1": "Nous sommes une communauté panafricaine : merci de garder à l’esprit que chacun vient avec une sensibilité culturelle différente.",
"step2": "🚫 Ce qui est considéré comme du harcèlement",
"desc2": "Le harcèlement inclut (sans s’y limiter) :",
"addS2-1": "- Propos offensants ou discriminatoires (en ligne ou en personne).",
"addS2-2": "- Intimidation, menaces ou harcèlement répété.",
"addS2-3": "- Photographies ou enregistrements non désirés.",
"addS2-4": "- Perturbation intentionnelle d’ateliers, discussions ou canaux de discussion.",
"end2": "Toute personne invitée à cesser un comportement jugé inapproprié doit se conformer immédiatement.",
"step3": "⚠️ En cas de problème",
"desc3": "Si vous êtes témoin ou victime d’un comportement déplacé ou avez une préoccupation, contactez immédiatement un membre de l’équipe Galsen DEV (modérateurs Discord, admins, staff événementiel). Nous sommes là pour vous écouter, vous soutenir et agir de manière appropriée.",
"desc4": "Des mesures pourront être prises selon la gravité, incluant un avertissement, l’exclusion temporaire ou définitive d’un événement, du serveur Discord, ou de la communauté dans son ensemble.",
"final": "Dernière mise à jour : 28/06/2025"
}
}
10 changes: 10 additions & 0 deletions locales/fr/events.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@
"upcoming": "Évènement à venir",
"previous": "Événement passé",
"events": {
"galsendev-meetup-7": {
"title": "GalsenDEV Meetup #7",
"desc": "Un talk pour découvrir Filament, un outil Laravel pour créer des interfaces d’administration modernes.",
"full": "Ce meetup dédié à Filament, un outil puissant et incontournable pour créer rapidement des interfaces d’administration avec Laravel. L'événement a été animé par Mahamadou Kheraba DIABY (alias Kepson DIAZ), Ingénieur Logiciel chez ALAL Technologies, qui a partagé un retour d’expérience riche et concret sur l’intégration de Filament dans des projets en production. Ce talk accessible et orienté pratique a permis aux participants de découvrir comment tirer pleinement parti de Filament pour améliorer leur productivité, structurer leurs projets et moderniser efficacement leurs back-offices Laravel. Une session inspirante qui a mis en lumière la simplicité et la puissance de cet écosystème."
},
"galsen-dev-x-uam": {
"title": "Galsen DEV x UAM",
"desc": "Un après-midi d’échanges autour du développement, de Go et des opportunités offertes par le Bitcoin.",
"full": "Le 21 juin 2025, en collaboration avec Bitcoin Sénégal, Galsen DEV a animé un événement à l’Université Amadou Mahtar MBOW dans le cadre de son Programme Ambassadeur. Cette rencontre, pensée pour éveiller la curiosité et nourrir les ambitions des étudiants, a été rythmée par des interventions à la fois techniques et inspirantes. Les participants ont pu assister à un atelier pratique animé par Papa Elhadj Abdoulaye NDOYE, découvrir le langage Go grâce à une introduction claire et engageante de Mouhamadou Moustapha DIAGNE, et explorer les opportunités offertes par le Bitcoin pour les développeurs à travers une session en ligne de Mouhamadou Kouta (Nourou). Un bel après-midi d’apprentissage, d’échanges et de connexions entre passionnés de tech."
},
"weekend-code-4": {
"title": "Weekend du Code #4",
"desc": "Deux jours de présentations techniques et d’échanges autour de Flutter et le Semantic Versioning.",
Expand Down
5 changes: 5 additions & 0 deletions locales/fr/gallery.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
"firstHeading": "Notre galerie photo",
"secondHeading": "Retrouvez les clichés marquants de nos derniers événements avec la communauté Galsen DEV.",
"see": "Voir les photos",
"event-8": {
"title": "Galsen DEV x UAM",
"desc": "Un après-midi avec les étudiants de l’Université Amadou Mahtar MBOW.",
"date": "21 Juin 2025"
},
"event-7": {
"title": "Atelier Dev Étudiant ICAGI",
"desc": "Une journée enrichissante d'apprentissage avec les étudiants de l'ICAGI !",
Expand Down
4 changes: 2 additions & 2 deletions locales/fr/home.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
"description": "Créée en 2018, Galsen DEV accueille chaque jours de nouveaux membres.",
"events": {
"title": "Événements",
"count": "+50"
"count": "+100"
},
"members": {
"title": "Membres",
"count": "+1K"
"count": "+2.5K"
},
"commits": {
"title": "Commits",
Expand Down
Binary file added public/gallery/ciga2023.jpg
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/gallery/hacktoberfest2021.jpg
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/gallery/hacktoberfest2022.jpg
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/gallery/hacktoberfest2023.jpg
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/gallery/hacktoberfest2024.jpg
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/gallery/icagi2024.jpg
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/gallery/uam2025.jpg
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/gallery/xaralatourdk2021.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed public/img/events/ciga2023.jpg
Binary file not shown.
Binary file removed public/img/events/hacktoberfest2021.jpg
Binary file not shown.
Binary file removed public/img/events/hacktoberfest2022.jpg
Binary file not shown.
Binary file removed public/img/events/hacktoberfest2023.jpg
Binary file not shown.
Binary file removed public/img/events/hacktoberfest2024.jpg
Binary file not shown.
Binary file removed public/img/events/icagi2024.jpg
Binary file not shown.
Binary file removed public/img/events/xaralatourdk2021.jpg
Binary file not shown.
2 changes: 1 addition & 1 deletion src/components/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ function Header(props: Readonly<HeaderProps>) {
<meta property="og:type" content="website" />
<meta
property="og:image"
content="https://res.cloudinary.com/degyjrpjj/image/upload/v1697857126/galsendev/share/a8outneqrzhfr7zn79vo.png"
content="https://res.cloudinary.com/degyjrpjj/image/upload/v1697857126/galsendev/share/og_image.png"
/>
<meta property="og:title" content="Galsen DEV" />
<meta
Expand Down
1 change: 1 addition & 0 deletions src/components/Navbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ const Navbar = () => {
target: '_blank',
},
{ name: t('navbar.about'), path: '/about' },
{ name: t('navbar.conduct'), path: '/conduct' },
];

return (
Expand Down
14 changes: 5 additions & 9 deletions src/components/about/Presentation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,13 @@ const Presentation = () => {
return (
<section className="overflow-hidden bg-gray-50 lg:grid lg:grid-cols-2">
<div className="p-8 md:p-12 lg:px-16 lg:py-24">
<div className="mx-auto max-w-xl text-center ltr:sm:text-left rtl:sm:text-right">
<div className="mx-auto max-w-xl text-left ltr:sm:text-left rtl:sm:text-right">
<h2 className="text-2xl font-bold text-gray-900 md:text-3xl">
Galsen DEV
{t('presentation.aboutTitle')}
</h2>

<p className="text-gray-500 md:mt-4 md:block">
{t('presentation.firstHeading')}
</p>

<p className="text-gray-500 md:mt-4 md:block">
{t('presentation.secondHeading')}
{t('presentation.aboutHeading')}
</p>

<div className="mt-4 md:mt-8">
Expand All @@ -33,8 +29,8 @@ const Presentation = () => {
</div>

<Image
src="https://res.cloudinary.com/degyjrpjj/image/upload/v1688584020/galsendev/main/xe8f23mwvkft4hsvrjov.png"
width="500"
src="https://res.cloudinary.com/degyjrpjj/image/upload/v1751055212/galsendev/main/galsen_dev_cover.png"
width="1000"
height="500"
alt="GalsenDEV Illustration"
loading="eager"
Expand Down
25 changes: 16 additions & 9 deletions src/components/gallery/EventsGallery.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import Image, { StaticImageData } from 'next/image';
import Link from 'next/link';

import icagi from '/public/img/events/icagi2024.jpg';
import hof24 from '/public/img/events/hacktoberfest2024.jpg';
import hof23 from '/public/img/events/hacktoberfest2023.jpg';
import ciga from '/public/img/events/ciga2023.jpg';
import hof22 from '/public/img/events/hacktoberfest2022.jpg';
import hof21 from '/public/img/events/hacktoberfest2021.jpg';
import xtdk21 from '/public/img/events/xaralatourdk2021.jpg';
import uam25 from '/public/gallery/uam2025.jpg';
import icagi from '/public/gallery/icagi2024.jpg';
import hof24 from '/public/gallery/hacktoberfest2024.jpg';
import hof23 from '/public/gallery/hacktoberfest2023.jpg';
import ciga from '/public/gallery/ciga2023.jpg';
import hof22 from '/public/gallery/hacktoberfest2022.jpg';
import hof21 from '/public/gallery/hacktoberfest2021.jpg';
import xtdk21 from '/public/gallery/xaralatourdk2021.jpg';

import useTranslation from 'next-translate/useTranslation';
import { Icon } from '../ui/icon';
Expand All @@ -27,9 +28,15 @@ const EventsGallery = () => {
</div>

<div className="grid grid-cols-1 gap-4 md:grid-cols-2 md:gap-8">
<EventGalleryCard
eventId="event-8"
place="Annexe 2 UAM, Diamniadio"
photosLink="https://photos.app.goo.gl/RHBfRUNWFNDPrjgM6"
image={uam25}
/>
<EventGalleryCard
eventId="event-7"
place="Nord Foire, Dakar"
place="ICAGI, Nord Foire"
photosLink="https://photos.app.goo.gl/3Ecp1Yk7ZxJNDo12A"
image={icagi}
/>
Expand Down Expand Up @@ -65,7 +72,7 @@ const EventsGallery = () => {
/>
<EventGalleryCard
eventId="event-1"
place="Orange Digital Center, Mermoz Ecole Police"
place="Orange Digital Center, Mermoz"
photosLink="https://photos.app.goo.gl/F8W2gWh6Y6AW7Xto7"
image={xtdk21}
/>
Expand Down
2 changes: 1 addition & 1 deletion src/components/home/EventSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const EventSection = () => {
<div className="relative z-10 lg:py-16">
<div className="relative h-64 sm:h-80 lg:h-full">
<Image
src="https://res.cloudinary.com/degyjrpjj/image/upload/v1730341121/galsendev/hacktoberfest/yvxynmkm3pfvuttogr2d.png"
src="https://res.cloudinary.com/degyjrpjj/image/upload/v1751051955/galsendev/main/hacktoberfest24cover.png"
alt="Last event of Galsen Dev"
width={500}
height={500}
Expand Down
2 changes: 1 addition & 1 deletion src/components/home/HeroSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const HeroSection = () => {
<div className="absolute top-16 -left-2 w-64 h-64 bg-baseColor rounded-full mix-blend-multiply filter blur-2xl opacity-60 animation-delay-2000 animate-blob sm:w-80 sm:h-80"></div>
<div className="w-full h-full max-w-xl">
<Image
src="https://res.cloudinary.com/degyjrpjj/image/upload/v1688584020/galsendev/main/tce1ijjs4dxm8vl8qxls.png"
src="https://res.cloudinary.com/degyjrpjj/image/upload/v1697857000/galsendev/main/landing_cover.png"
width="800"
height="800"
alt="Landing Illustration"
Expand Down
Loading