diff --git a/README.md b/README.md index 01696b18..22f9daad 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ ## Introduction The Africa Ruby Community (ARC) Platform is a project aimed at creating a hub for Ruby language enthusiasts in Africa. This platform facilitates connection, knowledge sharing, collaboration on projects, and staying updated with the latest Ruby community developments. Whether you're a seasoned developer or a beginner, this platform offers tailored resources for different countries and cities, merchandise, meetup information, and details about online workshops and webinars. +- **RubyConf Africa:** [RubyConf Africa](https://rubyconf.africa) +- **Merch Store:** [ARC Merch Store](https://shop.rubycommunity.africa) - **Project Design:** [ARC Platform Design](https://still-snowflake-8822.animaapp.io/) - **Database Design:** [ARC Database Design](https://dbdiagram.io/d/62afab7c9921fe2a96397c1e) diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..9c8d3756 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,27 @@ +# Security Policy + +## Supported Versions + +Please refer to the table below for the status of security updates for versions of this project. + +| Version | Supported | +| ------- | ------------------ | +| main | :white_check_mark: | + +## Reporting a Vulnerability + +The Africa Ruby Community (ARC) team takes the security of our platform and community seriously. If you discover a security vulnerability, we appreciate your help in disclosing it to us responsibly. + +### How to Report + +- **Do NOT** report security vulnerabilities through public GitHub issues, discussions, or pull requests. +- Please report security vulnerabilities via GitHub's private vulnerability reporting feature on this repository, or by emailing the project maintainers directly. +- Include a detailed description of the vulnerability, steps to reproduce, proof of concept (if applicable), and potential impact. + +### What to Expect + +- **Acknowledgment:** We will acknowledge receipt of your vulnerability report within 48 hours. +- **Assessment:** We will assess the report and confirm the vulnerability. +- **Fix & Disclosure:** We will work on a fix in a private branch/security advisory and release a patch as quickly as possible. We will coordinate public disclosure with you once the vulnerability is addressed. + +Thank you for helping keep the Africa Ruby Community safe! diff --git a/app/assets/images/sponsors/current/easyqna.jpeg b/app/assets/images/sponsors/current/easyqna.jpeg new file mode 100644 index 00000000..336dd9fc Binary files /dev/null and b/app/assets/images/sponsors/current/easyqna.jpeg differ diff --git a/app/assets/images/sponsors/current/fata.png b/app/assets/images/sponsors/current/fata.png deleted file mode 100644 index 2349ef96..00000000 Binary files a/app/assets/images/sponsors/current/fata.png and /dev/null differ diff --git a/app/assets/images/sponsors/current/remiapp.png b/app/assets/images/sponsors/current/remiapp.png new file mode 100644 index 00000000..2c2aeecd Binary files /dev/null and b/app/assets/images/sponsors/current/remiapp.png differ diff --git a/app/assets/images/sponsors/current/ustechnology.jpeg b/app/assets/images/sponsors/current/ustechnology.jpeg deleted file mode 100644 index 5d6bc8de..00000000 Binary files a/app/assets/images/sponsors/current/ustechnology.jpeg and /dev/null differ diff --git a/app/helpers/chapters_helper.rb b/app/helpers/chapters_helper.rb index f3fa20f7..9f383bbb 100644 --- a/app/helpers/chapters_helper.rb +++ b/app/helpers/chapters_helper.rb @@ -26,12 +26,13 @@ module ChaptersHelper alt_key: 'sponsors.current.typesense' }, { image: 'sponsors/current/sidekiq.png', link: 'https://sidekiq.org/', alt_key: 'sponsors.current.sidekiq' }, - { image: 'sponsors/current/fata.png', link: 'https://fata.dev/', - alt_key: 'sponsors.current.fata' }, + { image: 'sponsors/current/finplus.png', link: 'https://finplusgroup.com', alt_key: 'sponsors.current.finplus' }, { image: 'sponsors/current/senga.png', link: 'https://senga.co/', alt_key: 'sponsors.current.senga' }, - { image: 'sponsors/current/ustechnology.jpeg', link: 'https://ustechmiami.com/', - alt_key: 'sponsors.current.ustechnologies' }, + { image: 'sponsors/current/easyqna.jpeg', link: 'https://www.biztimamtechnologies.com/', + alt_key: 'sponsors.current.easyqna' }, + { image: 'sponsors/current/remiapp.png', link: 'https://remiapp.ai/', + alt_key: 'sponsors.current.remiapp' }, { image: 'sponsors/current/kodees.png', link: 'https://www.kodees.co.ke/', alt_key: 'sponsors.current.kodees' }, { image: 'sponsors/current/rubycon_italy.png', link: 'https://rubycon.it/', alt_key: 'sponsors.current.rubycon_italy' } @@ -41,14 +42,14 @@ module ChaptersHelper { image: 'sponsors/current/ruby_central.png', link: 'https://rubycentral.org/', alt_key: 'sponsors.current.ruby_central' }, - { image: 'sponsors/current/finplus.png', link: 'https://finplusgroup.com', alt_key: 'sponsors.current.finplus' }, + { image: 'sponsors/previous/solutech_official.svg', link: 'https://solutech.co.ke', alt_key: 'sponsors.current.solutech' }, { image: 'sponsors/previous/daystar.png', link: 'https://www.daystar.ac.ke/', alt_key: 'sponsors.current.daystar' }, { image: 'sponsors/current/prosper.png', link: 'https://www.prosperhedge.com/', alt_key: 'sponsors.current.prosper' }, - { image: 'sponsors/previous/gurzu.png', link: 'https://gurzu.com/', alt_key: 'sponsors.current.gurzu' }, - { image: 'sponsors/current/must-company.png', link: 'https://must.company/', alt_key: 'sponsors.current.must_company' } + { image: 'sponsors/previous/gurzu.png', link: 'https://gurzu.com/', alt_key: 'sponsors.current.gurzu' } + ].freeze SOCIALS = [ diff --git a/app/views/landing/home/_featured_sponsors.html.erb b/app/views/landing/home/_featured_sponsors.html.erb index 5ee0595e..c07a80d0 100644 --- a/app/views/landing/home/_featured_sponsors.html.erb +++ b/app/views/landing/home/_featured_sponsors.html.erb @@ -3,7 +3,7 @@

<%= t('landing.index.sponsors.featured_title') %>

-

<%= t('landing.index.sponsors.become_sponsor_hint', default: 'Our generous partners who make the community possible') %>

+

<%= t('landing.index.sponsors.featured_description', default: 'Our generous partners who make the community possible') %>

diff --git a/app/views/landing/home/_intro.html.erb b/app/views/landing/home/_intro.html.erb index 25902adf..e49fbc96 100644 --- a/app/views/landing/home/_intro.html.erb +++ b/app/views/landing/home/_intro.html.erb @@ -33,13 +33,13 @@ <%# Main Headline %>

- Building the future with Ruby in Africa + <%= t('landing.index.intro.hero_title') %>

<%# Subtitle Paragraph %>

- A community of 5,000+ developers, entrepreneurs, and designers across East Africa united by their passion for Ruby and open-source software. + <%= t('landing.index.intro.hero_description') %>

<%# Stats pills %> diff --git a/app/views/landing/home/_previous_sponsors.html.erb b/app/views/landing/home/_previous_sponsors.html.erb index 54f3a14e..b8715790 100644 --- a/app/views/landing/home/_previous_sponsors.html.erb +++ b/app/views/landing/home/_previous_sponsors.html.erb @@ -3,7 +3,7 @@

<%= t('landing.index.sponsors.previous_title') %>

-

<%= t('landing.index.sponsors.previous_hint', default: 'Organizations that have supported our mission over the years') %>

+

<%= t('landing.index.sponsors.previous_description', default: 'Organizations that have supported our mission over the years') %>

diff --git a/app/views/layouts/_footer.html.erb b/app/views/layouts/_footer.html.erb index 901b3638..2fe9b91d 100644 --- a/app/views/layouts/_footer.html.erb +++ b/app/views/layouts/_footer.html.erb @@ -46,6 +46,10 @@ class: "inline-block text-base-content/70 hover:text-red-500 dark:hover:text-red-400 transition-colors duration-200" %> <% end %> +
  • + <%= link_to t('footer.merch_store'), "https://shop.rubycommunity.africa", target: "_blank", rel: "noopener", + class: "inline-block text-base-content/70 hover:text-red-500 dark:hover:text-red-400 transition-colors duration-200" %> +
  • @@ -73,7 +77,7 @@ <% end %>
  • - <%= link_to "Code of Conduct", landing_code_of_conduct_path, + <%= link_to t('footer.code_of_conduct'), landing_code_of_conduct_path, class: "inline-block text-base-content/70 hover:text-red-500 dark:hover:text-red-400 transition-colors duration-200" %>
  • diff --git a/app/views/layouts/_navbar.html.erb b/app/views/layouts/_navbar.html.erb index 1fd980c2..71de94c8 100644 --- a/app/views/layouts/_navbar.html.erb +++ b/app/views/layouts/_navbar.html.erb @@ -37,6 +37,7 @@
  • <%= link_to t('navigation.events'), events_path, class: "text-sm" %>
  • <%= link_to t('navigation.chapters'), chapters_path, class: "text-sm" %>
  • <%= link_to t('navigation.projects'), projects_path, class: "text-sm" %>
  • +
  • <%= link_to t('navigation.merch_store'), "https://shop.rubycommunity.africa", target: "_blank", rel: "noopener", class: "text-sm" %>
  • <%= link_to t('navigation.code_of_conduct'), landing_code_of_conduct_path, class: "text-sm" %>
  • @@ -134,6 +135,7 @@ <% end %>
  • <%= link_to t('navigation.built_with_ruby'), built_with_ruby_path, class: "rounded-xl font-medium" %>
  • +
  • <%= link_to t('navigation.merch_store'), "https://shop.rubycommunity.africa", target: "_blank", rel: "noopener", class: "rounded-xl font-medium" %>
  • <%= link_to t('navigation.code_of_conduct'), landing_code_of_conduct_path, class: "rounded-xl font-medium" %>
  • diff --git a/config/locales/en.yml b/config/locales/en.yml index 771ce6e3..31d64a01 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -96,13 +96,15 @@ en: index: intro: title: "African Ruby Community" - subtitle: "Ruby Conf Africa 2026" - conference_dates: "21st–22nd August 2026" + subtitle: "Ruby Conf Africa 2027" + conference_dates: "21st–22nd May 2027" conference_description: "Join the largest Ruby conference in Africa!" description: "A community organization that seeks to promote computer software programming skills with the Ruby programming language." members_count: "Members across East Africa" years_count: "Years of Ruby community" - conference_alt: "Ruby Conf Africa 2025" + conference_alt: "Ruby Conf Africa 2027" + hero_title: "Building the future with Ruby in Africa" + hero_description: "A community of 5,000+ developers, entrepreneurs, and designers across East Africa united by their passion for Ruby and open-source software." who_we_are: title: "African Ruby Community" subtitle: "Who are We?" @@ -276,6 +278,9 @@ en: finplus: "Finplus Group" typesense: "Typesense" sidekiq: "Sidekiq" + senga: "Senga" + easyqna: "EasyQna" + remiapp: "Remiapp" previous: solutech: "Solutech" @@ -287,7 +292,7 @@ en: daystar: "Daystar" prosper: "Prosper Hedge" gurzu: "Gurzu" - must_company: "Must Company" + social_media: twitter: "ARC Twitter" @@ -340,6 +345,7 @@ en: conferences: "Conferences" chapters: "Chapters" projects: "Projects" + merch_store: "Merch Store" learning_materials: "Learning Materials" built_with_ruby: "Built with Ruby" sign_in: "Sign in" @@ -376,6 +382,7 @@ en: events: "Events" chapters: "Chapters" projects: "Projects" + merch_store: "Merch Store" learning_materials: "Learning materials" sponsor: "Sponsor" members: "Members" @@ -387,7 +394,7 @@ en: made_with: "Made with" by_arc: "by African Ruby Community" about_details: "African Ruby Community. Empowering 5,000+ developers, creators, and tech leaders across Africa through Ruby, open source, and collaborative innovation since 2010." - copyright: "All Rights Reserved. African Ruby Community. Copyright %{year}" + copyright: "© %{year} African Ruby Community. All Rights Reserved." # Learning Materials page translations learning_materials: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index d43d46ce..948f649d 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -95,13 +95,15 @@ fr: index: intro: title: "Communauté Ruby Africaine" - subtitle: "Ruby Conf Africa 2026" - conference_dates: "21-22 août 2026" + subtitle: "Ruby Conf Africa 2027" + conference_dates: "21-22 mai 2027" conference_description: "Rejoignez la plus grande conférence Ruby en Afrique !" description: "Une organisation communautaire qui cherche à promouvoir les compétences de programmation logicielle avec le langage de programmation Ruby." members_count: "Membres à travers l'Afrique de l'Est" years_count: "Années de communauté Ruby" - conference_alt: "Ruby Conf Africa 2025" + conference_alt: "Ruby Conf Africa 2027" + hero_title: "Bâtir l'avenir avec Ruby en Afrique" + hero_description: "Une communauté de plus de 5 000 développeurs, entrepreneurs et designers à travers l'Afrique de l'Est, unis par leur passion pour Ruby et les logiciels open source." who_we_are: title: "Communauté Ruby Africaine" subtitle: "Qui sommes-nous ?" @@ -274,6 +276,9 @@ fr: typesense: "Typesense" sidekiq: "Sidekiq" rubycon_italy: "Rubycon Italy" + senga: "Senga" + easyqna: "EasyQna" + remiapp: "Remiapp" previous: solutech: "Solutech" @@ -285,7 +290,7 @@ fr: daystar: "Daystar" prosper: "Prosper Hedge" gurzu: "Gurzu" - must_company: "Must Company" + social_media: twitter: "ARC Twitter" @@ -338,7 +343,9 @@ fr: conferences: "Conférences" chapters: "Chapitres" projects: "Projets" + merch_store: "Boutique" learning_materials: "Matériel d'Apprentissage" + built_with_ruby: "Développé avec Ruby" sign_in: "Se connecter" sign_up: "S'inscrire" sign_out: "Se déconnecter" @@ -374,6 +381,7 @@ fr: events: "Événements" chapters: "Chapitres" projects: "Projets" + merch_store: "Boutique" learning_materials: "Matériel d'apprentissage" sponsor: "Sponsor" members: "Membres" @@ -385,7 +393,7 @@ fr: made_with: "Fait avec" by_arc: "par African Ruby Community" about_details: "African Ruby Community. Autonomiser plus de 5 000 développeurs, créateurs et leaders technologiques à travers l'Afrique grâce à Ruby, au logiciel libre et à l'innovation collaborative depuis 2010." - copyright: "Tous droits réservés. Communauté Ruby Africaine. Copyright %{year}" + copyright: "© %{year} Communauté Ruby Africaine. Tous droits réservés." # Learning Materials page translations learning_materials: diff --git a/config/locales/sw.yml b/config/locales/sw.yml index 07251389..2d4446bd 100644 --- a/config/locales/sw.yml +++ b/config/locales/sw.yml @@ -95,13 +95,15 @@ sw: index: intro: title: "Jumuiya ya Ruby ya Kiafrika" - subtitle: "Ruby Conf Africa 2026" - conference_dates: "21-22 Agosti 2026" + subtitle: "Ruby Conf Africa 2027" + conference_dates: "21-22 Mei 2027" conference_description: "Jiunge na mkutano mkuu wa Ruby nchini Afrika!" description: "Shirika la kijamii linaloongoza ustadi wa uprogramu wa kompyuta kwa kutumia lugha ya uprogramu ya Ruby." members_count: "Wanachama katika Afrika Mashariki" years_count: "Miaka ya jumuiya ya Ruby" - conference_alt: "Ruby Conf Africa 2025" + conference_alt: "Ruby Conf Africa 2027" + hero_title: "Kujenga siku zijazo kupitia Ruby nchini Afrika" + hero_description: "Jamii ya wasanidi programu, wajasiriamali, na wabunifu zaidi ya 5,000 kote Afrika Mashariki waliounganishwa na mapenzi yao kwa Ruby na programu za chanzo huria." who_we_are: title: "Jumuiya ya Ruby ya Kiafrika" subtitle: "Sisi ni nani?" @@ -273,6 +275,9 @@ sw: finplus: "Finplus Group" typesense: "Typesense" sidekiq: "Sidekiq" + senga: "Senga" + easyqna: "EasyQna" + remiapp: "Remiapp" previous: solutech: "Solutech" @@ -284,7 +289,7 @@ sw: daystar: "Daystar" prosper: "Prosper Hedge" gurzu: "Gurzu" - must_company: "Must Company" + social_media: twitter: "ARC Twitter" @@ -337,7 +342,9 @@ sw: conferences: "Mikutano" chapters: "Sura" projects: "Miradi" + merch_store: "Duka la Bidhaa" learning_materials: "Nyenzo za Kujifunzia" + built_with_ruby: "Imejengwa kwa Ruby" sign_in: "Ingia" sign_up: "Jisajili" sign_out: "Toka" @@ -372,11 +379,12 @@ sw: events: "Matukio" chapters: "Sura" projects: "Miradi" + merch_store: "Duka la Bidhaa" learning_materials: "Nyenzo za kujifunzia" sponsor: "Mfadhili" members: "Wanachama" about: "Kuhusu" - built_with_ruby: "Imetengenezwe kwa Ruby" + built_wit_ruby: "Imejengwa kwa Ruby" contact_us: "Wasiliana Nasi" code_of_conduct: "Kanuni za maadili" connect: "Unganisha" @@ -384,7 +392,7 @@ sw: by_arc: "na African Ruby Community" about_details: "African Ruby Community. Kukuza na kuwezesha zaidi ya wataalamu 5,000 wa mfumo wa kidijitali, wabunifu na viongozi wa kiteknolojia kote Barani Afrika kupitia Ruby, chanzo wazi na ubunifu wa pamoja tangu 2010." - copyright: "Haki Zote Zimehifadhiwa. Jumuiya ya Ruby ya Kiafrika. Hakimiliki %{year}" + copyright: "© %{year} Jumuiya ya Ruby ya Kiafrika. Haki Zote Zimehifadhiwa." # Learning Materials page translations learning_materials: