Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 33

CES - 2021

Learn To Code For Free


Analyzing freeCodeCamp

Badea Oana
Bure Kristina
Case Study
• Our mission: to help people learn to code for free. We accomplish this by
creating thousands of videos, articles, and interactive coding lessons - all
freely available to the public. We also have thousands of freeCodeCamp
study groups around the world.
6200 + files
• 4300 + contributors
• 27000 + commits
• 8 years
Steps:
• 1. Data Cleanup and Organization
• 2. System Overview
• 3. Exploring the System
• 4. Exploring the Team
• 5. Exploring the Tasks
• 6. Exploring Relations
• 7. Exploring the Quality Model
• 8. JavaScript duplicate files
1. Data Cleanup and Organization
Filtering out
Irrelevant files
2413
file : has atMost 2 changes
Static Files
Merging
developer aliases
4673 -> 4364
Defining
components

17 components
2. System Overview
System Overview
The most important programming languages in this project are JavaScript, CSS.
3. Exploring The System
The System – Which files have changed heavily?
Almost all parts of the code contain are passive. But the project is still developed.
The System – How did components evolve?
The largest components of the system are currently active. Curriculum is the largest component and client it
is mature enough. We also have a new component “cypress” (in 2020).
4. Exploring The Team
The Team - Evolution
The Team – Evolution
The most important developers are currently active

Active Passive Retired


Active over the latest 6 weeks Active over the previous 6 weeks No activity in latest 12 weeks
The Team - Evolution

Active Passive Retired


Active over the latest 6 weeks Active over the previous 6 weeks No activity in latest 12 weeks
5. Exploring The Tasks
The Tasks – Activity Type Trends
We can see that the recent trend of tasks is more centered on other type of activities, than on implementing new
features.
The Tasks – Bug Magnets
6. Exploring Relations
Relations – Developers working on same files
We can see that developers have strong relations. They seem to be working in small teams.

Stuart Taylor
Berkeley
Martinez Oliver Eyton-Williams
Michael Q Larson
Mrugesh Mohapatra

Randell Dawson
7. Exploring The Quality Model
Quality Model Table
The largest components of the system also contain the most problems.
Quality Model Table
The most concerning issues are related to Excessive Complexity, Bug Impacts and Knowledge Problems.
Quality Model Table - Bugs
Quality Model Table - Complexity
JavaScript duplicated code
Code
Code – plugin-info.json
Code - outputFile.json
Code - outputFile.json
Va multumim pentru atentia acordata!

You might also like