Skip to content

Commit 836a7d7

Browse files
committed
Merge branch 'master' of https://github.com/creativecommons/creativecommons.github.io-source into srinidhi-blogpost2
2 parents 8810a5a + d9ca7d4 commit 836a7d7

File tree

18 files changed

+222
-25
lines changed

18 files changed

+222
-25
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.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
username: AyanChoudhary
2+
---
3+
name: Ayan Choudhary
4+
---
5+
md5_hashed_email: ba5f8ac4afb162644051544e25b5cfe8
6+
---
7+
about:
8+
Ayan Choudhary is an Electrical Engineering undergraduate student from India and will be interning with Creative Commons during the summer. He has been involved with coding quite heavily for the past couple of years which is one of his numerous hobbies. Some of the sectors which really fascinate him include network security, blockchain, and data science. Apart from this he loves reading and painting and is quite interested in PC gaming and binge-watching online shows.
9+
He is working on [ccsearch](https://github.com/creativecommons/cccatalog-frontend) as a part of GSoC20.
10+
He is `@ayan` on slack.
+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: CC Search, Proposal Drafting and Community Bonding
2+
---
3+
categories:
4+
cc-search
5+
community
6+
gsoc
7+
open-source
8+
9+
---
10+
author: AyanChoudhary
11+
---
12+
series: gsoc-2020-ccsearch-accessibility
13+
---
14+
pub_date: 2020-05-22
15+
---
16+
body:
17+
18+
### Proposal Drafting
19+
20+
The majority of my time in March was spent on drafting the proposal for my project **Improve CC Search Accessibility**.
21+
While drafting my proposal I had two broad topic that I had to focus on: Accessibility and Internationalization.
22+
23+
So the first thing which I did was go through the various resources available with me such as w3 guidelines for accessibility, dequeuniversity accessibility insights and MDN notes on accessibility.
24+
After I made myself acquainted myself wih all of these, the next challenge was to sort out which of the metrics were relevant and important enough to be detailed in the proposal and also some of the others metrics which made notable appearances.
25+
Finally by including all of these I had the accessibility part of my proposal complete. Next, I had to work out the part for internationalization. Since it was already decided upon that we will be using vue-i18n, I did some research as to how to we can leverage it to gain the best possible result.
26+
27+
One of the important parts of internationalization happens to be deciding upon the JSON structure which was a highlighted section in my proposal.
28+
The other notable sections included strategies for modification of templates while translating and also how the translations would be carried out without hindering any further development of the platform.
29+
30+
### Community Bonding
31+
32+
Community Bonding involved getting to the mentors and the people whom I will be working with during this internship. Also we decided upon running the audit tests for the cc-search website during this time as it would help identify the key issues we would be facing and also would provide a suitable foundation to start working upon.
33+
The audits were done using Lighthouse, Accessibility Insights and pa11y and they provided useful insights on which parts of the website we should be focusing on such as the contrast issues and the aria-label fixes.
34+
35+
Coming up next will be the progress on the first 2 weeks of the project.
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
title: CC Search, Setting up vue-i18n and internationalizing homepage
2+
---
3+
categories:
4+
cc-search
5+
community
6+
gsoc
7+
open-source
8+
9+
---
10+
author: AyanChoudhary
11+
---
12+
series: gsoc-2020-ccsearch-accessibility
13+
---
14+
pub_date: 2020-06-10
15+
---
16+
body:
17+
18+
These are the first two weeks of my internship with CC. I am working on improving the accessibility of cc-search and internationalizing it as well.
19+
We started with first compiling the accessibility reports from accessibility insights, lighthouse and pa11y into a single document and then opening up appropriate issues ont he repo to address them.
20+
21+
The accessibility issues are listed here:
22+
1. [Accessibility - Improve labels](https://github.com/creativecommons/cccatalog-frontend/issues/996)
23+
2. [Evaluate keyboard navigation effectiveness](https://github.com/creativecommons/cccatalog-frontend/issues/997)
24+
3. [Fix color contrast problems](https://github.com/creativecommons/cccatalog-frontend/issues/998)
25+
4. [Improve elements markup](https://github.com/creativecommons/cccatalog-frontend/issues/999)
26+
5. [Evaluate any accessibility linter tools](https://github.com/creativecommons/cccatalog-frontend/issues/1000)
27+
28+
The decision was made to audit the tab indices along with internationalizing the page.
29+
The accessibility changes will be done after the completion of internationalization as the aria-labels will have to be internationalized as well.
30+
31+
The first two weeks involved setting up vue-i18n, auditing the tab index for homepage and internationalizing it.
32+
The tab index adit for homepage is displayed:
33+
34+
![audit.png](audit.png)
35+
36+
The internationalization part was pretty straightforward, we just had to export all the strings to the JSON files and load transaltions through the i18n module.
37+
For complex elements of the type ```string <tag>string</tag> string``` I went for the templating method.
38+
Here we use the v-slot attribute of the i18n functional component to convert the element into a template where the tag occupies a slot in the syntax.
39+
40+
```
41+
<i18n path="footer.caption.label" tag="p" class="caption">
42+
<template v-slot:noted>
43+
<a href="https://creativecommons.org/policies#license" target="_blank" rel="noopener">{{$t('footer.caption.noted')}}</a>
44+
</template>
45+
<template v-slot:attribution>
46+
<a href="https://creativecommons.org/licenses/by/4.0/" target="_blank" rel="noopener">
47+
{{$t('footer.caption.attribution')}}
48+
</a>
49+
</template>
50+
<template v-slot:icons>
51+
<a href="https://fontawesome.com/" target="_blank" rel="noopener" class="has-text-white">
52+
{{$t('footer.caption.icons')}}
53+
</a>
54+
</template>
55+
</i18n>
56+
```
57+
58+
The final outcome looks pretty good:
59+
60+
![final.png](final.png)
61+
62+
And voila we are done with the first two weeks. I also internationalized the header and the footer along with the homepage.
63+
You can track the work done for these weeks through these PRs:
64+
65+
1. [setup internationalization plugin](https://github.com/creativecommons/cccatalog-frontend/pull/1007)
66+
2. [Internationalize homepage, header and footer](https://github.com/creativecommons/cccatalog-frontend/pull/1013)
67+
68+
The progress of the project can be tracked on [cc-search](https://github.com/creativecommons/cccatalog-frontend)
69+
70+
CC Search Accessiblity is my GSoC 2020 project under the guidance of [Ari Madian](https://opensource.creativecommons.org/blog/authors/akmadian/), who is the primary mentor for this project, [Anna Tumadóttir](https://creativecommons.org/author/annacreativecommons-org/) for helping all along and engineering director [Kriti
71+
Godey](https://creativecommons.org/author/kriticreativecommons-org/), have been very supportive.
Loading
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: CC Search
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
name: GSoC 2020: The Linked Commons

content/contents.lr

+5-5
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ So if you're looking to integrate CC licenses or CC licensed works into your app
1818
</div>
1919
<div class="card-body" align="center">
2020
<p class="card-text text-center">Join the CC developer chat and mailing list communities to connect with other developers working with CC tools.</p>
21-
<a href="/community" class="btn btn-sm btn-outline-primary">See how to join</a>
21+
<a href="/community/" class="btn btn-sm btn-outline-primary">See how to join</a>
2222
</div>
2323
</div>
2424

@@ -29,7 +29,7 @@ So if you're looking to integrate CC licenses or CC licensed works into your app
2929
</div>
3030
<div class="card-body" align="center">
3131
<p class="card-text text-center">Fix one of our open issues or work on something new that you'd like to use. All skill levels are welcome.</p>
32-
<a href="/contributing-code" class="btn btn-sm btn-outline-primary">Guidelines</a>
32+
<a href="/contributing-code/" class="btn btn-sm btn-outline-primary">Guidelines</a>
3333
<a href="https://github.com/search?q=org%3Acreativecommons+is%3Aopen+label%3A%22help+wanted%22" class="btn btn-sm btn-outline-primary">"Help Wanted" issues</a>
3434
</div>
3535
</div>
@@ -42,7 +42,7 @@ So if you're looking to integrate CC licenses or CC licensed works into your app
4242
<div class="card-body" align="center">
4343
<p class="card-text text-center">Use CC-licensed works in your application or (coming soon!) use our WordPress plugin to license your content.</p>
4444
<a href="https://api.creativecommons.engineering/" class="btn btn-sm btn-outline-primary">Catalog API</a>
45-
<a href="/contributing-code/projects" class="btn btn-sm btn-outline-primary">All our projects</a>
45+
<a href="/contributing-code/projects/" class="btn btn-sm btn-outline-primary">All our projects</a>
4646
</div>
4747
</div>
4848

@@ -52,7 +52,7 @@ So if you're looking to integrate CC licenses or CC licensed works into your app
5252
<img class="mx-auto d-block" src="/keyboard-solid.png" alt="Keyboard icon icon"/>
5353
</div>
5454
<div class="card-body" align="center">
55-
<p class="card-text text-center">If you've worked on software that uses CC licenses or tools, tell the community about it on <a href="/blog">our tech blog</a>.</p>
55+
<p class="card-text text-center">If you've worked on software that uses CC licenses or tools, tell the community about it on <a href="/blog/">our tech blog</a>.</p>
5656
<a href="/community/write-a-blog-post/" class="btn btn-sm btn-outline-primary">Write a blog post</a>
5757
</div>
5858
</div>
@@ -64,7 +64,7 @@ So if you're looking to integrate CC licenses or CC licensed works into your app
6464
</div>
6565
<div class="card-body" align="center">
6666
<p class="card-text text-center">Participate in one of our regular usability tests for CC tools that we're actively working on (we'll give you a gift card!)</p>
67-
<a href="/contributing-code/usability" class="btn btn-sm btn-outline-primary">Learn more</a>
67+
<a href="/contributing-code/usability/" class="btn btn-sm btn-outline-primary">Learn more</a>
6868
<a href="https://github.com/creativecommons/creativecommons.org/issues/new/choose" class="btn btn-sm btn-outline-primary">File an issue</a>
6969
</div>
7070
</div>

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/search_roadmap.json

+2-7
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,12 +12,7 @@
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": [
15+
},
2116
{
2217
"description": "Manage Catalog deployment and provisioning entirely through infrastructure as code.",
2318
"gid": "1167425798148811",

webpack/package-lock.json

+3-11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)