diff --git a/OLDREADME.md b/OLDREADME.md new file mode 100644 index 00000000..ebbb65c3 --- /dev/null +++ b/OLDREADME.md @@ -0,0 +1,208 @@ +# Africa Ruby Community(ARC) Platform + +## Introduction +The project aims to build a platform for African Ruby language enthusiasts to connect, share their knowledge and experience, collaborate on projects, and stay up-to-date with the latest developments in the Ruby community, whether they are seasoned developers or beginners just starting out. The platform features a variety of resources, including different chapters for different countries and cities, merchandise, and meetup information. It will also help users get information on online workshops, webinars, and meetups organized by the community, enabling them to learn from experts and network with other enthusiasts. + +**Project Design:** https://still-snowflake-8822.animaapp.io/ + +**Database Design:** https://dbdiagram.io/d/62afab7c9921fe2a96397c1e + +**N.B.** Please note that this project is open source, you are therefore encourage to contribute + +## Application Setup + +### Step 1: Install prerequisites +## Installing Ruby Version Manager(RVM) package +* RVM is a command-line tool that allows you to easily install, manage, and work with multiple Ruby environments, including interpreters and sets of gems. It supports both UNIX-like systems and Windows (with [Cygwin](https://cygwin.com) or [Bash on Ubuntu on Windows](https://msdn.microsoft.com/en-us/commandline/wsl/about)). + +Run the following in the terminal or CMD (on Windows) + +``` $ \curl -sSL https://get.rvm.io | bash -s stable ``` + +* Restart the terminal or cmd and run command below to check if rvm is installed. + + ```$ rvm list ``` +### Installing ruby via RVM + +``` $ rvm install ``` + +* e.g. Ruby Version 3.0.2 + +### Installing Rails via RVM + +Since Rails is a gem, which is a standardized format that contains Ruby programs, you can also install various versions of Rails by using the ``` gem ``` command + +``` $ gem install rails -v ``` + +* e.g. Rails Version 7.0.3 + +NB: For more installation details, checkout [Installing RVM](https://rvm.io/rvm/install) documentation on the same. + +## Installing rbenv + +* rbenv is a version control tool for Ruby. It helps you switch between different Ruby versions and make sure that every project you are working on always operates independently on the designated version. + +### Usage + +You can choose the Ruby version for your project with, for example: +```sh +cd myproject +# choose Ruby version 3.0.2: +rbenv local 3.0.2 +``` + +### Installation + +On systems with Homebrew package manager, the “Using Package Managers” method is recommended. On other systems, “Git Checkout” might be the easiest way of ensuring that you are always installing the latest version of rbenv. + +### Using Package Managers + +1. Install rbenv using one of the following approaches. + + #### Homebrew + + On macOS or Linux, we recommend installing rbenv with [Homebrew](https://brew.sh). + + ```sh + $ brew install rbenv ruby-build + ``` + + #### Debian, Ubuntu, and their derivatives + + >Note that the version of rbenv that is packaged and maintained in the Debian and Ubuntu repositories is _out of date_. To install the latest version, it is recommended to [install rbenv using git](#basic-git). + + ```sh + $ sudo apt install rbenv + ``` + + #### Arch Linux and its derivatives + + Archlinux has an [AUR Package](https://aur.archlinux.org/packages/rbenv/) for + rbenv and you can install it from the AUR using the instructions from this + [wiki page](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_and_upgrading_packages). + +2. Load rbenv in your shell. + + ```sh + # run this and follow the printed instructions: + $ rbenv init + ``` + +3. Restart your terminal so your changes take effect. + +That's it! You are now ready to [install different ruby versions](#installing-ruby-versions). + +### Basic Git + +1. Clone rbenv into `~/.rbenv`. + + ```sh + $ git clone https://github.com/rbenv/rbenv.git ~/.rbenv + ``` + +2. Configure your shell to load rbenv: + + * For **bash**: + + _Ubuntu Desktop_ users should configure `~/.bashrc`: + ```bash + $ echo 'eval "$(~/.rbenv/bin/rbenv init - bash)"' >> ~/.bashrc + ``` + + On _other platforms_, bash is usually configured via `~/.bash_profile`: + ```bash + $ echo 'eval "$(~/.rbenv/bin/rbenv init - bash)"' >> ~/.bash_profile + ``` + + * For **Zsh**: + ```zsh + echo 'eval "$(~/.rbenv/bin/rbenv init - zsh)"' >> ~/.zshrc + ``` +3. Restart your shell so that these changes take effect. + +### Installing ruby via rbenv + +Before attempting to install Ruby, check that [your build environment](https://github.com/rbenv/ruby-build/wiki#suggested-build-environment) has the necessary tools and libraries. Then: + +```sh +# list latest stable versions: +rbenv install -l +# list all local versions: +rbenv install -L +# install a Ruby version: +rbenv install 3.0.2 +``` +All done! + +You are now free to proceed to the steps below: + +### Step 2: Create a Fork & Branch + +* Create a fork of this repository from main branch +* Select an issue to work on from the main repository +* Create a branch name to match the selected issue from the main branch + +NB: +1. Always make sure your fork is in sync with the main +2. All changes you make for the issue will be on this branch + +### Step 3: Clone & install dependencies + +Run the following command in the terminal + +``` $ git clone ``` + +``` $ cd ``` + +``` $ bundle install ``` + +### Step 4: Setup the database + +``` $ rails db:create ``` + +``` $ rails db:migrate ``` + +### Step 4: Install yarn dependancies + +``` yarn install ``` + +### Step 5: Start server + +```./bin/dev``` + +### step 6: Creating a pull request + +* make changes locally on your branch +* push your changes to your branch on github +* create a pull request to main branch of the main repository + +### step 7: Merging + +Once your changes are reviewed they will be merged to the main branch + +## Contributing + +Thank you for your interest in contributing to the Africa Ruby Community (ARC) Platform! We welcome contributions from developers of all experience levels. + +### Finding Issues to Work On + +We label our issues to help contributors find ones that match their skills and experience level. Here are some labels you might find helpful: + + +| Difficulty Level | Description | Label | + |------------------|------------------------------------------|----------| +| Easy/ Beginner/ Novice | Issues that are ideal for first-time contributors | ![DifficultyLevelEasy](https://img.shields.io/badge/DifficultyLevelEasy-green.svg?style=for-the-badge)| +| Very Easy | Simple issues that can be fixed quickly | ![DifficultyLevelVeryEasy](https://img.shields.io/badge/DifficultyLevelVeryEasy-619B16?style=for-the-badge)| +| Average/ Normal/ Medium/ Standard/ Intermediate | Issues that require some understanding of the codebase | ![DifficultyLevelAverage](https://img.shields.io/badge/DifficultyLevelAverage-DAD22C?style=for-the-badge&color=fbca04) | +| Hard/ Expert/ Difficult | Issues that require a significant amount of time and effort | ![DifficultyLevelHard](https://img.shields.io/badge/DifficultyLevelHard-E1803C?style=for-the-badge&color=d93f0b) | +| Harder | Very challenging issues that require advanced knowledge | ![DifficultyLevelHarder](https://img.shields.io/badge/DifficultyLevelHarder-C70039?style=for-the-badge)| + + +To guide people in searching for issues using these labels, you can provide the following steps: + +1. Go to the project's repository on GitHub. +2. Click on the `Issues` tab. +3. Use the search bar at the top to search for issues using one or more of the labels listed above. +4. You can refine your search by adding additional keywords or filters, such as language, platform, or component. +5. Once you find an issue you are interested in working on, read through the description and comments to get a better understanding of the problem and any suggested solutions. +6. If you have any questions or need help, leave a comment on the issue and wait for feedback from other contributors or maintainers. \ No newline at end of file diff --git a/README.md b/README.md index 75fb4fcd..b841d9b8 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,12 @@ The Africa Ruby Community (ARC) Platform is a project aimed at creating a hub fo *Note: This project is open source, and contributions are encouraged.* ## Application Setup -To follow along, watch this youtube tutorial on how to set up the application step by step on WSL. +- To follow along, watch this youtube tutorial on how to set up the application step by step on WSL. [![Application Setup](https://img.youtube.com/vi/-mz76HidnGA/0.jpg)](https://www.youtube.com/watch?v=-mz76HidnGA) +- [Old README](./README.md): `rvm` and `rvenv` users + ## Step 1: Install Prerequisites ### Installing ASDF @@ -66,6 +68,12 @@ asdf global ruby 3.2.2 gem update --system ``` +Install foreman gem + +```shell +gem install foreman +``` + Confirm the default Ruby version matches the version you just installed. ```sh diff --git a/app/assets/images/sponsors/current/app_signal.png b/app/assets/images/sponsors/current/app_signal.png new file mode 100644 index 00000000..d449fa3d Binary files /dev/null and b/app/assets/images/sponsors/current/app_signal.png differ diff --git a/app/assets/images/sponsors/current/friendly_rb.jpg b/app/assets/images/sponsors/current/friendly_rb.jpg new file mode 100644 index 00000000..6dcea72b Binary files /dev/null and b/app/assets/images/sponsors/current/friendly_rb.jpg differ diff --git a/app/assets/images/sponsors/current/kca.png b/app/assets/images/sponsors/current/kca.png new file mode 100644 index 00000000..d31d2951 Binary files /dev/null and b/app/assets/images/sponsors/current/kca.png differ diff --git a/app/assets/images/sponsors/current/kopo_kopo.png b/app/assets/images/sponsors/current/kopo_kopo.png new file mode 100644 index 00000000..8af9737d Binary files /dev/null and b/app/assets/images/sponsors/current/kopo_kopo.png differ diff --git a/app/assets/images/sponsors/current/microverse.png b/app/assets/images/sponsors/current/microverse.png new file mode 100644 index 00000000..9746be53 Binary files /dev/null and b/app/assets/images/sponsors/current/microverse.png differ diff --git a/app/assets/images/sponsors/current/planet_argon.png b/app/assets/images/sponsors/current/planet_argon.png new file mode 100644 index 00000000..5a2ab5fd Binary files /dev/null and b/app/assets/images/sponsors/current/planet_argon.png differ diff --git a/app/assets/images/sponsors/current/ruby_central.png b/app/assets/images/sponsors/current/ruby_central.png new file mode 100644 index 00000000..43fe5b6f Binary files /dev/null and b/app/assets/images/sponsors/current/ruby_central.png differ diff --git a/app/assets/images/sponsors/current/solutech_official.svg b/app/assets/images/sponsors/current/solutech_official.svg new file mode 100644 index 00000000..42c66838 --- /dev/null +++ b/app/assets/images/sponsors/current/solutech_official.svg @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/helpers/chapters_helper.rb b/app/helpers/chapters_helper.rb index 1a7c3d9f..9e2b2c80 100644 --- a/app/helpers/chapters_helper.rb +++ b/app/helpers/chapters_helper.rb @@ -1,52 +1,72 @@ # frozen_string_literal: true module ChaptersHelper + ACTIVITIES = [ + { image: 'activities_local_meetups.png', title: 'Local meetups' }, + { image: 'activities_local_conferences.png', title: 'conferences' }, + { image: 'activities_local_programming.png', title: 'programming' }, + { image: 'activities_local_workshops.png', title: 'workshops' }, + { image: 'activities_local_hackathons.png', title: 'hackathons' } + ].freeze + + CHAPTERS = [ + { country: 'Kenya', image: 'country_kenya.png', alt: 'Nairuby' }, + { country: 'Rwanda', image: 'country_rwanda.png', alt: 'ARC_Rwanda' }, + { country: 'Tanzania', image: 'country_tanzania.png', alt: 'ARC_Tanzania' }, + { country: 'Uganda', image: 'country_uganda.png', alt: 'ARC_Uganda' } + ].freeze + + FEATURED_SPONSORS = [ + { image: 'sponsors/current/nairobits.png', link: 'https://www.nairobits.com/', alt: 'Nairobits' }, + { image: 'sponsors/current/finplus.png', link: 'https://finplusgroup.com', alt: 'Finplus Group' }, + { image: 'sponsors/current/app_signal.png', link: 'https://www.appsignal.com', alt: 'App Signal' }, + { image: 'sponsors/current/friendly_rb.jpg', link: 'https://friendlyrb.com/', alt: 'FriendlyRB' }, + { image: 'sponsors/current/kopo_kopo.png', link: 'https://kopokopo.co.ke', alt: 'Kopo Kopo' }, + { image: 'sponsors/current/microverse.png', link: 'https://www.microverse.org/', alt: 'Microverse' }, + { image: 'sponsors/current/planet_argon.png', link: 'https://www.planetargon.com', alt: 'Planet Argon' }, + { image: 'sponsors/current/ruby_central.png', link: 'https://rubycentral.org/', alt: 'Ruby Central' }, + { image: 'sponsors/current/solutech_official.svg', link: 'https://solutech.co.ke', alt: 'Solutech' }, + { image: 'sponsors/current/kca.png', link: 'https://www.kcau.ac.ke', alt: 'KCA University' } + ].freeze + + PREVIOUS_SPONSORS = [ + { image: 'sponsors/previous/shopify.webp', link: 'https://www.shopify.com/', alt: 'Shopify' }, + { image: 'sponsors/previous/turing.png', link: 'https://www.turing.com/', alt: 'Turing' }, + { image: 'sponsors/previous/kopokopo.png', link: 'https://kopokopo.co.ke', alt: 'Kopokopo' }, + { image: 'sponsors/previous/kwara.png', link: 'https://kwara.com/', alt: 'Kwara' }, + { image: 'sponsors/previous/ihub.png', link: 'https://ihub.co.ke/', alt: 'iHub, Nairobi' }, + { image: 'sponsors/previous/andela.png', link: 'https://andela.com/', alt: 'Andela' } + ].freeze + + SOCIALS = [ + { alt: 'ARC Twitter', link: 'https://twitter.com/ruby_african', image: 'brands_twitter.png', show: true }, + { alt: 'ARC telegram', link: '#', image: 'brands_telegram.png', + show: FeatureFlag.find_by(name: 'telegram')&.enabled }, + { alt: 'ARC facebook', link: 'https://www.facebook.com/rubycommunity.africa', image: 'brands_facebook.png', + show: true }, + { alt: 'ARC Instagram', link: '#', image: 'brands_instagram.png', show: true }, + { alt: 'ARC LinkedIn', link: 'https://www.linkedin.com/company/african-ruby-community/', + image: 'brands_linkedin.png', show: true }, + { alt: 'ARC Github', link: 'https://github.com/nairuby', image: 'brands_github.png', show: true } + ].freeze + def activities - [ - { image: 'activities_local_meetups.png', title: 'Local meetups' }, - { image: 'activities_local_conferences.png', title: 'conferences' }, - { image: 'activities_local_programming.png', title: 'programming' }, - { image: 'activities_local_workshops.png', title: 'workshops' }, - { image: 'activities_local_hackathons.png', title: 'hackathons' } - ] + ACTIVITIES end def chapters - [ - { country: 'Kenya', image: 'country_kenya.png', alt: 'Nairuby' }, - { country: 'Rwanda', image: 'country_rwanda.png', alt: 'ARC_Rwanda' }, - { country: 'Tanzania', image: 'country_tanzania.png', alt: 'ARC_Tanzania' }, - { country: 'Uganda', image: 'country_uganda.png', alt: 'ARC_Uganda' } - ] + CHAPTERS end def featured_sponsors - [ - { image: 'sponsors/current/nairobits.png', link: 'https://www.nairobits.com/', alt: 'Nairobits' }, - { image: 'sponsors/current/finplus.png', link: 'https://finplusgroup.com', alt: 'Finplus Group' } - ] + FEATURED_SPONSORS end def previous_sponsors - [ - { image: 'sponsors/previous/shopify.webp', link: 'https://www.shopify.com/', alt: 'Shopify' }, - { image: 'sponsors/previous/turing.png', link: 'https://www.turing.com/', alt: 'Turing' }, - { image: 'sponsors/previous/kopokopo.png', link: 'https://kopokopo.co.ke', alt: 'Kopokopo' }, - { image: 'sponsors/previous/kwara.png', link: 'https://kwara.com/', alt: 'Kwara' }, - { image: 'sponsors/previous/ihub.png', link: 'https://ihub.co.ke/', alt: 'iHub, Nairobi' }, - { image: 'sponsors/previous/andela.png', link: 'https://andela.com/', alt: 'Andela' } - ] + PREVIOUS_SPONSORS end def socials - [{ alt: 'ARC Twitter', link: 'https://twitter.com/ruby_african', image: 'brands_twitter.png', show: true }, - { alt: 'ARC telegram', link: '#', image: 'brands_telegram.png', - show: FeatureFlag.find_by(name: 'telegram').try(:enabled) }, - { alt: 'ARC facebook', link: 'https://www.facebook.com/rubycommunity.africa', - image: 'brands_facebook.png', show: true }, - { alt: 'ARC Instagram', link: '#', image: 'brands_instagram.png', show: true }, - { alt: 'ARC LinkedIn', link: 'https://www.linkedin.com/company/african-ruby-community/', - image: 'brands_linkedin.png', show: true }, - { alt: 'ARC Github', link: 'https://github.com/nairuby', image: 'brands_github.png', show: true }] + SOCIALS end end diff --git a/app/views/landing/home/_featured_sponsors.html.erb b/app/views/landing/home/_featured_sponsors.html.erb index ca6e39f4..d0344cc5 100644 --- a/app/views/landing/home/_featured_sponsors.html.erb +++ b/app/views/landing/home/_featured_sponsors.html.erb @@ -1,13 +1,15 @@ -

- Featured Sponsors -

+
+

+ Featured Sponsors +

-
- <% featured_sponsors.each do |sponsor| %> - <%= link_to sponsor[:link], target: '_blank' do %> -
- <%= image_tag sponsor[:image], alt: sponsor[:alt] %> -
+
+ <% featured_sponsors.each do |sponsor| %> + <%= link_to sponsor[:link], target: '_blank' do %> +
+ <%= image_tag sponsor[:image], alt: sponsor[:alt] %> +
+ <% end %> <% end %> - <% end %> +
diff --git a/app/views/landing/home/_intro.html.erb b/app/views/landing/home/_intro.html.erb index 789ee4cc..1b8af494 100644 --- a/app/views/landing/home/_intro.html.erb +++ b/app/views/landing/home/_intro.html.erb @@ -1,3 +1,9 @@ + +

African Ruby Community