Skip to content

OSCA-Nairobi/OpenSourceResources

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Source Resources

A community-generated pool of opensource resources useful for engineers/developers interested in contributing to opensource. If you are new, join us on Discord and Telegram

Contributing to open-source projects has proved to be an excellent way to learn as a developer. To test and share knowledge with other coders. With each contribution, you gain experience.

The OSCA -Nairobi has put together a repository that can help you contribute to opensource. Projects of all languages, platforms and levels of difficulty.

Contents

Deep-Dive

Why contribute to opensource

Social and organizational skills

  • Developing a sense of context: understanding how development work is embedded within a project's scope, mission, a team of co-developers, and new forms of leadership;
  • Interacting with a project's global and diverse community;
  • Negotiating feature requests, requirements, and implementation choices;
  • Dealing with communication problems, such as absent responses, which are common in volunteer-run projects;
  • Appreciating the software as a product through practices such as issue triaging and release planning; and
  • Receiving, discussing, and addressing code review comments.

Tech skills

  • Navigating through a project's assets, such as software code, issues, documentation, and pull requests;
  • Evaluating swiftly the product and process quality of software systems or components, as is often required in modern software reuse;
  • Configuring, building, running, and debugging third-party code;
  • Setting up and running software-intensive systems with diverse software and hardware requirements. In the course I run, these have included mobile phones, car electronics, application servers, databases, containers, IoT equipment, and embedded devices;
  • Choosing realistic contribution goals. (Initially, students tend to wildly overestimate their ability to contribute to a project.) This is a key activity in agile development sprints;
  • Reading third-party code to identify where their additions or fixes need to be made;
  • Modifying a large third-party system by adding a new feature or fixing a bug;
  • Writing tests that demonstrate a contribution is working as expected now and into the future;
  • Working with software systems developed using multiple programming languages and tools; students are often surprised to find out that knowledge of an Integrated Development Environment (IDE) is by no means a passport for contributing to a project;
  • Documenting their work, typically using a declarative markup language, for example, Markdown or documentation generator code comments;
  • Following sophisticated configuration management (version control) workflows, such as working on issue branches and rebasing code commits; and
  • Passing pre-commit and continuous integration checks and tests.

Pre-requisites

This assumes that you are familiar with using version control. That you have a solid understanding of a programming language. If you are new, I suggest this link to help you better grasp git and GitHub.

Finding beginner-friendly projects

  • Check for labels: Open source projects have labels that you can use to identify projects.
  • Lists
  • Resources: Listed below are projects that you can contribute to.

First-timers

Here is a guide to help guide you on how to make your first contribution. You can also read it in other languages.

Direct Search on GitHub

OS maintainers tend to label issues on their GitHub projects. This is easier to reach and for contributors to find out which projects are suitable to contribute to.

Other platforms

You can also find projects to contribute to through other platforms

  1. Google Open Source
  2. Twitter
  3. FaceBook Open Source
  4. Mozilla - Has a couple of resources;
  • Good First Bugs - bugs that developers have identified as a good introduction to the project.
  • MDN Web Docs - help the MDN Web Docs team in documenting the web platform by fixing content issues and platform bugs.
  • Mentored Bugs - bugs that have a mentor assigned who will be there on IRC to help you when you get stuck while working on a fix.
  • Bugs Ahoy - a site dedicated to finding bugs on Bugzilla.
  • Firefox DevTools - a site dedicated to bugs filed for the developer tools in the Firefox browser.
  • What Can I Do For Mozilla - figure out what you can work on by answering a bunch of questions about your skillset and interests.
  • Start Mozilla - a Twitter account that tweets about issues fit for contributors new to the Mozilla ecosystem.

Sample Projects

Project Language Description Link
Neovim C Vim-fork focused on extensibility and agility. https://github.com/neovim/neovim/labels/good%20first%20issue
Cake C# Cake (C# Make) is a free and open-source cross-platform build automation system with a C# DSL for tasks such as compiling code, copying files and folders, running unit tests, compressing files and building NuGet packages https://github.com/cake-build/cake/labels/Good%20first%20issue
Godot Engine C++ 2D and 3D cross-platform game engine. Also has C# and Python code. https://github.com/godotengine/godot/labels/junior%20job
projectM C++ A music visualizer library using OpenGL and GLSL. Has applications using Qt5, SDL, emscripten, iTunes, Kodi. https://github.com/projectM-visualizer/projectm/labels/good%20first%20issue
TensorFlow C++ Computation using data flow graphs for scalable machine learning https://github.com/tensorflow/tensorflow/labels/stat%3Acontributions%20welcome
sButtons CSS Simple buttons you can easily use for your next project. https://github.com/shahednasser/sbuttons/labels/good%20first%20issue
Moby Go Open-source application container engine https://github.com/moby/moby/labels/exp%2Fbeginner
Killgrave Go Simple way to generate mock servers in Go. https://github.com/friendsofgo/killgrave/labels/good%20first%20issue
Strongbox Java Strongbox is an artefact repository manager written in Java. https://github.com/strongbox/strongbox/labels/good%20first%20issue
Wikimedia Commons Android App Java & Kotlin Allows users to upload pictures from their Android phone/tablet to Wikimedia Commons. https://github.com/commons-app/apps-android-commons/labels/good%20first%20issue
SirixDB Java SirixDB is an evolutionary, versioned NoSQL document store (XML and JSON) written (mostly) in Java. It stores compact snapshots during commits with many concepts borrowed from ZFS and Git. Each revision is indexed and the document store can be queried with temporal queries. It's especially well suited for modern hardware. https://github.com/sirixdb/sirix/labels/good%20first%20issue
Leaflet JavaScript JavaScript library for mobile-friendly interactive maps. https://github.com/Leaflet/Leaflet/labels/good%20first%20issue
Adobe Brackets JavaScript An open-source code editor for the web, written in JavaScript, HTML and CSS. https://github.com/adobe/brackets/issues?q=is%3Aopen+is%3Aissue+label%3A%22starter+bug%22
Kotlin Libraries Playground Kotlin A playground to gain a wider and deeper knowledge of the libraries in the Kotlin ecosystem. Also the official sample for Gradle refreshVersions. https://github.com/LouisCAD/kotlin-libraries-playground/labels/good%20first%20issue
CiviWiki Python Building a Better Democracy for the Internet Age https://github.com/CiviWiki/OpenCiviWiki/labels/good%20first%20issue
Jupyter notebook Python Jupyter interactive notebook. https://github.com/jupyter/notebook/labels/good%20first%20issue
Zulip Python Powerful open source group chat. https://github.com/zulip/zulip/labels/good%20first%20issue

Didn't see a project you would like others to contribute to? Check this out on how to submit one

Help Us Help All

We can only improve and add value by working together with our community. Please help us iterate on our processes so that we can grow this program to enrich the larger engineering community. If you see something that needs attention, please submit an issue so we can address it promptly.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •