Open Source Demystified Level 1

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 22

Open Source Demystified Level 1

Project Report submitted in partial fulfilment of the requirements for the award of the degree of
BACHELOR OF COMPUTER APPLICATIONS (BCA)

NAME : Hemanth L
REG No : 21BCAf27

Under the guidance of


Prof . Ashwarya B

DEPARTMENT OF COMPUTER SCIENCE (UG)


BCA PROGRAMME
KRISTU JAYANTI COLLEGE (Autonomous)
K. Narayanapura, Kothanur P.O., Bangalore – 560077
DEPARTMENT OF COMPUTER SCIENCE (UG)

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 Hemanth
L,21BCAF27 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 2019-2020.

Internal Guide Head of the Department

External Mentor

Valued by Examiners
1:_____________________
2: ____________________

Centre: Kristu Jayanti College


Date:
DECLARATION

I, HEMANTH L,21BCAF27 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 Prof . Ashwarya 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
HEMANTH L
21BCAF27

Location: KRISTU JAYANTI COLLEGE


Date:
ACKNOWLEDGEMENT
<Acknowledgement Text go here!>
TABLE OF CONTENTS

SYNOPSIS...............................................................................................................................................9
Glossary...............................................................................................................................................10
Introduction.........................................................................................................................................11
About this document.......................................................................................................................11
Purpose............................................................................................................................................11
Audience..........................................................................................................................................11
Open Source Introduction...................................................................................................................12
Open Source Project Examples............................................................................................................13
<Project 1 Name>............................................................................................................................13
Introduction.................................................................................................................................13
Project Summary.........................................................................................................................13
Project Details..............................................................................................................................13
Project References.......................................................................................................................13
<Project 2 Name>............................................................................................................................14
Introduction.................................................................................................................................14
Project Summary.........................................................................................................................14
Project Details..............................................................................................................................14
Project References.......................................................................................................................14
<Project 3 Name>............................................................................................................................15
Introduction.................................................................................................................................15
Project Summary.........................................................................................................................15
Project Details..............................................................................................................................15
Project References.......................................................................................................................15
How to contribute to Open Source?....................................................................................................16
Ways to Contribute..........................................................................................................................16
Methods to join the community and start contributing..................................................................16
Contribution Flowchart....................................................................................................................16
Community Engagement Experience...................................................................................................17
My Contributions.................................................................................................................................18
Open Source Value..............................................................................................................................18
References...........................................................................................................................................18
List of Figures
Figure 1 : Sample PictureFigure 2: Sample picture..............................................................................11
List of Tables
Table 1: Sample table...........................................................................................................................13
SYNOPSIS
Open Source Demystified Level 1 course covers the understanding of
Open source technology and ecosystem. It provides basic
introduction to open source, terms, ecosystem, community, how to
contribute, what are the key potential and open source culture. This
understanding helps one to identify, enter, contribute, learn and
grow one’s competency and career. It also provides the hands-on
experience with given open source project community ecosystem.
This project report covers the overall learning and activities
completed as a part of the course. This report will give one to
understand about overall summary and guidance to contribute to
open source projects further.
Glossary
Introduction
<Overall introduction>

About this document


<Explain about the document and layout>

Purpose
<Purpose of this document>

Audience
<Audience for this document>
Open Source Introduction
 What does Open-source mean?
The term Open-source is closely related to Open-source software (OSS). Open-source
software is a type of computer software that is released under a license, but the source
code is made available to all the users. The copyright holders of such software allow the
users to use it and do some valuable modifications in its source code to add some new
features, to improve the existing features, and to fix bugs if there are any. Because of this
reason only Open-source software is mostly developed collaboratively.
 Some famous examples of Open-source products are :

Operating systems –
Android, Ubuntu, Linux

Internet browsers –
Mozilla Firefox, Chromium

Integrated Development Environment (IDEs) –


Vs code (Visual Studio Code), Android Studio, PyCharm, Xcode

Open-source community and Contributions :


The open-source community is a worldwide community of programmers and software developers
who are continuously working on various open-source projects to make our lives better. This
community is self-governing and self-organizing, there are no executives to take the decisions solely.
This community plays a very crucial role in the sustainability of various open-source organizations.

The contributions made in any open-source project which improves its usability are called open-
source contributions. These contributions can be of any form not only some software codes like we
can work on improving its documentation, improving its UI/UX (user interface and design), organize
meetups, or find new collaborators.

 The Benefits of Open-source contributions :


We code for real-world open-source projects.

It refines our existing knowledge of programming and also helps us to learn new skills.

Many open-source projects offer mentorship programs to guide and help us through our first few
contributions.

We need not develop the whole thing from scratch, we just have to fork our favorite projects and
start experimenting with them.

After making any open-source contribution, we get immediate feedback regarding our
developmental work.

tributions can be of any form not only some software codes like we can work
on improving its documentation, improving its UI/UX (user interface and
design), organize meetups, or find new collaborators.
 Figure 1: Sample picture

 Open Source Project Examples


WordPress: WordPress is a content management system (CMS) that powers millions of websites
around the world. It is open source, which means that developers can customize and extend its
functionality as needed. WordPress is especially popular among bloggers and small businesses
looking for an easy-to-use platform for creating and managing their websites.

DELFIN PROJECT :
Delfin is an open source project for data storage resource management. It provides a unified
management platform for multiple storage systems, enabling users to monitor and manage their
storage resources from a single dashboard. Delfin supports a wide range of storage systems and
protocols, including block, file, and object storage, and provides advanced features such as capacity
planning, performance monitoring, and data protection. The project is developed by the OpenSDS
community and is licensed under the Apache License 2.0.

Website https://delfin.io/

Organization/Foundation OpenSDS community


Name

License Apache License 2.0

Open/Proprietary Open source

Source Path(if open https://github.com/opensds/delfin


source)

Brief Description Delfin is an open source project for data storage resource management. It
provides a unified management platform for multiple storage systems, enabling
users to monitor and manage their storage resources from a single dashboard.
Delfin supports a wide range of storage systems and protocols, including block,
file, and object storage, and provides advanced features such as capacity
planning, performance monitoring, and data protection. The project is
developed by the OpenSDS community and is licensed under the Apache
License 2.0.

Table 1: Sample table

//If you think any other useful information to be added to this table, please feel free to add.

Project Details
Key Features
 Unified Management,
 Storage System Support,
Open source
 Capacity Planning,
 Performance Monitoring,
 Data Protection, Open Source.

Architecture: Delfin uses a modular architecture, with a core management framework and pluggable
drivers for different storage systems. The architecture diagram can be found on the project's website.

Current Usage: Delfin is used by several organizations, including China Unicom, Inspur, and ZTE
Corporation, among others.

Technical Details: Delfin is designed for scalability, with the ability to manage large-scale storage
environments with ease. It is also highly performant, with real-time monitoring and analysis of
storage system performance. Delfin uses REST APIs for communication between components and
supports both synchronous and asynchronous operations.

Any other information: Delfin is a part of the OpenSDS community, which is focused on developing
open source solutions for software-defined storage. The project has an active community of
contributors and is regularly updated with new features and enhancements.

Project References:

https://delfin.io/

https://github.com/opensds/delfin

https://opensds.io/

https://www.zte.com.cn/global/

https://www.inspursystems.com/

https://www.chinaunicom.com/

KUBERNETES DASHBOARD
Kubernetes Dashboard is a web-based user interface for managing Kubernetes clusters. It provides a
graphical interface for users to view and manage the resources in a cluster.

Website https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/

Organization/Foundation kubernetes community


Name

License Apache License 2.0

Open/Proprietary Open source

Source Path(if open https://github.com/kubernetes/dashboard


source)
Brief Description Kubernetes Dashboard is an open source project that provides a web-based
user interface for managing Kubernetes clusters. It allows users to view and
manage the resources in a cluster, including deployment, pods, services, and
more. The project is developed by the Kubernetes community and is licensed
under the Apache License 2.0.

Project Details:
Key Features:
 Resource management and monitoring
 User authentication and authorization
 Cluster-wide event logging and display
 Pod and container management
 Support for custom resource definitions (CRDs)

Architecture:

Kubernetes Dashboard is built using the Kubernetes API server and client libraries, and uses a client-
server architecture with a web-based user interface. It can be deployed as a Kubernetes pod within a
cluster or accessed remotely through a proxy.

Current Usage:

Kubernetes Dashboard is used by many organizations and developers for managing their Kubernetes
clusters, including Google, Microsoft, and Red Hat, among others.

Technical Details:

Kubernetes Dashboard is designed for scalability and performance, with support for large-scale
Kubernetes clusters. It also includes features such as user authentication and authorization, event
logging and display, and custom resource definitions (CRDs).

Any other information:

Kubernetes Dashboard is one of the most popular open source projects in the Kubernetes
ecosystem, and is regularly updated with new features and enhancements.

Project References:

https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/

https://github.com/kubernetes/dashboard

https://kubernetes.io/

https://cloud.google.com/kubernetes-engine/

https://www.microsoft.com/en-us/azure/kubernetes-service

https://www.redhat.com/en/technologies/cloud-computing/openshift/kubernetes-
dashboard
WordPress Project
Introduction: WordPress is a free and open-source content management system (CMS) that is used
to create and manage websites. It was first released in 2003 and has since grown to become one of
the most popular CMSs in the world, powering over 40% of all websites on the internet.

Project Summary

Website https://wordpress.org/
Organization/Foundation The WordPress Foundation
Name

License GNU General Public License v2

Open/Proprietary Open source


Source Path(if open https://github.com/WordPress/WordPress
source)

Brief Description WordPress is a powerful CMS that allows users to easily create and
manage websites, blogs, and online stores. It offers a wide range of
customizable templates, themes, and plugins that can be used to
enhance the functionality and appearance of a website. WordPress is
also known for its user-friendly interface, making it accessible to users of
all skill levels.

Project Details
Key Features
 Easy installation and setup process
 User-friendly interface for creating and managing content
 Customizable templates and themes
 Extensible through plugins and custom development
 Built-in search engine optimization (SEO) features
 Multilingual support
 Mobile-responsive design
 Security features, such as automatic updates and password protection

Architecture:

WordPress follows a classic three-tier architecture, with a database layer, an application layer, and a
presentation layer. The database layer stores all content and user data, while the application layer
retrieves and processes this data to generate HTML pages for the presentation layer. WordPress uses
PHP as its primary scripting language and MySQL as its database management system.
Current Usage:

WordPress is used by a wide range of organizations and products, including businesses, bloggers,
media outlets, and e-commerce sites. Some notable examples include The New York Times, Forbes,
and the Walt Disney Company.

Technical Details:

WordPress is designed to be scalable and performant, with a range of optimizations to improve


speed and efficiency. However, performance can be affected by factors such as the size and
complexity of the site, the hosting environment, and the plugins and themes used.

Any other information:

WordPress is continually evolving, with regular updates and new features added to the core
platform. It also has a large and active community of developers and users who contribute to its
ongoing development and support.

Project References:

https://wordpress.org/

https://en.wikipedia.org/wiki/WordPress

https://www.wpbeginner.com/beginners-guide/why-is-wordpress-free-what-are-the-costs-what-
is-the-catch/

https://www.wpexplorer.com/wordpress-architecture/

https://kinsta.com/learn/what-is-wordpress/

https://www.wpbeginner.com/showcase/40-most-notable-big-name-brands-that-are-using-
wordpress/

How to contribute to Open Source?


Contributing to open-source projects can be a great way to improve your programming skills,
gain experience, and give back to the community. Here are some steps you can follow to get
started:

1. Choose a project: Find an open-source project that you are interested in and that aligns
with your skills and expertise. There are many platforms to find open-source projects,
such as GitHub, GitLab, and Bitbucket.
2. Read the documentation: Before you start contributing, read the project's documentation
to understand its goals, development process, and contribution guidelines. This will help
you get familiar with the project and avoid making unnecessary mistakes.
3. Start small: Start by contributing small changes, such as fixing a typo, updating
documentation, or adding a small feature. This will help you get familiar with the project's
codebase and development process, and build your confidence.
4. Communicate with the community: Open-source projects often have active communities
of developers and users who can help you with any questions or issues you may have.
Join the project's discussion forum, mailing list, or chat room to ask for help, share your
ideas, and get feedback.
5. Follow the contribution guidelines: Each project has its own contribution guidelines that
you should follow when submitting changes. These guidelines may include coding
standards, testing requirements, and code review processes. Make sure to read and
follow these guidelines to ensure your contributions are accepted.
6. Be patient: It may take some time for your contributions to be reviewed and merged into
the project's codebase. Be patient and keep contributing to the project, and you will
eventually gain more experience and recognition within the community.

Contributing to open-source projects can be a rewarding experience that can help you improve
your skills, make new connections, and contribute to the wider developer community.

Ways to Contribute
Here are some ways to contribute to open-source projects:

 Writing code: Contributing code to open-source projects can be a great way to improve your
programming skills and help the community. You can fix bugs, add new features, or improve
the documentation.
 Testing: Testing is an important part of the development process, and you can contribute by
testing the project on different platforms, reporting bugs, and suggesting improvements.
 Documentation: Contributing to the project's documentation can be a great way to help new
users get started with the project, and improve the overall quality of the documentation.
 Translation: If the project supports multiple languages, you can contribute by translating the
documentation or interface into your native language.
 Design: If you have design skills, you can contribute by creating logos, icons, or improving the
project's user interface.
 Community: Contributing to the community can involve answering questions on forums,
helping new contributors get started, or organizing events to promote the project.
 Donations: If you are unable to contribute directly to the project, you can still support it by
making a donation to help cover hosting costs or other expenses.

Methods to join the community and start contributing

 Find a project: Find an open-source project that you are interested in and that aligns with
your skills and expertise. There are many platforms to find open-source projects, such as
GitHub, GitLab, and Bitbucket.
 Introduce yourself: Once you find a project that you want to contribute to, introduce yourself
to the community. Join the project's discussion forum, mailing list, or chat room to say hello,
ask questions, and learn more about the project.
 Read the documentation: Before you start contributing, read the project's documentation to
understand its goals, development process, and contribution guidelines. This will help you
get familiar with the project and avoid making unnecessary mistakes.
 Start small: Start by contributing small changes, such as fixing a typo, updating
documentation, or adding a small feature. This will help you get familiar with the project's
codebase and development process, and build your confidence.
 Communicate with the community: Open-source projects often have active communities of
developers and users who can help you with any questions or issues you may have. Join the
project's discussion forum, mailing list, or chat room to ask for help, share your ideas, and
get feedback.
 Attend events: Many open-source projects organize events, such as meetups, hackathons, or
conferences, where you can meet other contributors and learn more about the project.
Attend these events to network, share your ideas, and learn new skills.
 Follow the contribution guidelines: Each project has its own contribution guidelines that you
should follow when submitting changes. These guidelines may include coding standards,
testing requirements, and code review processes. Make sure to read and follow these
guidelines to ensure your contributions are accepted.

Contribution Flowchart
<Draw a flowchart of open source contribution steps>
Community Engagement Experience
<Provide your community engagement experience with details – like Community meeting, design
meeting, meetups, any other events or engagement activities like hackathon. The activity must be
within the duration of the course. You must provide at least 1 experience along with the value of the
engagement. Please include pictures or tables as needed >
My Contributions
<Describe the contributions that you have done during the course to any open source project and/or
community. You must explain at least 2 such contributions from the start to end. Please include
pictures or tables as needed>

Open Source Value


<Describe the value of the open source contributions. Please include illustration based on your
contribution experience>

References
<Add all the references>

You might also like