Skip to content

Commit 5b619d4

Browse files
authored
Merge branch 'master' into ayan-patch-1
2 parents 9199fc2 + f0f6914 commit 5b619d4

File tree

16 files changed

+196
-60
lines changed

16 files changed

+196
-60
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.

content/blog/authors/soccerdroid/contents.lr

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ name: María Belén Guaranda Cabezas
55
md5_hashed_email: a177edcce952c2c82ac8716a4586a28f
66
---
77
about:
8-
Maria is an undergraduate Computer Science student from ESPOL, in Ecuador. She has worked for the past 2 years as a research assistant. She has worked in projects including computer vision, the estimation of socio-economic indexes through CDRs analysis, and a machine learning model with sensors data. During her spare time, she likes to watch animes and read. She loves sports, especially soccer. She is also committed to environmental causes, and she is a huge fan of cats and dogs (she has 4 and 1 respectively).
8+
Maria is a Bachelor of Computer Science from Ecuador. As a research assistant, she worked in projects including computer vision, the estimation of socio-economic indexes through CDRs analysis, and a machine learning model with sensors data. During her spare time, she likes to watch animes and read. She loves sports, especially soccer. She is also committed to environmental causes, and she is a huge fan of cats and dogs (she has 4 and 1 respectively).
99

10-
Maria is working on [data visualizations of the CC Catalog](https://github.com/creativecommons/cccatalog-dataviz) as part of [Google Summer of Code 2019](/gsoc-2019).
10+
Maria worked in the [data visualizations of the CC Catalog](https://github.com/creativecommons/cccatalog-dataviz) as part of [Google Summer of Code 2019](/gsoc-2019), and is currently a mentor in this year's edition of the program.
+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.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
title: CC Legal Database: Coding and Mid-term status
2+
---
3+
categories:
4+
cc-legal-database
5+
product
6+
outreachy
7+
---
8+
author: krysal
9+
---
10+
series: outreachy-may-2020-legal-database
11+
---
12+
pub_date: 2020-07-08
13+
---
14+
body:
15+
We are already in the second half of the time stipulated for the project and it is time to pause for review the initial plan, celebrate the objectives achieved and think about what remains to be done.
16+
17+
## Initial plan
18+
19+
Initially, two weeks were allocated to do the redesign for the new site. I thought there would be plenty of time here, _is just design_ I said to myself, despite not having done any serious project in Figma before beyond a few sketches. Later we will see I was wrong here. This included creating new Vocabulary components if necessary. Between the second and third weeks, I would create the data models (for Django and therefore for the database as well) and from the fourth week onwards it would start to implement all this in code: make the Homepage, listing, details pages and the others.
20+
21+
## Issues in the way
22+
23+
One task that took longer than expected was to finish the designs, a key point because the other tasks depended on this. Though the initial scheme was ready on time, as it was discussed with the stakeholders new requirements became evident, so more modifications had to be made. For example, on the [current site](https://labs.creativecommons.org/caselaw/), the way to explore cases and scholarship is by country, and in principle, this would stay the same way and I designed with that in mind, but talking to our internal user (which acts as a _product owner_ here) was better to change this scheme to one for labels or categories that are more related with both entities. Highlighting the case of the Scholarship model, in which the attribute of the country was eliminated because it is not so relevant, and although it seemed somewhat a small thing, this also caused changes in the design of the home page, the listings and how the content of the database will be explored in general. Design for a good user experience is not so easy as a non-designer may think. There were times when there was a lack of ideas but the important thing is to make decisions and move forward, in later iterations it will be improved.
24+
25+
As in all software development, unexpected things happen and errors will appear no matter how much you plan ahead, for the fourth week I had planned to build a continuous integration system to have a server where anyone can see the progress of my changes, however, there were a few inconveniences that had me googling for a couple of days, publishing a Django project in Heroku can be tricky, specially regarding static files (assets like style sheets and scripts) if they are generated by Heroku at some point in the deployment pipeline, depending on the phase in which it is carried out, they can be lost in the ephemeral file system of Heroku, a process that I will not delve into here but that seems important to me to highlight if anyone else has similar problems.
26+
27+
## Progress so far
28+
29+
I have managed to finish the main tasks and I would say that even the initially expected result has been improved. So I can list the following achievements:
30+
- Redesigned the entire website using the Figma Design Library
31+
- Built first pages: Home, listing and details pages for both Cases and Scholarship, and one for the FAQs.
32+
- Create a GitHub Action to lint every PR and check if it follows the project's code style
33+
- Deployment of the Django project on Heroku with a CI process linked to a GitHub repository, see the live development site [here](https://cc-caselaw.herokuapp.com/).
34+
35+
It is said quickly but each task carries its considerable workload. It's been a good result so far, I've learned a lot of things along the way, like basic use of Figma, use of Storybook (related to Vocabulary components), good code security practices, some accessibility details, and more.
36+
37+
## Plan for the second half of the timeline
38+
39+
There are some tasks due from past weeks, such as build forms for Case and Scholarship submissions, but I am confident that now that the project has reached a stable state I can do it quickly in the next days. Other tasks were moved for later: searching records and filtering by tags moved after forms are created, so I can finish the visual parts of the site first and focus on functional work without shifting between types of tasks.
40+
41+
The tasks and they order have changed, like I mentioned earlier, requirements were modified (a bit) so some tasks I planned for last weeks are not necessary anymore or are done already out-of-box with Django admin (benefits of choosing a batteries included framework!). In general, I don't think the initial plan was wrong, we just went through the natural evolution of a product software. Mentors have also been very helpful in keeping a reasonable scope and adjusting priorities.
42+
43+
After main functionalities are done we can start making improvements, as we already identified some nice to have features but not so important at the moment. Stay tuned for more to come.
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

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>

0 commit comments

Comments
 (0)