Skip to content

Commit bb6d7a4

Browse files
authored
Merge branch 'master' into 303-fix-relative-path-to-all-projects
2 parents f0e26b6 + 0cad002 commit bb6d7a4

File tree

13 files changed

+138
-30
lines changed

13 files changed

+138
-30
lines changed

.github/CODEOWNERS

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# These owners will be the default owners for everything in
22
# the repo. Unless a later match takes precedence, they will
33
# be requested for review when someone opens a pull request.
4-
* @creativecommons/engineering @creativecommons/ct-cc-open-source-core-committers
4+
* @creativecommons/engineering @creativecommons/ct-cc-open-source-core-committers @creativecommons/ct-cc-open-source-collaborators
55

66
# These users own any files in the specified directory and
77
# any of its subdirectories.
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
username: subhamX
2+
---
3+
name: Subham Sahu
4+
---
5+
md5_hashed_email: 1ca2562f3046509e3273fe5afd3fdab2
6+
---
7+
about:
8+
Subham Sahu is an undergraduate student from Indian Institute Of Technology, Ropar. He is currently working on the [Linked Commons](https://github.com/creativecommons/cccatalog-dataviz) as part of [Google Summer of Code 2020](/gsoc-2020).
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
name: cc-dataviz
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
title: Integration of Vocabulary with CCOS.
2+
---
3+
categories:
4+
outreachy
5+
tech
6+
open-source
7+
---
8+
author: dhruvi16
9+
---
10+
series: outreachy-2020-CCOS
11+
---
12+
pub_date: 2020-07-08
13+
---
14+
body:
15+
16+
17+
This blog demonstrates the project I am working on during the course of my Outreachy internship. My project involves redesigning and reimplementing one of the web products of the CC network using our new cohesive design library — [Vocabulary](https://cc-vocabulary.netlify.app/?path=/docs/vocabulary-introduction--page). After my internship is completed, the [Creative Commons Open Source](https://opensource.creativecommons.org/) website will have a complete revamped interface that will extensively use Vocabulary components.
18+
19+
## The Problem -
20+
21+
There exists a large variety of web products across the Creative Commons network. These products serve different purposes for the network and so do they vary in the way of presenting the existing content. So, to conquer the inconsistency across the different products we have our coherent design system called Vocabulary.
22+
23+
If we come to the current CC Open Source website, it is quite off-track considering our new design system Vocabulary. The styles and components of the website are not well aligned with the components of the Vocabulary. And thus it lacks harmony and consistency concerning the brand.
24+
25+
The purpose of a design system gets dissolved if it is not well incorporated with the products and we do have this problem with the CC Open Source website. Hence, there was a need for a redesign of CCOS as per the new Design Library. This project aims to rectify the problems and inconsistencies of the CCOS website and build a completely new website (as per Vocabulary).
26+
27+
## The Solution -
28+
29+
I started with trying out different mock-ups for the new website in Figma. You can see what I tried to make [here](https://www.figma.com/file/ka3zs1iYnqJvyLnvAV3cW7/Home-proposals). And then with the help of our UX designer Francisco, we created all the mock-ups and finalized how the website will look in a couple of weeks, here is the [link](https://www.figma.com/file/mttcugI1UxvCJRKE5sdpbO/Mockups?node-id=759%3A516) for that.
30+
31+
I started my internship with going through the website’s tech stack, the website is made using [Lektor](https://www.getlektor.com/), with which I was not very familiar. I read the official docs, went through projects, tried making demo projects, and took help from mentors wherever I got stuck.
32+
33+
To keep the project clean I added a theme that only has templates for the project and alters no content (as per aim). While updating templates, some components were not available in the Vocabulary yet, so I worked on adding those components to the library. And then used them in my new templates.
34+
35+
I have thoroughly enjoyed contributing to this project as I got to learn so much. And I am excited for what’s next to come in the upcoming weeks.
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
title: Linked Commons: What's new?
2+
---
3+
categories:
4+
announcements
5+
cc-catalog
6+
product
7+
gsoc
8+
gsoc-2020
9+
open-source
10+
cc-dataviz
11+
---
12+
author: subhamX
13+
---
14+
series: gsoc-2020-dataviz
15+
---
16+
pub_date: 2020-07-16
17+
---
18+
19+
body:
20+
## Introduction
21+
**Linked Commons** is a visualization project which aims to showcase and establish a relationship between millions of data points of licensed content metadata using graphs. Since it is the first blog of this new series, let’s discuss the core ideology of having this project and then about new features. Development of all components mentioned in this blog is complete and has been successfully integrated, so do check out the development version. Happy Reading!
22+
23+
24+
## Motivation and why does visualization matter?
25+
The number of websites using creative commons licensed content is very huge and growing very rapidly. The CC catalog hosts these millions of data points and each node contains information about the URL of the websites and the licenses used. One can surely do rigorous data analysis, but this would only be interpretable by a few people with a technical background. On the other hand, by visualizing data, it becomes incredibly easier to identify patterns and trends. As an old saying, a picture is worth a thousand words. That’s the core ideology of the Linked Commons, i.e. to show the millions of licensed content metadata and how these nodes are connected in a visually appealing form on the HTML canvas like a picture.
26+
27+
28+
## Task 1: Code Refactoring
29+
My first task was to refactor the code and migrate it to react. The existing codebase had all core functionalities, but we wanted to make it more modular, improve the design, code readability, and reduce complexity. This will help us maintain this project in the long run. Also, it will be easier for the community to contribute and understand the logic.
30+
31+
32+
## Task 2: Graph Filtering
33+
34+
### Need for Filtering Methods
35+
36+
<div style="text-align: center; width: 90%; margin-left: 5%;">
37+
<figure>
38+
<img src="big-graph.png" alt="Large Graph" style="border: 1px solid black">
39+
<figcaption style="font-weight: 500;">Pic showing clustors of a Graph with 9982 nodes 5000 links</figcaption>
40+
</figure>
41+
</div>
42+
43+
The aggregate data that cc catalog has is in hundreds of millions. Rendering a graph with these many nodes will be a nightmare for the browser’s rendering and JavaScript engine. Just like we divide any standard textbook into chapters, we thought about adding filtering options that enable the user to retrieve precise information according to certain criteria selected by them. Hence,  we need to have a way in which we can filter the aggregate data into smaller chunks.
44+
45+
46+
### What filtering methods?
47+
After brainstorming for a while, we converged and agreed to have **filtering based on node name and distance**. The primary reason behind this was, it is kind of basic that a person would like to look for his/her favourite node and its neighbours. This is not the end for sure, and many more filtering methods will be added, maybe with the support of chaining one after another. This is just a baby step!
48+
49+
### Server-side Filtering vs Client-Side Filtering?
50+
Now that we know on what query params the filter should work, we need to decide where to do the filtering. Should we do it on the client machine or do it on our server and pass the processed and filtered data to the client? In any filtering method, we need to traverse the whole graph. The JS engine in the browser is doing rendering stuff, complex calculation, etc. With all these processes, doing a full traversal of the dataset having more than a million nodes is going to take a lot of time and memory. The above claim assumes that we have a moderately dense graph. On the other hand, another strategy to accomplish graph filtering could be to delegate that load to a server, and the client’s browser can ask for a fresh copy of the filtered data whenever needed. As mentioned above the client-side filtering has serious shortcomings and user experience won’t be very good with browser freezing and frame drops. So, that's why we decided to go with the latter option i.e server-side filtering.
51+
52+
<div style="text-align: center;">
53+
<figure>
54+
<img src="filtering-in-action.gif" alt="Filtering In Action" style="border: 1px solid black">
55+
<figcaption>Filtering In Action</figcaption>
56+
</figure>
57+
</div>
58+
59+
## Task 3: New Design
60+
My third task was to upgrade the front-end design of the project. It now has a very clean and refreshing look along with the support for both light and dark theme. Check out our webpage in dark mode and do let us know if it saves your PC energy consumption (As claimed by some websites). Now you all can visit the Linked Commons webpage at mid-night too, no strain to the eyes. ;)
61+
62+
<div style="text-align: center; width: 90%; margin-left: 5%;">
63+
<figure>
64+
<img src="new-design-light.png" alt="Light Theme" style="border: 1px solid black">
65+
<figcaption>Linked Commons - Light Theme</figcaption>
66+
</figure>
67+
</div>
68+
69+
## Next steps
70+
In the next two weeks, I will be working on the following features.
71+
* Implement suggestions API on the server and integrate it with the frontend
72+
* Update the visualization with a more recent and bigger dataset
73+
74+
## Conclusion
75+
Overall, it was fantastic and rejuvenating experience working on these tasks. Now that you have read this blog till the end, I hope that you enjoyed it. For more information visit our [Github repo](https://github.com/creativecommons/cccatalog-dataviz/). We are looking forward to hearing from you on linked commons. Our [slack](https://creativecommons.slack.com/channels/cc-dev-cc-catalog-viz) doors are always open to you, see you there. :)
Loading
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
name: GSoC 2020: The Linked Commons
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
name: Outreachy May 2020 round: CC Open source

databags/community_team_members.json

+9-1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@
6060
"name": "Ayan Choudhary",
6161
"role": "Project Core Committer"
6262
},
63+
{
64+
"name": "Tanuj Agarwal",
65+
"role": "Project Collaborator"
66+
},
6367
{
6468
"name": "Abhishek Naidu",
6569
"role": "Project Member"
@@ -92,6 +96,10 @@
9296
"name": "Dhruv Bhanushali",
9397
"role": "Project Core Committer"
9498
},
99+
{
100+
"name": "Mayank Nader",
101+
"role": "Project Collaborator"
102+
},
95103
{
96104
"name": "Shubham Pandey",
97105
"role": "Project Contributor"
@@ -204,7 +212,7 @@
204212
},
205213
{
206214
"name": "Tanuj Agarwal",
207-
"role": "Project Contributor"
215+
"role": "Project Member"
208216
},
209217
{
210218
"name": "Jahnvi Gupta",

databags/repos.json

+1-17
Original file line numberDiff line numberDiff line change
@@ -103,22 +103,6 @@
103103
"url": "https://github.com/creativecommons/cc-link-checker",
104104
"website": null
105105
},
106-
{
107-
"created": "2019-01-29T21:17:39",
108-
"description": "Temporary microsite for mx.creativecommons.org",
109-
"engineering_project": true,
110-
"featured": false,
111-
"id": 168230429,
112-
"language": null,
113-
"license": {
114-
"name": "MIT License",
115-
"url": "https://github.com/creativecommons/cc-mexico-micro/blob/master/LICENSE"
116-
},
117-
"name": "cc-mexico-micro",
118-
"slack": "",
119-
"url": "https://github.com/creativecommons/cc-mexico-micro",
120-
"website": "https://mx.creativecommons.org/"
121-
},
122106
{
123107
"created": "2014-01-08T18:49:45",
124108
"description": "Collection of resources on CC tools and other open topics",
@@ -314,7 +298,7 @@
314298
"Vue.js"
315299
],
316300
"url": "https://github.com/creativecommons/cccatalog-frontend",
317-
"website": "https://search.creativecommons.org/"
301+
"website": "https://search.creativecommons.org"
318302
},
319303
{
320304
"created": "2014-10-06T22:07:52",

databags/search_roadmap.json

+6-11
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"quarters": [
33
{
4-
"name": "Q2 2020",
4+
"name": "Q3 2020",
55
"tasks": [
66
{
77
"description": "Make changes to the search algorithm that incorporate image popularity data gathered from sources that provide it. ",
@@ -12,16 +12,6 @@
1212
"description": "Move our data cleaning code from the ingestion step of the API to the initial data processing step of the Catalog to eliminate unnecessary repetitive data cleaning.",
1313
"gid": "1167425798148805",
1414
"name": "Move data cleaning pipeline from API to Catalog"
15-
}
16-
]
17-
},
18-
{
19-
"name": "Q3 2020",
20-
"tasks": [
21-
{
22-
"description": "Designing and prototyping an upcoming user interface for searching for audio on CC Search.",
23-
"gid": "1163392248010945",
24-
"name": "Design Sprint: Audio UI for CC Search"
2515
},
2616
{
2717
"description": "Manage Catalog deployment and provisioning entirely through infrastructure as code.",
@@ -73,6 +63,11 @@
7363
"gid": "1149456632174198",
7464
"name": "Internationalization Infrastructure"
7565
},
66+
{
67+
"description": "Designing and prototyping an upcoming user interface for searching for audio on CC Search.",
68+
"gid": "1163392248010945",
69+
"name": "Design Sprint: Audio UI for CC Search"
70+
},
7671
{
7772
"description": "Design and user test UIs for audio. Ingest a pilot collection of audio to the Catalog, build support in the API. Integrate design to frontend to allow users to search for CC licensed audio.",
7873
"gid": "1171015130050099",

0 commit comments

Comments
 (0)