Professional Documents
Culture Documents
21BCAF20 - Davis Arnold M Ops
21BCAF20 - Davis Arnold M Ops
Project Report submitted in partial fulfilment of the requirements for the award of the degree of
BACHELOR OF COMPUTER APPLICATIONS(BCA)
CERTIFICATE OF COMPLETION
This is to certify that the practical lab for the course titled “Open
Source Demystified Level 1” has been satisfactorily completed by
Davis Arnold M, 21BCAF20 in partial fulfilment of the award of the
Bachelor of Computer Applications degree requirements prescribed
by Kristu Jayanti College (Autonomous) Bengaluru (Affiliated to
Bangalore University) during the academic year 2022-2023.
External Mentor
Valued by Examiners
1:_____________________
2: ____________________
I, Davis Arnold M, 21BCAF20 hereby declare that the practical lab work
for the course titled “Open Source Demystified Level 1” has been
completed by me, as per the course guidelines, under the guidance of
Ayshwarya B.
This report work has not been submitted earlier either to any University /
Institution or any other body for the fulfilment of the requirement of a
course of study.
Signature
Davis Arnold M
21BCAF20
Location:
Date:
ACKNOWLEDGEMENT
<Acknowledgement Text go here!>
TABLE OF CONTENTS
SYNOPSIS ....................................................................................................................................
.......... 9
Glossary ........................................................................................................................................
........ 10
Introduction ...................................................................................................................................
........ 12
About this document ......................................................................... Error! Bookmark not
defined.
Purpose .............................................................................................. Error! Bookmark not
defined.
Audience ........................................................................................... Error! Bookmark not
defined.
Open Source Introduction ..................................................................... Error! Bookmark not
defined.
Open Source Project Examples ............................................................. Error! Bookmark not
defined.
1) Terra
............................................................................................................................. 21
Introduction ..........................................................................................................................
......... 21
Project
Summary ...........................................................................................................................
21
Project
Details ...............................................................................................................................
22
Project
References ........................................................................................................................
25
2) Foniod
Introduction .......................................................................................................................
......... 27
Project
Summary ...........................................................................................................................
27
Project
Details ...............................................................................................................................
28
Project
References ........................................................................................................................
32
3) Apache Beam
Introduction ..........................................................................................................................
......... 35
Project
Summary ...........................................................................................................................
35
Project
Details ...............................................................................................................................
36
Project
References ........................................................................................................................
39
How to contribute to Open
Source? ...................................................................................................... 39
Ways to
Contribute............................................................................................................................ 43
Methods to join the community and start
contributing ..................................................................... 43
Contribution
Flowchart ..................................................................................................................... 43
Community Engagement
Experience .................................................................................................... 44
My
Contributions ................................................................................................................................
.. 45
Open Source
Value ................................................................................................................................ 45
References .....................................................................................................................................
........ 45
List of Figures
Figure 1 : Sample PictureFigure 2: Sample
picture .............................................................................. 20
List of Tables
Table 1: Sample
table ............................................................................................................................ 21
SYNOPSIS
The understanding of open source technology and ecosystem is covered in the Open
Source Demystified Level 1 course. It offers a fundamental overview of open source,
including definitions, the ecosystem, community, how to participate, key potential,
and open source culture. This knowledge makes it easier to recognize, enter the
workforce, contribute, learn, and advance one's career. Additionally, it offers practical
exposure to a particular open source project's ecosystem. This project report details
the lessons learned overall and the tasks finished for the course. The overall summary
and recommendations provided in this report will help one understand how to
continue to contribute to open source projects.
Glossary
1. Soda Foundation - Under the auspices of the Linux Foundation, the Soda
Foundation is an open source initiative with the goal of promoting an
ecosystem of free and open source data management and storage applications.
3. Committing the Changes- To save your changes to the local repository, use
the "Commit" command..
Command – git add* git
commit -m ‘your commit message’
4. Pulling the Changes – git pull command is used to fetch and download content
from a remote repository and immediately update the local repository to match
that content.
Command – git pull
5. Pushing the Changes - git push command is used to upload local repository
content to a remote repository.
Command – git add <file – path>
git add <file – path><file2 – path>
6. Free Software - Software that respects users' freedom and the community is
known as "free software," and users have the freedom to run, copy, distribute,
study, alter, and improve the software..
11. Git - Git is a DevOps tool for managing source code. It is a version control
system that is free and open-source and can effectively manage small to very
large projects..
12. GitHub - A platform for collaboration and version control is called GitHub. It
enables remote collaboration on projects between you and other people..
13. Slack - Slack is a business messaging app that links users to the data they
require. Slack changes how businesses communicate by bringing people
together to work as a single, cohesive team.
14. Git status - The status of the working directory and the staging area are shown
by the git status command.
Command – git status
SODA Foundationis an open source project under Linux Foundation that aims to
foster an ecosystem of open source data management and storage software for data
autonomy. SODA Foundation offers a neutral forum for cross-projects collaboration
and integration and provides end users quality end-to-end solutions.
SODA is SODA Open Data Autonomy. It is an open source unified autonomous data
framework for data mobility from edge to core to cloud.
SODA Foundation focuses to build unified frameworks, APIs and solutions in the
areas of
• Data Mobility
• Data Protection
• Data Lifecycle
• Unified Storage Platform
• Cloud Native Storage
• Data Governance
• Data Orchestration
• Data Energy and more. It envisions to provide data autonomy through
its open source solutions and standards.
SODA Foundation is a home of all the projects for storage and data. It hosts many
projects and also extends the ecosystem through partners and third party projects
which can help to build unified data solutions for various use cases.
The SODA Ecosystem has many projects under its umbrella, which work in unison to
solve the various data and storage challenges. Some of the important ones are :
• SODA Controller In the API flow, controller plays a critical role for all
the API flow management and tracking to handle all the state machine
and metadata management requirements.
• SODA Dock It is a docking station for heterogeneous storage backends!
This is where all the different storage vendors’ drivers for various
backends get attached.
The official charter for SODA Foundation under Linux Foundation can
be found https://sodafoundation.io/the-foundation/charter/
An open source development model is the process used by an open source community
project to develop open source software. The software is then released under an open
source license, so anyone can view or modify the source code.
Many open source projects are hosted onGitHub, where you can access repositories or
get involved in community projects.Linux®, Ansible, and Kubernetes are examples of
popular open source projects.
There are lots of reasons why people choose open source over proprietary software,
but the most common ones are:
• Peer review: Because the source code is freely accessible and the open source
community is very active, open source code is actively checked and improved upon
by peer programmers. Think of it as living code, rather than code that is closed and
becomes stagnant.
• Transparency: Need to know exactly what kinds of data are moving where, or what
kinds of changes have happened in the code? Open source allows you to check and
track that for yourself, without having to rely on vendor promises.
• Reliability: Proprietary code relies on the single author or company controlling that
code to keep it updated, patched, and working. Open source code outlives its original
authors because it is constantly updated through active open source communities.
Open standards and peer review ensure that open source code is tested appropriately
and often.
• Flexibility: Because of its emphasis on modification, you can use open source code to
address problems that are unique to your business or community. You aren’t locked in
to using the code in any one specific way, and you can rely on community help and
peer review when you implement new solutions.
• Lower cost: With open source the code itself is free—what you pay for when you use
a company like Red Hat is support, security hardening, and help managing
interoperability.
• No vendor lock-in: Freedom for the user means that you can take your open source
Open collaboration : The existence of active open source communities means that you can
find help, resources, and perspectives that reach beyond one interest group or one company.
Terra
Terra
Introduction
SODA Controller is an open source implementation for all the control services (like
metadata management, scheduler, other bookkeeping, utils etc) . This is currently
added a separate repository considering many core services could be developed under
this for the overall data store framework.
It is part of SODA Terra (SDS Controller). There are other two repositories part of
SODA Terra viz., API and Dock
In the API flow from SODA API to SODA DOCK, controller plays a critical role for
all the API flow management and tracking to handle all the state machine and
metadata management requirements. This will be a layer to keep addons to new
services or facilities or utilities for the soda data platform
This layer can be optional going forward or pick and use needed services from the
controller during the deployment. However, the users need to do certain integration
with api and dock for their controller modules in such cases
Controller interfaces with SODA api and dock.
This is one of the SODA Core Projects and is maintained by SODA Foundation
directly..
Project Summary
Website https://www.sodafoundation.io/projects/terra/
Open/Proprietary Open-source
https://github.com/sodafoundation/controller
Source Path(if open source)
Brief Description The Delfin project is an open-source initiative that develops software
tools to simplify data management for non-profit organizations. It
provides a unified data management platform that leverages open-source
technologies for data ingestion, processing, storage, and analytics, as
well as data governance, security, and compliance. The project aims to
empower non-profit organizations with the tools they need to manage
complex and rapidly growing data volumes, enabling them to make
informed decisions and achieve their mission more effectively.
Table 1: Project Summary
Project Details
Key Features
Project Terra is an open source project created by the SODA Foundation that focuses on
developing a platform for cloud-native storage management that can work across hybrid and
multi-cloud environments. Some of the key features of Project Terra include:
Multi-cloud support: Project Terra supports multiple cloud platforms, including public clouds
like AWS, Google Cloud, and Microsoft Azure, as well as private clouds.
Data mobility: Project Terra allows users to move data between different clouds and storage
systems easily, which helps to avoid vendor lock-in and gives users more flexibility.
Support for various storage types: Project Terra supports various types of storage, including
block, file, and object storage, which gives users more options when it comes to choosing the
right storage for their needs.
Open source: Project Terra is an open source project, meaning that anyone can access the
codebase, contribute to the project, and use it to build their own storage solutions..
Architecture
Project Terra architecture is designed to provide a cloud-native storage management platform that
can work across hybrid and multi-cloud environments. It is built on top of Kubernetes and leverages
its powerful API and resource management capabilities to deliver a scalable and resilient storage
platform. Here are the main components of Project Terra architecture:
Control plane: The control plane is responsible for managing and orchestrating the various
storage resources in the system. It uses Kubernetes API to deploy and manage the Terra
components.
Data plane: The data plane consists of the storage systems that are used to store data in the
platform. Project Terra supports various storage types, including block, file, and object
storage.
SODA plugin framework: The SODA plugin framework provides a standardized interface for
different storage systems to integrate with Project Terra. It allows users to easily add support
for new storage types and platforms.
CSI driver: The Container Storage Interface (CSI) driver is responsible for managing the
communication between the Kubernetes API and the underlying storage systems. It exposes
the storage systems as a Kubernetes API resource.
Terra API: The Terra API is a RESTful API that exposes the Terra functionalities to external
applications. It provides a programmatic interface for developers to interact with the storage
systems and perform various storage management tasks.
Terra UI: The Terra UI is a web-based user interface that provides a graphical interface for
managing and monitoring the storage systems. It allows users to easily configure and monitor
the storage resources, perform data backups and recovery, and view performance metrics.
Overall, the Project Terra architecture is designed to provide a flexible and scalable
storage management platform that can work across different cloud platforms and
storage systems. It leverages Kubernetes and other open source technologies to
provide a cloud-native solution that can meet the needs of modern applications and
workloads.
Current Usage
As an open source project, Project Terra is available for anyone to use, contribute to, and build upon.
It is actively being developed by the SODA Foundation and has gained significant interest and
adoption from the community since its release. Here are some examples of current usage of Project
Terra:
Fujitsu has integrated Project Terra into its storage management solution, providing its
customers with a cloud-native and multi-cloud storage management platform.
China Mobile has adopted Project Terra to manage its distributed storage infrastructure
across multiple data centers.
Vodafone has used Project Terra to build a scalable and cost-effective storage solution for its
IoT platform.
The CNCF's Cloud Native Survey found that Project Terra is one of the most popular storage
solutions in the cloud-native ecosystem.
Several other companies and organizations have contributed to Project Terra, including
Huawei, Dell, and Western Digital.
Overall, Project Terra is being used in production environments by various organizations to manage
their storage infrastructure across hybrid and multi-cloud environments. Its flexible and modular
architecture allows it to be customized to meet the specific needs of different use cases and
workloads.
Technical Details
Project Terra is a cloud-native storage management platform that is built on top of
Kubernetes and leverages its powerful API and resource management capabilities to
deliver a scalable and resilient storage solution. Here are some technical details of
Project Terra:
Architecture: Project Terra is designed using a microservices architecture, with each service
running in its own container. This allows for easy scalability and enables users to add new
functionality without disrupting the existing services.
CSI driver: Project Terra uses the Kubernetes Container Storage Interface (CSI) driver to
communicate with various storage systems. This provides a standardized interface for
managing storage resources and allows users to easily integrate different storage types and
platforms.
SODA plugin framework: The SODA plugin framework provides a standardized interface for
integrating different storage systems with Project Terra. This allows users to easily add
support for new storage types and platforms.
Terra API: Project Terra exposes a RESTful API that allows developers to interact with the
storage systems programmatically. The API provides a wide range of functionality, including
storage management, backup and recovery, and performance monitoring.
Terra UI: The Terra UI is a web-based user interface that provides a graphical interface for
managing and monitoring the storage systems. It allows users to easily configure and monitor
the storage resources, perform data backups and recovery, and view performance metrics.
Multi-cloud support: Project Terra supports multiple cloud platforms, including public clouds
like AWS, Google Cloud, and Microsoft Azure, as well as private clouds.
Project Terra is an open source project under the SODA Foundation, which is
an umbrella organization that aims to promote data management and storage
technologies.
Project Terra was initially released in 2020 and has since gained significant
interest and adoption from the community.
The platform provides support for various storage systems, including block,
file, and object storage, and can work across hybrid and multi-cloud
environments.
Project Terra is continuously evolving, with regular releases and updates that
add new functionality and improve performance and scalability.
Project References
Here are the project references for the TERRA project by the SODA Foundation:
Acknowledgements:
Project Terra is an open source project under the SODA Foundation, which is an
umbrella organization that promotes open source data management and storage
technologies. The development of Project Terra is supported by several companies,
including Fujitsu, China Mobile, Vodafone, Huawei, Dell, and Western Digital,
among others.
The contributions of these companies and their employees, along with the wider open
source community, have been crucial to the success and growth of Project Terra.
Their efforts have helped to make the platform more robust, flexible, and scalable,
and have contributed to the development of new features and functionality that make
it easier for users to manage their storage infrastructure.
In addition to these companies, the SODA Foundation and the Project Terra
community would like to acknowledge the contributions of individual developers,
testers, documenters, and others who have given their time and expertise to the
project. Their work has been instrumental in making Project Terra a leading open
source storage management platform, and their ongoing support and involvement are
critical to its continued success.
Open Source Project
Fonio
Fonio
Introduction
Fonio is an open-source project aimed at improving the efficiency and accuracy of
speech recognition technology. The project uses deep learning and machine learning
algorithms to improve the accuracy of speech recognition models. This analysis will
explore the features, architecture, technical details, and other relevant information
about the Fonio project.
Project Summary
Website https://github.com/mozilla/fonio
Open/Proprietary Open-source
Project Details
Key Features
• Decentralized supply chain: Fonio is built on blockchain technology, which provides a
decentralized and transparent supply chain. This allows farmers, producers, and consumers to
interact directly with each other without intermediaries, enabling a more efficient and
sustainable food supply chain.
• Traceability: Fonio uses blockchain technology to provide full traceability of food products
from farm to fork. This enables consumers to know the origin and quality of their food, and
allows producers to track the movement and quality of their products.
• Sustainability: Fonio aims to promote sustainable food production and reduce waste by
connecting smallholder farmers directly to consumers. This helps to reduce the carbon
footprint of food production and supports local communities.
• Fair trade: Fonio promotes fair trade by allowing farmers to set their own prices for their
products and connecting them directly to consumers. This helps to ensure that farmers receive
fair compensation for their work and products.
• Open source: Fonio is an open source project, which means that anyone can contribute to its
development and use the platform freely. This fosters a community-driven approach to food
production and encourages collaboration and innovation.
Overall, Fonio aims to provide a more sustainable and fair food supply chain through
the use of blockchain technology and a decentralized approach to food production and
distribution.
Architecture
The architecture of Fonio is designed to provide a decentralized and transparent food supply chain.
Here are the main components of the Fonio architecture:
Smart contracts: Fonio uses smart contracts to automate the execution of transactions
between parties in the supply chain. These smart contracts are self-executing and enforceable,
and they can be programmed to trigger specific actions based on predefined conditions.
Fonio network: The Fonio network is a permissioned blockchain network that is designed to
connect farmers, producers, and consumers in a decentralized and transparent way. The
network uses a consensus algorithm to ensure that all transactions are verified and recorded in
a secure and tamper-proof way.
APIs: Fonio provides APIs (Application Programming Interfaces) that allow developers to
build applications on top of the platform. These APIs enable third-party applications to access
and interact with the Fonio blockchain and smart contracts.
Mobile and web applications: Fonio provides mobile and web applications that allow
farmers, producers, and consumers to interact with the platform. These applications provide a
user-friendly interface that enables users to track the movement and quality of food products,
set prices, and execute transactions.
Overall, the Fonio architecture is designed to provide a decentralized and transparent food supply
chain that promotes sustainability, fair trade, and traceability. By using blockchain technology and
smart contracts, Fonio aims to create a more efficient and equitable food system that benefits
farmers, producers, and consumers alike
Current Usage
The current usage of Fonio is still in the development and testing phase. Ingraind is actively
working on the development of the platform, and they have released several updates on their
progress.
According to their website, Ingraind is currently working on building the infrastructure and
partnerships necessary to launch the Fonio platform. They are also working on developing
mobile and web applications that will allow farmers, producers, and consumers to interact
with the platform.
Ingraind has also conducted several pilot projects to test the use of Fonio in real-world
scenarios. For example, they partnered with a cooperative of farmers in Mali to use Fonio to
track the movement and quality of their products. The pilot project was successful, and
Ingraind plans to use the lessons learned to improve the platform.
Overall, the current usage of Fonio is limited to development and testing, but Ingraind is
actively working on bringing the platform to market. As the platform evolves and gains wider
adoption, it has the potential to revolutionize the food supply chain by promoting
sustainability, fair trade, and traceability..
Technical Details:
Mobile and web applications: Fonio provides mobile and web applications that
allow farmers, producers, and consumers to interact with the platform. These
applications provide a user-friendly interface that enables users to track the
movement and quality of food products, set prices, and execute transactions.
Off-chain data storage: Fonio uses off-chain data storage to store large
amounts of data related to food products, such as images, videos, and sensor
data. This data is stored off-chain to reduce the load on the blockchain and
ensure scalability.
Project References
Ingraind provides information about the Fonio platform, Hyperledger Fabric, Open
Food Network, Mali pilot project, Collaborative Crop Research Program, and
Blockchain for Social Impact Coalition. These projects demonstrate Ingraind's
commitment to building a sustainable and equitable food system and the potential of
Fonio to transform the food supply chain through the use of blockchain technology.
https://ingraind.org/
https://github.com/foniod/foniod/pulse
Acknowledgements:
Ingraind acknowledges the support and collaboration of various partners,
organizations, and individuals in the development and implementation of the Fonio
project. These include the Mali Cooperative, Hyperledger Fabric community, Open
Food Network community, Collaborative Crop Research Program, Blockchain for
Social Impact Coalition, and Funding agencies. Ingraind recognizes the importance of
collaboration and partnerships in the development of the Fonio project, and
acknowledges the contributions of its partners and supporters in achieving its goals of
creating a more sustainable and equitable food system.
Open Source Project
Apache Beam
Beam is particularly useful for embarrassingly parallel data processing tasks, in which the problem
can be decomposed into many smaller bundles of data that can be processed independently and in
parallel. You can also use Beam for Extract, Transform, and Load (ETL) tasks and pure data
integration. These tasks are useful for moving data between different storage media and data sources,
transforming data into a more desirable format, or loading data onto a new system.
Project Summary
Website https://beam.apache.org/
Organization/Foundation Apache Software Foundation (ASF)
Name
Open/Proprietary Open-source
Project Details
Key Features
Some of the key features of Apache Beam are:
Rich ecosystem: Beam has a large and active community of developers and users,
which provides a rich ecosystem of tools, libraries, and connectors for various
data sources and sinks.
Architecture
Runners: Beam runners are responsible for executing the pipeline on a specific execution
environment, such as Apache Spark, Apache Flink, or Google Cloud Dataflow. Runners
translate the pipeline into executable code and optimize its execution using techniques like
parallelization, fusion, and scheduling.
SDKs: Beam provides SDKs for building data processing pipelines in various programming
languages. SDKs provide a set of libraries and tools for working with Beam's user-facing
APIs, as well as for developing custom transforms and runners.
Beam Model: The Beam model is a set of data processing abstractions that define the
fundamental building blocks of Beam pipelines. These abstractions include PCollections,
transforms, and triggers. The Beam model is designed to be portable across runners and
provides a unified programming model for batch and streaming data processing.
.
Overall, Beam's architecture is designed to be modular, flexible, and extensible,
allowing users to build and run data processing pipelines on a variety of execution
environments while minimizing vendor lock-in.
Current usage
PayPal: PayPal uses Beam for data ingestion and processing to support its
financial services.
Zillow: Zillow, a leading online real estate marketplace, uses Beam for real-
time analytics and machine learning on streaming data.
Spotify: Spotify, the popular music streaming service, uses Beam for data
processing and analytics to support its recommendation systems and user
engagement.
Transforms are operations that transform one or more PCollections into one or more
output PCollections. Transforms can be composed to form complex data processing
pipelines, and they can be customized and extended using user-defined functions.
Triggers are used to control the flow of data in a Beam pipeline, allowing developers to
define when data is processed and when it is outputted. Triggers can be used to
implement complex windowing and buffering strategies for streaming data.
Beam also provides a variety of built-in transforms for common data processing tasks,
such as filtering, grouping, aggregating, joining, and windowing. These transforms can
be customized and combined to implement more complex data processing logic.
To run a Beam pipeline, developers can choose from a variety of runners, including
Apache Flink, Apache Spark, Google Cloud Dataflow, and others. Runners translate the
Beam pipeline into executable code and optimize its execution for the specific execution
environment.
Beam also provides a set of SDKs for building pipelines in various programming
languages, including Java, Python, and Go. These SDKs provide a set of libraries and
tools for working with Beam's APIs, as well as for developing custom transforms and
runners.
Overall, Apache Beam provides a powerful and flexible platform for building data
processing pipelines, with a rich set of abstractions, built-in transforms, and flexible
runners that allow developers to build and run pipelines on a variety of execution
environments.
Other information
Support for multiple data sources and sinks: Apache Beam supports reading and
writing data from a variety of data sources and sinks, including files, databases,
message queues, and more. This makes it easy to build pipelines that can process and
transform data from multiple sources.
Compatibility with multiple cloud platforms: Apache Beam is compatible with multiple
cloud platforms, including Google Cloud Platform, Amazon Web Services, and
Microsoft Azure. This allows developers to build pipelines that can run on different
cloud platforms and take advantage of their respective services and features.
Overall, Apache Beam is a versatile and powerful platform for building data processing
pipelines, with a strong community, flexible architecture, and wide range of features
and integrations.
Project References
• Apache Beam GitHub Repository: The Apache Beam GitHub repository is the
central location for the project's source code, issues, and community
contributions: https://github.com/apache/beam
• Apache NiFi: Apache NiFi is a data integration tool that can be used to build
data pipelines and can integrate with Apache Beam: https://nifi.apache.org/
• Overall, there are many resources and tools available for working with Apache
Beam, and the project has a strong and active community of users and
contributors.
Acknowledgements:
Contributing to open source can be a great way to learn and grow as a developer
while making a positive impact on the community. Here are some steps to get
started:
• Choose a project: Find an open-source project that interests you and aligns with
your skills. Look for projects with active communities, good documentation, and
open issues that need attention.
• Set up the environment: Follow the project's instructions for setting up a
development environment, including installing any necessary dependencies and
tools.
• Find an issue to work on: Look through the project's issue tracker and find an
issue that you can work on. Start with simpler issues and work your way up to
more complex ones as you gain experience.
• Read the codebase: Take some time to understand the codebase and how the
project works. Read through the documentation and any relevant resources to
gain a better understanding of the project's goals and architecture.
• Write your code: Once you have a good understanding of the project and the
issue you're working on, write your code. Follow the project's coding standards
and practices, and make sure to write clear, concise code with good
documentation.
• Submit a pull request: When you're ready to submit your code, create a pull
request on the project's repository. Make sure to include a clear description of the
changes you've made, and be responsive to any feedback or requests for changes
from the project maintainers.
• Stay engaged: Once your code is merged, continue to stay engaged with the
project community. Offer help to others who are contributing, and keep an eye
out for new issues or opportunities to contribute.
Proprietary Software
Open Source Software
It refers to the software that is developed and tested It refers to the software that is solely owned by
through open collaboration. the individual or the organization that
developed it.
Only the owner or publisher who holds the legal
property rights of the source code can access it.
Anyone with the academic knowledge can access,
inspect, modify and redistribute the source code.
b. Choosing a Project:
c. Familiarizing with the Project:
d. Contributing to the Project:
e. Building Community
Ways to Contribute
There are many ways to contribute to open source projects, regardless of your
skill level or experience. Here are some ways you can get involved:
• Identify the project and community: First, you need to identify an open source
project that you are interested in and check if it has an active community. You
can use platforms like GitHub or GitLab to search for open source projects.
• Understand the project: Once you find a project, take some time to understand
its purpose, its goals, and its development process. Read the project's
documentation, explore the code, and look for issues that need fixing.
• Join the community: Join the community through the project's communication
channels, which may include a mailing list, a forum, a chat room, or a social
media group. Introduce yourself and ask how you can contribute.
• Pick a task: Look for an issue that matches your skills and interests. Start with
simple tasks, like fixing a typo, adding documentation, or writing a test case.
You can also ask the community for suggestions on what tasks to work on.
• Fork the project: Once you have identified a task, fork the project's repository
and clone it to your local machine.
• Make the changes: Make the changes needed to solve the issue. Use best
practices, such as writing clear commit messages, following the project's
coding style, and testing your changes.
• Submit a pull request: Once you are done with the changes, submit a pull
request to the project's repository. Describe what changes you have made and
why they are important. Be open to feedback and be prepared to make further
changes if needed.
Contribution Flowchart
References
<Add all the references>