diff --git a/banquise-website/src/assets/Gitea_Logo.png b/banquise-website/src/assets/Gitea_Logo.png new file mode 100644 index 0000000..75ea7df Binary files /dev/null and b/banquise-website/src/assets/Gitea_Logo.png differ diff --git a/banquise-website/src/assets/opencloud_logo_white.png b/banquise-website/src/assets/opencloud_logo_white.png new file mode 100644 index 0000000..699e164 Binary files /dev/null and b/banquise-website/src/assets/opencloud_logo_white.png differ diff --git a/banquise-website/src/assets/pelican.png b/banquise-website/src/assets/pelican.png new file mode 100644 index 0000000..e3177f2 Binary files /dev/null and b/banquise-website/src/assets/pelican.png differ diff --git a/banquise-website/src/assets/wikijs.png b/banquise-website/src/assets/wikijs.png new file mode 100644 index 0000000..59cdccb Binary files /dev/null and b/banquise-website/src/assets/wikijs.png differ diff --git a/banquise-website/src/components/common/ServiceCard.tsx b/banquise-website/src/components/common/ServiceCard.tsx index 1c4e955..377114d 100644 --- a/banquise-website/src/components/common/ServiceCard.tsx +++ b/banquise-website/src/components/common/ServiceCard.tsx @@ -5,14 +5,12 @@ import type { Service } from '../../types/service'; interface ServiceCardProps { service: Service; onServiceClick: (service: Service) => void; - discoverFeaturesText: string; className?: string; } export const ServiceCard: React.FC = ({ service, onServiceClick, - discoverFeaturesText, className = '', }) => { const cardClasses = mergeClasses( @@ -31,7 +29,16 @@ export const ServiceCard: React.FC = ({
{/* Icon */}
- {service.icon} + {service.icon}
{/* Service name */} @@ -40,15 +47,10 @@ export const ServiceCard: React.FC = ({ {/* Short description */} -

+

{service.description.split('.')[0]}.

- {/* CTA */} -
- {discoverFeaturesText} - -
{/* Hover effect */}
diff --git a/banquise-website/src/components/layout/Footer.tsx b/banquise-website/src/components/layout/Footer.tsx index 0993647..e1b906a 100644 --- a/banquise-website/src/components/layout/Footer.tsx +++ b/banquise-website/src/components/layout/Footer.tsx @@ -51,7 +51,11 @@ export const Footer: React.FC = () => ( className="w-10 h-10 bg-banquise-blue/20 hover:bg-banquise-blue/30 rounded-full flex items-center justify-center transition-all duration-200 hover:scale-110" aria-label="Discord" > - 💬 + + + + + ( {/* Bottom Bar */}

- © 2024 {SITE_CONFIG.name}. Hébergement communautaire pour développeurs et gamers. + © 2025 {SITE_CONFIG.name}. Hébergement communautaire pour développeurs et gamers.

- Fait avec ❤️ par la communauté + Fait avec ❤️ par Banquise
- EPITA 2024 + EPITA 2025
diff --git a/banquise-website/src/components/layout/Navigation.tsx b/banquise-website/src/components/layout/Navigation.tsx index c00ce5c..6e832b5 100644 --- a/banquise-website/src/components/layout/Navigation.tsx +++ b/banquise-website/src/components/layout/Navigation.tsx @@ -96,10 +96,10 @@ export const Navigation: React.FC = ({ translations, languageSw >
- + - - Discord + + Discord
= ({ services, - onServiceClick, - translations + onServiceClick }) => (
@@ -31,7 +30,6 @@ export const ServicesSection: React.FC = ({ key={service.name} service={service} onServiceClick={onServiceClick} - discoverFeaturesText={translations.discoverFeatures} /> ))} diff --git a/banquise-website/src/data/translations/en.ts b/banquise-website/src/data/translations/en.ts index dbbdb62..0b03082 100644 --- a/banquise-website/src/data/translations/en.ts +++ b/banquise-website/src/data/translations/en.ts @@ -1,12 +1,16 @@ import type { Translation } from '../../types/i18n'; import { URLS } from '../../config/constants'; +import logoGitea from '/src/assets/Gitea_Logo.png'; +import logoWiki from '/src/assets/wikijs.png'; +import logoPelican from '/src/assets/pelican.png'; +import logoOpencloud from '/src/assets/opencloud_logo_white.png'; export const en: Translation = { services: [ { name: "Wiki", url: URLS.services.wiki, - image: "/path/to/wiki-image.jpg", + image: logoWiki, icon: "📚", description: "Collaborative technical documentation and knowledge sharing platform. Create, edit and organize your guides, tutorials and documentation as a team with integrated versioning system.", features: [ @@ -23,7 +27,7 @@ export const en: Translation = { { name: "Gitea", url: URLS.services.gitea, - image: "/path/to/gitea-image.jpg", + image: logoGitea, icon: "🔧", description: "Lightweight and performant self-hosted Git service for your development projects. Open-source alternative to GitHub with all essential features for managing your repositories.", features: [ @@ -37,26 +41,10 @@ export const en: Translation = { "Webhooks for external notifications" ] }, - { - name: "Gaming Panel", - url: URLS.services.panel, - image: "/path/to/panel-image.jpg", - icon: "🎮", - description: "Centralized management interface for all your game servers. Easily deploy, configure and monitor your Minecraft, CS2, Garry's Mod and many other servers.", - features: [ - "Support for 20+ popular games (Minecraft, CS2, GMod...)", - "One-click deployment with pre-configured templates", - "Real-time administration console", - "File management with integrated editor", - "Performance and resource monitoring", - "Automatic backup system", - "Automated task scheduler" - ] - }, { name: "Pelican", url: URLS.services.pelican, - image: "/path/to/pelican-image.jpg", + image: logoPelican, icon: "🐧", description: "Ultra-fast and flexible Python static site generator. Create blogs, portfolios or documentation sites with optimal performance and simplified deployment.", features: [ @@ -69,6 +57,36 @@ export const en: Translation = { "Automated task scheduler" ] }, + { + name: "Password Change", + url: URLS.services.ssp, + image: "/path/to/ssp-image.jpg", + icon: "🔐", + description: "Secure interface for autonomous password management. Easily change your credentials safely.", + features: [ + "Secure interface to change your password", + "Password complexity validation", + "Email notifications of changes", + "Modification history" + ] + }, + { + name: "OpenCloud", + url: URLS.services.opencloud, + image: logoOpencloud, + icon: "☁️", + description: "Open-source collaborative cloud platform for file storage, sharing and synchronization. Free alternative to Google Drive with full control over your data.", + features: [ + "Secure and encrypted cloud storage", + "Multi-device synchronization", + "File sharing with secure links", + "Collaborative document editing", + "Automatic file versioning", + "Native mobile applications", + "Integration with external tools", + "Geo-redundant data backup" + ] + }, { name: "Intranet", url: URLS.services.intra, @@ -86,6 +104,22 @@ export const en: Translation = { "Archive of decisions and minutes" ] }, + { + name: "Gaming Panel", + url: URLS.services.panel, + image: "/path/to/panel-image.jpg", + icon: "🎮", + description: "Centralized management interface for all your game servers. Easily deploy, configure and monitor your Minecraft, CS2, Garry's Mod and many other servers.", + features: [ + "Support for 20+ popular games (Minecraft, CS2, GMod...)", + "One-click deployment with pre-configured templates", + "Real-time administration console", + "File management with integrated editor", + "Performance and resource monitoring", + "Automatic backup system", + "Automated task scheduler" + ] + }, { name: "Mails", url: URLS.services.mails, @@ -102,36 +136,6 @@ export const en: Translation = { "Communication encryption", "Automatic data backup" ] - }, - { - name: "Password Change", - url: URLS.services.ssp, - image: "/path/to/ssp-image.jpg", - icon: "🔐", - description: "Secure interface for autonomous password management. Easily change your credentials safely.", - features: [ - "Secure interface to change your password", - "Password complexity validation", - "Email notifications of changes", - "Modification history" - ] - }, - { - name: "OpenCloud", - url: URLS.services.opencloud, - image: "/path/to/opencloud-image.jpg", - icon: "☁️", - description: "Open-source collaborative cloud platform for file storage, sharing and synchronization. Free alternative to Google Drive with full control over your data.", - features: [ - "Secure and encrypted cloud storage", - "Multi-device synchronization", - "File sharing with secure links", - "Collaborative document editing", - "Automatic file versioning", - "Native mobile applications", - "Integration with external tools", - "Geo-redundant data backup" - ] } ], hero: { diff --git a/banquise-website/src/data/translations/fr.ts b/banquise-website/src/data/translations/fr.ts index 0d295bf..a85a723 100644 --- a/banquise-website/src/data/translations/fr.ts +++ b/banquise-website/src/data/translations/fr.ts @@ -1,12 +1,16 @@ import type { Translation } from '../../types/i18n'; import { URLS } from '../../config/constants'; +import logoGitea from '/src/assets/Gitea_Logo.png'; +import logoWiki from '/src/assets/wikijs.png'; +import logoPelican from '/src/assets/pelican.png'; +import logoOpencloud from '/src/assets/opencloud_logo_white.png'; export const fr: Translation = { services: [ { name: "Wiki", url: URLS.services.wiki, - image: "/path/to/wiki-image.jpg", + image: logoWiki, icon: "📚", description: "Plateforme collaborative de documentation technique et de partage de connaissances. Créez, modifiez et organisez vos guides, tutoriels et documentations en équipe avec un système de versioning intégré.", features: [ @@ -23,7 +27,7 @@ export const fr: Translation = { { name: "Gitea", url: URLS.services.gitea, - image: "/path/to/gitea-image.jpg", + image: logoGitea, icon: "🔧", description: "Service Git auto-hébergé lightweight et performant pour vos projets de développement. Alternative open-source à GitHub avec toutes les fonctionnalités essentielles pour gérer vos repositories.", features: [ @@ -37,26 +41,10 @@ export const fr: Translation = { "Webhooks pour les notifications externes" ] }, - { - name: "Panel Gaming", - url: URLS.services.panel, - image: "/path/to/panel-image.jpg", - icon: "🎮", - description: "Interface de gestion centralisée pour tous vos serveurs de jeux. Déployez, configurez et surveillez facilement vos serveurs Minecraft, CS2, Garry's Mod et bien d'autres.", - features: [ - "Support de 20+ jeux populaires (Minecraft, CS2, GMod...)", - "Déploiement en un clic avec templates préconfigurés", - "Console d'administration en temps réel", - "Gestion des fichiers avec éditeur intégré", - "Monitoring des performances et ressources", - "Système de sauvegarde automatique", - "Planificateur de tâches automatisées" - ] - }, { name: "Pelican", url: URLS.services.pelican, - image: "/path/to/pelican-image.jpg", + image: logoPelican, icon: "🐧", description: "Générateur de sites statiques Python ultra-rapide et flexible. Créez des blogs, portfolios ou sites de documentation avec une performance optimale et un déploiement simplifié.", features: [ @@ -69,6 +57,36 @@ export const fr: Translation = { "Planificateur de tâches automatisées" ] }, + { + name: "Changement de mot de passe", + url: URLS.services.ssp, + image: "/path/to/ssp-image.jpg", + icon: "🔐", + description: "Interface sécurisée pour la gestion autonome de vos mots de passe. Changez facilement vos identifiants en toute sécurité.", + features: [ + "Interface sécurisée pour changer votre mot de passe", + "Validation de la complexité des mots de passe", + "Notifications par email des changements", + "Historique des modifications" + ] + }, + { + name: "OpenCloud", + url: URLS.services.opencloud, + image: logoOpencloud, + icon: "☁️", + description: "Plateforme cloud collaborative open-source pour le stockage, le partage et la synchronisation de fichiers. Alternative libre à Google Drive avec contrôle total sur vos données.", + features: [ + "Stockage cloud sécurisé et chiffré", + "Synchronisation multi-appareils", + "Partage de fichiers avec liens sécurisés", + "Édition collaborative de documents", + "Versioning automatique des fichiers", + "Applications mobiles natives", + "Intégration avec outils externes", + "Sauvegarde géoredondante des données" + ] + }, { name: "Intranet", url: URLS.services.intra, @@ -86,6 +104,22 @@ export const fr: Translation = { "Archive des décisions et procès-verbaux" ] }, + { + name: "Panel Gaming", + url: URLS.services.panel, + image: "/path/to/panel-image.jpg", + icon: "🎮", + description: "Interface de gestion centralisée pour tous vos serveurs de jeux. Déployez, configurez et surveillez facilement vos serveurs Minecraft, CS2, Garry's Mod et bien d'autres.", + features: [ + "Support de 20+ jeux populaires (Minecraft, CS2, GMod...)", + "Déploiement en un clic avec templates préconfigurés", + "Console d'administration en temps réel", + "Gestion des fichiers avec éditeur intégré", + "Monitoring des performances et ressources", + "Système de sauvegarde automatique", + "Planificateur de tâches automatisées" + ] + }, { name: "Mails", url: URLS.services.mails, @@ -102,36 +136,6 @@ export const fr: Translation = { "Chiffrement des communications", "Sauvegarde automatique des données" ] - }, - { - name: "Changement de mot de passe", - url: URLS.services.ssp, - image: "/path/to/ssp-image.jpg", - icon: "🔐", - description: "Interface sécurisée pour la gestion autonome de vos mots de passe. Changez facilement vos identifiants en toute sécurité.", - features: [ - "Interface sécurisée pour changer votre mot de passe", - "Validation de la complexité des mots de passe", - "Notifications par email des changements", - "Historique des modifications" - ] - }, - { - name: "OpenCloud", - url: URLS.services.opencloud, - image: "/path/to/opencloud-image.jpg", - icon: "☁️", - description: "Plateforme cloud collaborative open-source pour le stockage, le partage et la synchronisation de fichiers. Alternative libre à Google Drive avec contrôle total sur vos données.", - features: [ - "Stockage cloud sécurisé et chiffré", - "Synchronisation multi-appareils", - "Partage de fichiers avec liens sécurisés", - "Édition collaborative de documents", - "Versioning automatique des fichiers", - "Applications mobiles natives", - "Intégration avec outils externes", - "Sauvegarde géoredondante des données" - ] } ], hero: {