-
-
- Contact-us
-
-
@@ -105,22 +81,8 @@
All Events
- @if (Environment.IsDevelopment())
- {
-
- Jobs
- Soon
-
- }
- @*
About us
-
Projects
-
Resources
-
Contact-us *@
+
@SharedLocalizer["Nav_About"]
diff --git a/src/app/Components/Components/Partners.razor b/src/app/Components/Components/Partners.razor
new file mode 100644
index 0000000..5141630
--- /dev/null
+++ b/src/app/Components/Components/Partners.razor
@@ -0,0 +1,40 @@
+@using Microsoft.Extensions.Localization
+@inject IStringLocalizerFactory LocalizerFactory
+
+
+
+
+
+ @SharedLocalizer["Sponsors_Badge"]
+
+
@SharedLocalizer["Sponsors_Title"]
+
@SharedLocalizer["Sponsors_Description"]
+
+
+
+ @foreach (var partner in _partners)
+ {
+
+
+
+ }
+
+
+
+
+@code {
+ private IStringLocalizer? _sharedLocalizer;
+ private IStringLocalizer SharedLocalizer => _sharedLocalizer ??= LocalizerFactory.Create("SharedResources", "app");
+
+ private record Partner(string Name, string Image, string Url);
+
+ private static readonly Partner[] _partners =
+ [
+ new(".NET Foundation", "/assets/sponsors/dotnetfondation.webp", "https://dotnetfoundation.org"),
+ new("Packt", "/assets/sponsors/packt.svg", "https://www.packtpub.com/"),
+ new("Microsoft PowerPlatform Cameroun", "/assets/sponsors/Microsoft_PowerPlateform_Cameroun-removebg-preview.png", "https://www.linkedin.com/company/communaut%C3%A9-microsoft-powerplatform"),
+ new("Proditech", "/assets/sponsors/proditech.png", "https://proditech-digital.com"),
+ ];
+}
diff --git a/src/app/Components/Pages/About.razor b/src/app/Components/Pages/About.razor
new file mode 100644
index 0000000..9959745
--- /dev/null
+++ b/src/app/Components/Pages/About.razor
@@ -0,0 +1,291 @@
+@page "/about"
+@using Microsoft.Extensions.Localization
+@attribute [StreamRendering]
+@inject IStringLocalizerFactory LocalizerFactory
+
+
@SharedLocalizer["About_PageTitle"]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @SharedLocalizer["About_Hero_Badge"]
+
+
+ @((MarkupString)SharedLocalizer["About_Hero_Title"].Value)
+
+
+ @SharedLocalizer["About_Hero_Subtitle"]
+
+
+
+
+
+
+
+
+
+
+
+
+

+
+
+
+ @SharedLocalizer["About_Story_Badge"]
+
+
@SharedLocalizer["About_Story_Title"]
+
+
@((MarkupString)SharedLocalizer["About_Story_Paragraph1"].Value)
+
@((MarkupString)SharedLocalizer["About_Story_Paragraph2"].Value)
+
@SharedLocalizer["About_Story_Paragraph3"]
+
+
+
+
+
1 100+
+
@SharedLocalizer["Membership_Stats_Members"]
+
+
+
60+
+
@SharedLocalizer["Membership_Stats_Events"]
+
+
+
2023
+
@SharedLocalizer["About_Stats_Founded"]
+
+
+
+
+
+
+
+
+
+
+
+
+ @SharedLocalizer["About_Mission_Badge"]
+
+
@SharedLocalizer["About_Mission_Title"]
+
@SharedLocalizer["About_Mission_Intro"]
+
+
+
+
+
+
+
+
@SharedLocalizer["About_Mission_1_Title"]
+
@SharedLocalizer["About_Mission_1_Description"]
+
+
+
+
+
+
+
@SharedLocalizer["About_Mission_2_Title"]
+
@SharedLocalizer["About_Mission_2_Description"]
+
+
+
+
+
+
+
@SharedLocalizer["About_Mission_3_Title"]
+
@SharedLocalizer["About_Mission_3_Description"]
+
+
+
+
+
+
+
@SharedLocalizer["About_Mission_4_Title"]
+
@SharedLocalizer["About_Mission_4_Description"]
+
+
+
+
+
+
+
@SharedLocalizer["About_Mission_5_Title"]
+
@SharedLocalizer["About_Mission_5_Description"]
+
+
+
+
+
+
+
@SharedLocalizer["About_Mission_6_Title"]
+
@SharedLocalizer["About_Mission_6_Description"]
+
+
+
+
+
+
+
+
+
+
+ @SharedLocalizer["About_Values_Badge"]
+
+
@SharedLocalizer["About_Values_Title"]
+
+
+
+
+
+
+
+
@SharedLocalizer["About_Value_Passion_Title"]
+
@SharedLocalizer["About_Value_Passion_Description"]
+
+
+
+
+
+
@SharedLocalizer["About_Value_Collaboration_Title"]
+
@SharedLocalizer["About_Value_Collaboration_Description"]
+
+
+
+
+
+
@SharedLocalizer["About_Value_Learning_Title"]
+
@SharedLocalizer["About_Value_Learning_Description"]
+
+
+
+
+
+
@SharedLocalizer["About_Value_Impact_Title"]
+
@SharedLocalizer["About_Value_Impact_Description"]
+
+
+
+
+
+
+
+
+
+
+ @SharedLocalizer["About_Founders_Badge"]
+
+
@SharedLocalizer["About_Founders_Title"]
+
@SharedLocalizer["About_Founders_Intro"]
+
+
+
+
+
+
+

+
+
+
Djoufson Che
+
@SharedLocalizer["About_Founder_Djoufson_Role"]
+
@SharedLocalizer["About_Founder_Djoufson_Bio"]
+
+
+ djoufson.com
+
+
+
+
+
+
+
+
+

+
+
+
Jaures Beinjamin
+
@SharedLocalizer["About_Founder_Jaures_Role"]
+
@SharedLocalizer["About_Founder_Jaures_Bio"]
+
+
+ jaures.me
+
+
+
+
+
+
+
+
+

+
+
+
Septime Lowe
+
@SharedLocalizer["About_Founder_Septime_Role"]
+
@SharedLocalizer["About_Founder_Septime_Bio"]
+
+
+ LinkedIn
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @SharedLocalizer["About_CTA_Title"]
+
+
+ @SharedLocalizer["About_CTA_Description"]
+
+
+
+
+
+
+@code {
+ private IStringLocalizer? _sharedLocalizer;
+ private IStringLocalizer SharedLocalizer => _sharedLocalizer ??= LocalizerFactory.Create("SharedResources", "app");
+}
diff --git a/src/app/Components/Pages/Home.razor b/src/app/Components/Pages/Home.razor
index 62bfabf..e3cf06a 100644
--- a/src/app/Components/Pages/Home.razor
+++ b/src/app/Components/Pages/Home.razor
@@ -1,4 +1,4 @@
-@page "/"
+@page "/"
@using app.business.Services
@using app.domain.Models.ProjectsAggregate
@using app.shared.Utilities
@@ -32,31 +32,75 @@
-
+
-
-
+
+
+
-
-
- @((MarkupString)SharedLocalizer["Hero_Title"].Value)
-
@SharedLocalizer["Hero_Description"]
-
-
@SharedLocalizer["Hero_LearnMore"]
-
@SharedLocalizer["Hero_JoinUs"]
+
+
+
+
+
+
+
+ @SharedLocalizer["Hero_Badge"]
+
+
+
+ @((MarkupString)SharedLocalizer["Hero_Title"].Value)
+
+
@SharedLocalizer["Hero_Description"]
+
+
+
+
+
+
1 100+
+
@SharedLocalizer["Membership_Stats_Members"]
+
+
+
60+
+
@SharedLocalizer["Membership_Stats_Events"]
+
+
+
6+
+
@((MarkupString)SharedLocalizer["Membership_Stats_Projects"].Value)
+
+
+
+
+
+ @SharedLocalizer["Hero_Scroll"]
+
+
+
-
+
-
@SharedLocalizer["WhatWeDo_Title"]
-
@SharedLocalizer["WhatWeDo_Description"]
-
+
+
+ @SharedLocalizer["WhatWeDo_Badge"]
+
+
@SharedLocalizer["WhatWeDo_Title"]
+
@SharedLocalizer["WhatWeDo_Description"]
+
+
-
-
-
-
+
+
+
-
@SharedLocalizer["Membership_Title"]
-
@SharedLocalizer["Membership_Description"]
-
-
-
-
-
600+
-
@((MarkupString)SharedLocalizer["Membership_Stats_Members"].Value)
+
+
+ @SharedLocalizer["Membership_Badge"]
+
+
@SharedLocalizer["Membership_Title"]
+
@SharedLocalizer["Membership_Description"]
+
+
+
+
1 100+
+
@((MarkupString)SharedLocalizer["Membership_Stats_Members"].Value)
-
-
2k+
-
@((MarkupString)SharedLocalizer["Membership_Stats_Followers"].Value)
+
+
4 000+
+
@((MarkupString)SharedLocalizer["Membership_Stats_Followers"].Value)
-
-
-
-
60+
-
@SharedLocalizer["Membership_Stats_Events"]
+
+
60+
+
@SharedLocalizer["Membership_Stats_Events"]
-
-
6+
-
@((MarkupString)SharedLocalizer["Membership_Stats_Projects"].Value)
-
+
+
6+
+
@((MarkupString)SharedLocalizer["Membership_Stats_Projects"].Value)
-
-
@SharedLocalizer["Membership_BecomeMember"]
+
+
-
-
-
@SharedLocalizer["Sponsors_Title"]
-
@SharedLocalizer["Sponsors_Description"]
-
-
-
+
@if(_projects.Length > 0)
{
-
+
-
@SharedLocalizer["Projects_Title"]
-
- @SharedLocalizer["Projects_Description"]
-
-
+
+
+ @SharedLocalizer["Projects_Badge"]
+
+
@SharedLocalizer["Projects_Title"]
+
@SharedLocalizer["Projects_Description"]
+
+
@foreach (var project in _projects)
{
-
-
@project.Title
-
@project.Description
+
+
+
@project.Title
+
@project.Description
-
- @foreach (var tech in project.Technologies.Split(','))
- {
-
#@tech
- }
+
+ @foreach (var tech in project.Technologies.Split(','))
+ {
+ #@tech.Trim()
+ }
+
-
+
@if(!string.IsNullOrWhiteSpace(project.Github))
{
-
-
+
+
}
@if(!string.IsNullOrWhiteSpace(project.Website))
{
-
-
+
+
}
@@ -177,10 +211,10 @@
@code {
private Project[] _projects = [];
-
+
private IStringLocalizer? _sharedLocalizer;
private IStringLocalizer SharedLocalizer => _sharedLocalizer ??= LocalizerFactory.Create("SharedResources", "app");
-
+
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
diff --git a/src/app/Resources/SharedResources.fr.resx b/src/app/Resources/SharedResources.fr.resx
index c47fa6b..c3639b2 100644
--- a/src/app/Resources/SharedResources.fr.resx
+++ b/src/app/Resources/SharedResources.fr.resx
@@ -965,4 +965,241 @@
Terminez la conférence avec des réflexions finales, des prix et des opportunités de réseautage continues.
+
+
+ À propos
+
+
+
+
+ Communauté active • +1 100 membres
+
+
+
+ Défiler
+
+
+
+ Nos activités
+
+
+
+ Rejoignez-nous
+
+
+
+ Open source
+
+
+
+
+ Nos partenaires
+
+
+
+ Vous souhaitez soutenir la communauté .NET au Cameroun ?
+
+
+
+ Devenir partenaire
+
+
+
+
+ .NET Cameroon 🇨🇲 | À propos
+
+
+
+ Découvrez la communauté .NET Cameroon — notre histoire, notre mission et les partenaires qui nous aident à faire grandir l'écosystème .NET local.
+
+
+
+ À propos de .NET Cameroon
+
+
+
+ Faire grandir la communauté <span class="text-primary">.NET</span> au Cameroun 🇨🇲
+
+
+
+ Nous sommes un groupe passionné de développeurs, d'étudiants et de passionnés de technologie engagés à rendre .NET accessible, pertinent et impactant à travers le Cameroun et au-delà.
+
+
+
+ Notre histoire
+
+
+
+ Comment tout a commencé
+
+
+
+ Tout a commencé le 5 septembre 2023, lorsque <a href="https://djoufson.com" target="_blank" rel="noopener" class="text-primary font-semibold hover:underline">Djoufson Che</a> a créé un petit groupe WhatsApp avec une idée simple : partager sa passion pour .NET et montrer qu'il s'agit d'une technologie puissante et pratique, parfaitement adaptée aux besoins locaux du Cameroun.
+
+
+
+ Il a rapidement été rejoint par <a href="https://www.jaures.me" target="_blank" rel="noopener" class="text-primary font-semibold hover:underline">Jaures Beinjamin</a> et <a href="https://www.linkedin.com/in/septime-lowe-b59513136/" target="_blank" rel="noopener" class="text-primary font-semibold hover:underline">Septime Lowe</a>. Ensemble, ils ont commencé à structurer la communauté en organisant des événements, des conférences et des meetups, en ligne et à travers tout le pays.
+
+
+
+ Aujourd'hui, la communauté .NET Cameroon compte plus de 1 100 membres actifs et continue de grandir, rassemblant développeurs, étudiants et passionnés de tech autour de la même envie : construire avec .NET.
+
+
+
+ Fondée en
+
+
+
+ Notre mission
+
+
+
+ Ce qui nous anime
+
+
+
+ Notre mission : faire grandir un écosystème .NET florissant, inclusif et ouvert au Cameroun — un développeur, un événement, un projet à la fois.
+
+
+
+ Promouvoir l'écosystème .NET
+
+
+
+ Mettre en avant la richesse des outils et bibliothèques disponibles pour les développeurs .NET via NuGet.org, GitHub et d'autres plateformes.
+
+
+
+ Défendre l'open source
+
+
+
+ Porter la voix des développeurs .NET open source au sein de la communauté locale et internationale.
+
+
+
+ Évangéliser .NET
+
+
+
+ Partager les atouts de la plateforme .NET avec une communauté plus large de développeurs, d'étudiants et de passionnés.
+
+
+
+ Adopter l'open source
+
+
+
+ Mettre en avant les avantages du modèle open source auprès des développeurs qui utilisent déjà .NET au quotidien.
+
+
+
+ Soutenir les projets des membres
+
+
+
+ Offrir un soutien administratif, de la visibilité et du mentorat aux projets portés par les membres de notre communauté.
+
+
+
+ Animer les événements communautaires
+
+
+
+ Soutenir les événements .NET de la communauté avec du sponsoring, des intervenants et des contenus de qualité à travers le pays.
+
+
+
+ Nos valeurs
+
+
+
+ Ce en quoi nous croyons
+
+
+
+ Passion
+
+
+
+ Nous aimons ce que nous faisons, et ça se ressent dans chaque événement, talk et ligne de code partagés.
+
+
+
+ Collaboration
+
+
+
+ Nous grandissons ensemble, en nous aidant à acquérir de meilleures compétences et à construire de meilleurs projets.
+
+
+
+ Apprentissage
+
+
+
+ Nous sommes curieux, toujours en train d'apprendre, et toujours prêts à partager ce que nous découvrons.
+
+
+
+ Impact
+
+
+
+ Nous bâtissons pour le continent, avec des solutions qui répondent à de vrais problèmes locaux.
+
+
+
+ Prêt à rejoindre le mouvement ?
+
+
+
+ Connectez-vous avec des centaines de développeurs .NET passionnés à travers le Cameroun. Partagez, apprenez, construisez — et grandissez avec nous.
+
+
+
+ Rejoindre la communauté
+
+
+
+ Nous contacter
+
+
+
+
+ Les fondateurs
+
+
+
+ Les visages derrière .NET Cameroon
+
+
+
+ Une petite équipe de développeurs passionnés qui ont transformé une idée simple en une communauté dynamique.
+
+
+
+ Fondateur & Lead
+
+
+
+ Ingénieur logiciel et passionné de .NET, Djoufson a lancé la communauté en 2023 avec un objectif simple : partager ses connaissances et démontrer que .NET a un bel avenir au Cameroun. Il pilote aujourd'hui la vision et les initiatives techniques de la communauté.
+
+
+
+ Co-fondateur
+
+
+
+ Développeur, créateur de contenu et bâtisseur de communautés, Jaures a rejoint très tôt l'aventure pour aider à structurer et faire grandir .NET Cameroon. Il joue un rôle clé dans l'organisation des événements et l'engagement des membres à travers le pays.
+
+
+
+ Co-fondateur
+
+
+
+ Passionné par l'écosystème .NET et la construction de communautés, Septime co-pilote la stratégie de la communauté et contribue aux partenariats, événements et au soutien des membres à travers le Cameroun.
+
+
diff --git a/src/app/Resources/SharedResources.resx b/src/app/Resources/SharedResources.resx
index feac903..e6e1363 100644
--- a/src/app/Resources/SharedResources.resx
+++ b/src/app/Resources/SharedResources.resx
@@ -965,4 +965,241 @@
Wrap up the conference with final thoughts, prizes, and continued networking opportunities.
+
+
+ About
+
+
+
+
+ Active community • 1 100+ members
+
+
+
+ Scroll
+
+
+
+ Our activities
+
+
+
+ Join us
+
+
+
+ Open source
+
+
+
+
+ Our partners
+
+
+
+ Want to support the .NET community in Cameroon?
+
+
+
+ Become a partner
+
+
+
+
+ .NET Cameroon 🇨🇲 | About us
+
+
+
+ Learn about the .NET Cameroon community — our story, our mission, and the partners who help us grow the local .NET ecosystem.
+
+
+
+ About .NET Cameroon
+
+
+
+ Empowering the <span class="text-primary">.NET</span> community in Cameroon 🇨🇲
+
+
+
+ We are a passionate group of developers, students, and tech enthusiasts committed to making .NET accessible, relevant, and impactful across Cameroon and beyond.
+
+
+
+ Our story
+
+
+
+ How it all started
+
+
+
+ It all began on September 5th, 2023, when <a href="https://djoufson.com" target="_blank" rel="noopener" class="text-primary font-semibold hover:underline">Djoufson Che</a> created a small WhatsApp group with a simple idea: share his passion for .NET and show that it's a powerful, practical technology well-suited to local needs in Cameroon.
+
+
+
+ He soon teamed up with <a href="https://www.jaures.me" target="_blank" rel="noopener" class="text-primary font-semibold hover:underline">Jaures Beinjamin</a> and <a href="https://www.linkedin.com/in/septime-lowe-b59513136/" target="_blank" rel="noopener" class="text-primary font-semibold hover:underline">Septime Lowe</a>, and together they started organizing the community at a higher level — hosting events, conferences, and meetups, both online and across the country.
+
+
+
+ Today, the .NET Cameroon community counts more than 1,100 active members and is still growing strong, bringing together developers, students, and tech enthusiasts who share a love for building with .NET.
+
+
+
+ Founded
+
+
+
+ Our mission
+
+
+
+ What drives us forward
+
+
+
+ Our mission is to grow a thriving, inclusive, and open .NET ecosystem in Cameroon — one developer, one event, one project at a time.
+
+
+
+ Promote the .NET ecosystem
+
+
+
+ Promote the wide range of tools and libraries available to .NET developers through NuGet.org, GitHub, and other platforms.
+
+
+
+ Advocate for open source
+
+
+
+ Advocate for the needs of .NET open source developers within the local and global community.
+
+
+
+ Evangelize .NET
+
+
+
+ Share the benefits of the .NET platform with a wider community of developers, students, and tech enthusiasts.
+
+
+
+ Embrace open source
+
+
+
+ Promote the benefits of the open source model to developers who are already using .NET in their daily work.
+
+
+
+ Support member projects
+
+
+
+ Offer administrative support, visibility, and mentorship for projects built by members of our community.
+
+
+
+ Empower community events
+
+
+
+ Support .NET community events with sponsorship, speakers, and quality content across the country.
+
+
+
+ Our values
+
+
+
+ What we believe in
+
+
+
+ Passion
+
+
+
+ We love what we do and it shows in every event, talk and line of code we share.
+
+
+
+ Collaboration
+
+
+
+ We grow together, helping each other build better skills and better projects.
+
+
+
+ Learning
+
+
+
+ We're always curious, always learning, and always sharing what we discover.
+
+
+
+ Impact
+
+
+
+ We build for the continent, with solutions that truly solve local problems.
+
+
+
+ Ready to join the movement?
+
+
+
+ Connect with hundreds of passionate .NET developers across Cameroon. Share, learn, build — and grow with us.
+
+
+
+ Join the community
+
+
+
+ Contact us
+
+
+
+
+ Meet the founders
+
+
+
+ The people behind .NET Cameroon
+
+
+
+ A small team of passionate developers who turned a simple idea into a thriving community.
+
+
+
+ Founder & Lead
+
+
+
+ Software engineer and .NET enthusiast, Djoufson started the community in 2023 with a simple goal: share his knowledge and prove that .NET has a bright future in Cameroon. He now leads the community's vision and technical initiatives.
+
+
+
+ Co-founder
+
+
+
+ Developer, content creator and community builder, Jaures joined early on to help structure and grow .NET Cameroon. He plays a key role in organizing events and engaging members across the country.
+
+
+
+ Co-founder
+
+
+
+ Passionate about the .NET ecosystem and community building, Septime co-leads the community's strategy and helps drive partnerships, events, and member support across Cameroon.
+
+
diff --git a/src/app/wwwroot/assets/team/septime.jpeg b/src/app/wwwroot/assets/team/septime.jpeg
new file mode 100644
index 0000000..60af837
Binary files /dev/null and b/src/app/wwwroot/assets/team/septime.jpeg differ