Contribution Guidelines for YorubaName Codebase

This post provides bite-sized information that should help with the onboarding process for anyone who wants to contribute to the YorubaName dictionary project.

The skills needed to work on the YorubaName codebase are quite varied. This makes it possible for a diverse set of people with a wide range of technical skills to be able to join in the project: from developers/designers, UI/UX experts, to enthusiastic users and language lovers. This post provides the basic steps for all these types of people to get started.

Want to Contribute? Where to start?

Getting involved in the project is super easy.

Your first action point is to read the General Information README. It contains project-wide information that should be known to anyone working with the YorubaName codebase. Reading this would help provide clarity regarding the lay of the land and how different aspects of the codebase fit together.

The rest of the post explores the more specific guidelines.

Contributing as a developer to the Dashboard Application

The Dashboard application is a stand alone JavaScript application built with AngularJS. So if you are a JavaScript developer with some AngularJs chops, then this is where you may want to start:

  1. Clone and/or Fork the Dashboard application at https://github.com/Yorubaname/yorubaname-dashboard
  2. To understand how to run the application, go through the README at https://github.com/Yorubaname/yorubaname-dashboard/blob/master/README.md
  3. Ready to start coding? Then check the issue tracker at https://github.com/Yorubaname/yorubaname-dashboard/issues for a list of things you can start working on right away. Feel free to ask questions regarding the issues you are interested in working on in the issue tracker.
  4. If you have any questions regarding the project or the code base, feel free to drop by our gitter room at https://gitter.im/yorubaname-dictionary/dev, we would be eager answer your questions.

Contributing as a developer to the Core Website Application

The core of the dictionary and the website are written in Java using Spring boot. ElasticSearch is also used to power the search. So if you are comfortable with programming in Java and its ecosystem (or maybe you want to learn some more), this is where to start:

  1. Clone and/or Fork the Website application at https://github.com/Yorubaname/yorubaname-website
  2. To understand how to run the application, go through the README at https://github.com/Yorubaname/yorubaname-website/blob/master/README.md
  3. Ready to start coding? Then check the issue tracker at https://github.com/Yorubaname/yorubaname-website/issues for list of things you can start working on. Feel free to ask questions regarding the issues you are interested in working on in the issue tracker.
  4. If you have any questions regarding the project or the code base, feel free to drop by our gitter room at https://gitter.im/yorubaname-dictionary/dev, we would be eager answer your questions.

Contributing as a UX/UI designer

With the codebase of applications now on GitHub, someone with UX/UI experience can also easily see how the site is built and contribute in improving the user experience of the application. As a UX/UI expert the following steps should help in getting started:

  1. Read the general Information README here https://github.com/Yorubaname/general-information
  2. Explore the dictionary at http://www.yorubaname.com, and if you have any UI/UX suggestions then create an issue at https://github.com/Yorubaname/yorubaname-website/issues explaining the UX/UI improvements you have to suggest. Make sure to tag the issue with the UI/UX label.
  3. …OR: Peruse open issues with the UI/UX label in the Website Issue Tracker and Dashboard Issue Tracker and join in the conversation.

Contributing as a SEO expert

If you have expertise around SEO optimisation, then your ideas are also welcome. You are free to take a peek into the code base, and contribute your ideas on how to improve the SEO. You can either:

  1. Go to the GitHub issue tracker for the respective repository, and add issues explaining the changes you would suggest that would improve the SEO
    or
  2. If you know your way around code, clone and/or fork the codebase and create pull requests around SEO improvements.

Even if you are not a developer/designer/UI/UX expert, you can still contribute! The beauty of moving the development of the dictionary to GitHub is that it allows users to easily help shape the features that are built into the dictionary.

Contributing as a User

The codebase is not the only thing that is now on GitHub: our issue trackers, available in the form of the GitHub issues, can be found in the repositories. This is where we collect all bugs and feature requests that will be built into the dictionary. So if you encounter any bug or have any idea on how to improve the dictionary at www.yorubaname.com, then:

  1. Go to the GitHub issue tracker for the Website and the Dashboard, and add issues explaining the feature you want to see added to the dictionary. The developers will do their very best in building it.

So there you have it! Hopefully the information outlined should help make the process of getting started a lot easier.

Webinar for developers

If you’re still not quite sure, do not despair… To further aid people who would like to contribute to the project we are putting together a webinar on the 23rd of July targeted specifically towards developers where I will be:

  1. explaining how the different parts of the application fit together,
  2. how to setup the application on a local machine,
  3. how to get started writing code and contributing.

More details regarding the webinar can be found here. Register for free using this Google Form.

You should also connect with us on our social media channels: on Facebook here and on Twitter here.