Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GSoC Idea: Implement the Social Currency Metrics System in GrimoireLabs #288

Closed
GeorgLink opened this issue Feb 5, 2020 · 145 comments
Closed

Comments

@GeorgLink
Copy link
Sponsor Member

GeorgLink commented Feb 5, 2020

Idea: Implement the Social Currencyy Metrics System in Grimoire Labs

The Social Currency Metrics System (SCMS) is a qualitative data collection, processing, and measurement system that augments quantitative community management metrics already available in CHAOSS properties. Implementing the SCMS will ultimately help community leaders, power users, and other stakeholders leverage qualitative data for social listening so that they can rely less on the behaviors quantitative data tracks and more on community sentiment. The SCMS empowers community leaders to make decisions based on what community members freely share about their opinions, wants, and needs.

The SCMS shows why trends occur and identifies commonly missed pitfalls in conclusions taken from quantitative data. With an SCMS platform built natively into a CHAOSS Bitergia property, open-source communities can use it to facilitate members’ input in decisions essential to community health.

The purpose of this project is to:
Build the SCMS in one of CHAOSS project’s systems that collects qualitative data from several channels, displays that information for manipulation and tagging, and outputs it to a metric dashboard such as the SCMS information page found here.

The aims of this project are to:

  • Create an API that collects and returns data collected from a community of the GSoC participants’ choice.
  • Gain familiarity with and create a way to grade, tag, and process large amounts of data.
  • Develop creative ways to display complex datasets in the Bitergia Analytics System.
  • Investigate ways to process qualitative data at scale using AI or similar technology.
  • Encourage the larger development of social listening tools based on qualitative data.

Difficulty: Medium to Hard based on the level of implementation (machine learning).

Requirements: Python programming. Interest in machine learning. API Development some understanding of the social scientific process and qualitative data analysis

Recommended: Other API languages, interest in science of community management and anthropological studies of online worlds, willingness to learn CHAOSS Property Structures

Mentors: Dylan Marcy (SociallyConstructed.Online), Venia Logan (SociallyConstructed.Online), Valereo (Grimoire Labs), Georg (Advising only)

Micro-tasks

For becoming familiar with GrimoireLab, you can start by reading some documentation. You can find useful information at:

Once you're familiar with Grimoirelab, you can have a look at the following microtasks.

  • Microtask 0:
    Download PyCharm and get familiar with it (for instance, you can follow this tutorial).

  • Microtask 1:
    Set up Perceval to be executed from PyCharm.

  • Microtask 2:
    Create a Python script to execute Perceval via its Python interface using the GitLab and GitHub backends. Feel free to select any target repository.

  • Microtask 3:
    Based on the JSON documents produced by Perceval and its source code, try to answer the following questions:

    • What is the meaning of the JSON attribute 'timestamp'?
    • What is the meaning of the JSON attribute 'updated_on'?
    • What is the meaning of the JSON attribute 'origin'?
    • What is the meaning of the JSON attribute 'category'?
    • How many categories do the GitHub and GitLab backends have?
    • What is the meaning of the JSON attribute 'uuid'?
    • What is the meaning of the JSON attribute search_fields?
    • What is stored in the attribute data of each JSON document produced by Perceval?
  • Microtask 4:
    Set up a dev environment to work on GrimoireLab. Have a look to https://github.com/chaoss/grimoirelab-sirmordred#setting-up-a-pycharm-dev-environment.

  • Microtask 5:
    Execute micro-mordred to collect, enrich and visualize data from Git and GitHub repositories.

  • Microtask 6:
    Using the dev tools in Kibiter, create a query that counts the number of unique authors on a Git repository from 2018-01-01 until 2019-01-01.

  • Microtask 7:
    Install and use elasticdump to download the mapping and data of an ElasticSearch index (it can be anyone created in Microtask 5).

  • Microtask 8:
    Execute micro-mordred to collect and enrich data from a groupsio repository. You need to register to a group (e.g., https://lists.onap.org/g/main) and follow the instructions at https://github.com/chaoss/grimoirelab-sirmordred#groupsio. Then, write a script to read the enriched index and import the attributes uuid, project, project_1, origin, grimoirelab_creation_date, body and subject_analyzed to a CSV file. Import the obtained file to an excel sheet (in a manual or automatic way).

  • Microtask 9:
    Build a Data Table visualization in Kibiter (you can use the CHAOSS community dashboard) that shows for emails (mbox index) the text of emails (split row by Termbody_extract field).

  • Microtask 10:
    Submit at least a PR to one of the GrimoireLab repositories to fix an issue, improve the documentation, etc.

@valeriocos
Copy link
Member

For all students interested in this idea, please comment on this issue to get in touch with the mentors. This is the main communication channel.

@animeshk08
Copy link
Contributor

Hello Mentors,
I am Animesh Kumar. I am a student at NITK Surathkal. I would be interested in working on this idea. I have started working on the micro-tasks and will send a PR for the same soon.

@valeriocos
Copy link
Member

Thank you @animeshk08 for your interest in this idea! Don't hesitate to write here if you need feedback or help!

@abhiandthetruth
Copy link

abhiandthetruth commented Feb 24, 2020

Hello everyone,
I am currently working on the micro-tasks, will send the pr on completion. Hoping to have a good coding community ahead!

@valeriocos
Copy link
Member

HI @abhiandthetruth , great! Don't hesitate to write here if you need any help/clarification/feedback, thanks!

@kunakl07
Copy link

Hey everyone,
I am Kunal Mehta currently in my Final Year of Computer Engineering and I really loved this project topic. I am currently working on micro-tasks and would love to contribute as much as I can to the open-source and would strive to be an active part of this organization in the future.

@valeriocos
Copy link
Member

Hi @kunakl07, thank you for your interest!
If you are looking for contributions, don't hesitate to have a look at the issues in the https://github.com/chaoss/grimoirelab* repos. Fixes and improvements on the grimoirelab tools documentation and tutorial are also welcomed! Finally, if you have some ideas in mind which aren't reflected in any existing issue, feel free to open a new issue. Thanks!

@kunakl07
Copy link

Sure, Thank you for replying.

@abhiandthetruth
Copy link

@valeriocos I had an Idea in my mind. Should I make an Issue or are we free to discuss here?

@valeriocos
Copy link
Member

If the idea isn't related to this issue, please open a new one in this repo, thanks!

@abhiandthetruth
Copy link

Sure Thanks!

@abhiandthetruth
Copy link

@valeriocos sorry for mentioning it here but I just wanted your opinion before creating the issue since I am new to grimoire labs. Is adding a voice query feature relevant? It will be a great feature which will help the target analysts in their research in this age of voice assistants but may not make sense if grimoire lab is not that end user oriented. Do you think it is feasible? If it is I have a detailed proposal ready. Thanks in advance :).

@valeriocos
Copy link
Member

@abhiandthetruth thank you for sharing this interesting idea!

Having a voice assistant help to create queries in ElasticSearch could be useful from an end-user/analyst perspective. This could be interesting not just for GrimoireLab, but for the ElasticSearch community.

Maybe we can explore this idea (or voice assistant related ones) in one of your personal repositories. Once the implementation is mature, we can propose the inclusion of this repo in CHAOSS. WDYT?

@abhiandthetruth
Copy link

Glad that you liked the idea! Certainly voice interfaces are the future and the sooner we adopt it the better. I am excited to work on it but my priority is GSoC so I have to complete the microtasks. I will be working on the idea definitely. First we need to plan the structure of the software. I initially planned to use Sir Perceval as our first voice agent ;) and try to implement voice queries on him. Shall I proceed to create a fresh repo and add you as a contributor so that we can discuss there?

@valeriocos
Copy link
Member

Cool! Using Perceval is a good starting point!

Yes, please create the repo, thanks! (cc @jgbarah)

@abhiandthetruth
Copy link

repo created and invite sent to you! @valeriocos

@GeorgLink
Copy link
Sponsor Member Author

@abhiandthetruth, it's great to see your initiative in this. Would you be okay with having your repo public and sharing the link here? It is in the spirit of open source to share publicly and discuss in the open.

@abhiandthetruth
Copy link

Yes of course @GeorgLink. The repo link is https://github.com/abhiandthetruth/perceval-voice. I have opened an issue with a short description of the challenges I think we will face, the resources needed and to discuss the basic structure of the initial software. Everyone is welcome to contribute :).

@GeorgLink
Copy link
Sponsor Member Author

GeorgLink commented Feb 28, 2020

Comment moved to: abhiandthetruth/perceval-voice#2 to continue conversation about perceval-voice there.

@abhiandthetruth
Copy link

abhiandthetruth commented Mar 2, 2020

@valeriocos there seems to be a problem with search guard permission in my machine. I can't create indexes due to a 403. I have enriched it though, and the indices are showing up during creation of index. But when I click create index button nothing happens at the frontend. Following are the logs for the same.

elasticsearch_1 | [2020-03-02T18:41:15,716][INFO ][c.f.s.c.PrivilegesEvaluator] No index-level perm match for User [name=readall, roles=[readall], requestedTenant=null] [IndexType [index=.kibana, type=doc]] [Action [[indices:data/write/index]]] [RolesChecked [sg_own_index, sg_readall]]

elasticsearch_1 | [2020-03-02T18:41:15,716][INFO ][c.f.s.c.PrivilegesEvaluator] No permissions for {sg_own_index=[IndexType [index=.kibana, type=doc]], sg_readall=[IndexType [index=.kibana, type=doc]]}

kibiter_1 | {"type":"response","@timestamp":"2020-03-02T18:41:15Z","tags":[],"pid":1,"method":"post","statusCode":403,"req":{"url":"/api/saved_objects/index-pattern?overwrite=false","method":"post","headers":{"host":"localhost:5601","user-agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0","accept":"application/json, text/plain, /","accept-language":"en-US,en;q=0.5","accept-encoding":"gzip, deflate","referer":"http://localhost:5601/app/kibana","content-type":"application/json;charset=utf-8","kbn-version":"6.1.4-1","content-length":"59","connection":"keep-alive"},"remoteAddress":"172.17.0.1","userAgent":"172.17.0.1","referer":"http://localhost:5601/app/kibana"},"res":{"statusCode":403,"responseTime":25,"contentLength":9},"message":"POST /api/saved_objects/index-pattern?overwrite=false 403 25ms - 9.0B"}

Also there appears to be an ssl error whenever I try to access the elastic search server. I am able to access it though after bypassing the warning.
Please help! :(

@snack0verflow
Copy link

@abhiandthetruth did you try https while accessing the elasticsearch server? This is required if you elasticsearch is of the secured version.

@abhiandthetruth
Copy link

abhiandthetruth commented Mar 2, 2020 via email

@snack0verflow
Copy link

@abhiandthetruth hmm
Try increasing the virtual memory of elasticsearch:
sudo sysctl -w vm.max_map_count=262144
This is valid only for the current session.

@abhiandthetruth
Copy link

abhiandthetruth commented Mar 2, 2020

@snack0verflow ya I have done that, that is why I was able to enrich it. The elastic search server can be accessed over https in my machine. I think it's an issue with search guard. But that was one of the problem I also encountered during my setup. Maybe we should mention it in the readme? Thanks for helping :)

@abhiandthetruth
Copy link

@snack0verflow are you using the same docker-compose.yml file or have you tweaked it? Is everything working fine in your machine? Can you try
curl -XGET https://admin:admin@localhost:9200
and tell me the response?

@snack0verflow
Copy link

@abhiandthetruth I got the same "dictionary" result that shows up on my browser. Just added -k to the curl command.
Yes I am using the same yml.

@abhiandthetruth
Copy link

does it give an ssl error without -k?

@vchrombie
Copy link
Member

Hi @abhiandthetruth
Not sure if this would help, but just try with just http everywhere instead of https.

@snack0verflow
Copy link

Not an error but certificate problem curl: (60)
Sorry I'm typing on my phone. My PC is offline.

@abhiandthetruth
Copy link

#288 (comment)

Thank you @abhiandthetruth for the suggestion. Feel free to give it a try, however note that the doc for that API isn't that good (https://groups.io/api#archives), good luck :)

@valeriocos, the api is still not mature, guess we need to wait until it becomes one. The rate limit for download archive is said to be one call per person per group every 24 hours, which is AFAIK not the case I was able to download the archive many times over.

@valeriocos
Copy link
Member

Ok, @abhiandthetruth thank you for giving it a try and for the info :)

@samanthavenialogan
Copy link
Sponsor

samanthavenialogan commented Mar 20, 2020 via email

@samanthavenialogan
Copy link
Sponsor

I look forward to seeing everyone's proposal ^^ Let us know if there's anything more we can do to make this easy for you.

@ria18405
Copy link

Hi @valeriocos
I've completed the Microtasks! Please have a look at it whenever you get time!
Microtasks repo link- https://github.com/ria18405/Microtasks
Thanks :)

@abhiandthetruth
Copy link

@valeriocos my Microtask-8 too, please :).

@animeshk08
Copy link
Contributor

animeshk08 commented Mar 25, 2020

Hi @valeriocos. I have some details to discuss this project before finalizing the first draft of my proposal. Can I ping you on the IRC? Also, please let me know the time when you will be available :)

@valeriocos
Copy link
Member

In 2 hours (11h00 Madrid, Spain) does it work for you?

@animeshk08
Copy link
Contributor

Sure! Thank you :)

@animeshk08
Copy link
Contributor

animeshk08 commented Mar 26, 2020

Hello mentors!
I hope all of you are safe and well :)
I have completed the first draft of my proposal. Reviews and suggestions for improvements are much welcomed. Please have a look at the proposal here: https://docs.google.com/document/d/1JZbje8FfjuSybie1VUewSshTC6zJmHYPCEJ7SZNXI-8/edit?usp=sharing

Thank you!

@animeshk08
Copy link
Contributor

Hello, I would like to let everyone working on their GSoC proposal know that the timeline for GSoC has been modified a bit. Just keep that in mind while making the proposal :)

@ria18405
Copy link

Greetings to all mentors!
Please review my first draft of the Proposal whenever you find time. I'm really sorry for posting this too late.
https://docs.google.com/document/d/1BXK7O3i0j5CO1-jJd2YzClijcxR1z0Bz58HelGZQx6o/edit?usp=sharing
Hope to receive honest reviews!
Thanks a lot! :)

@abhiandthetruth
Copy link

Finally, I also submit my draft proposal for review. Sorry for being late, please review it whenever you all get time. Here's the link https://docs.google.com/document/d/1x4na_WQgmHok0ghKjfDZvtyX2-LAXFG-9V6oLjKnrkM/edit?usp=sharing. Thanks :)

@animeshk08
Copy link
Contributor

animeshk08 commented Mar 29, 2020

Hi, @valeriocos I have included the improvements in my proposal. Thank you again for your reviews. Please let me know if any other improvements are possible.

Also @GeorgLink @samanthavenialogan, please provide your reviews. It would help me to ensure that the proposal is complete from a non-coding point of view as well. You can find my proposal here: https://docs.google.com/document/d/1JZbje8FfjuSybie1VUewSshTC6zJmHYPCEJ7SZNXI-8/edit?usp=sharing
Thank you :)

@valeriocos
Copy link
Member

You're welcome @animeshk08 ! I went through the doc and I don't have other comments :)

@ria18405
Copy link

Hi mentors,
Hope you are safe!
I have incorporated changes after review and have made some additions. Please review it whenever you get time.
Also, should I submit a draft proposal via the GSoC portal? Or move directly towards submitting final proposal after seeking your reviews?
Thanks ! :)

@valeriocos
Copy link
Member

Thank you @ria18405 ! I don't have more comments to add!

Also, should I submit a draft proposal via the GSoC portal? Or move directly towards submitting final proposal after seeking your reviews?

I'm fine with both decisions, let's see what the other mentors propose

@samanthavenialogan
Copy link
Sponsor

Hey y'all!

Thanks so much for your awesome proposals! I've already done a cursory check but Dylan Marcy and I will be meeting tonight to do a detailed review of the proposals. In lieu of the timing since we didn't do this before hand we'd love to know if you want to join us briefly on our hangouts chat to do so. If you would please comment below or send me an email privately to do so. I know it's short notice but we thought we'd like to see you either way :)

It will be at 7:30pm mountain time. Please check your local time.

Also, in response to a few of your comments:

Hi @valeriocos. I have some details to discuss this project before finalizing the first draft of my proposal. Can I ping you on the IRC? Also, please let me know the time when you will be available :)

Did you get all your questions asked?

Also, should I submit a draft proposal via the GSoC portal? Or move directly towards submitting final proposal after seeking your reviews?

I would put it in as many places as possible but I don't mind if it's just here.

@samanthavenialogan
Copy link
Sponsor

As a follow up please know that regardless of your submission you can still freely request a hangout with either Dylan or I, or we can community asynchronously. We are still here and available for you!

Samantha@sociallyconstructed.online

Dylan@soiallyconstructed.online

@GeorgLink
Copy link
Sponsor Member Author

GeorgLink commented Mar 31, 2020

Should I submit a draft proposal via the GSoC portal?

Yes.

Proposals must be submitted in two places for CHAOSS: The GSoC portal and our interest page.

@animeshk08
Copy link
Contributor

Hi @samanthavenialogan. Thank you so much for helping us understand the metrics. Even though the proposal submission deadline is now over I would love to hear your views on my proposal :)

Did you get all your questions asked?

Yes. Thank you :)

@abhiandthetruth
Copy link

Hi @samanthavenialogan. Thank you so much for helping us understand the metrics. Even though the proposal submission deadline is now over I would love to hear your views on my proposal :)

Did you get all your questions asked?

Yes. Thank you :)

Same here :). Thanks

@ria18405
Copy link

ria18405 commented Apr 5, 2020

Hi mentors!
I was filling up the final application of Outreachy, and they wanted me to answer some community-specific additional questions.

Some communities or projects may want you to answer additional questions. Please check with your mentor and community coordinator to see if you need to provide any additional information after you save your final application.

Apart from the project proposal, are there any other questions which need to be attached or answered?

@GeorgLink
Copy link
Sponsor Member Author

Hi @ria18405,

There is no specific information we require in the application but please take a look at our description here to make sure you have everything you need: https://github.com/chaoss/governance/blob/master/Outreachy-interest.md

@ria18405
Copy link

ria18405 commented May 5, 2020

Hi mentors

Hope you all are safe and well

Thank you so much for accepting my project proposal. I'm really glad to be a part of this welcoming and encouraging community.

I hope that I learn a lot from this project, and complete it efficiently. 

Looking forward to amazing working experience. :)

@samanthavenialogan
Copy link
Sponsor

samanthavenialogan commented May 5, 2020

Hi Everyone!

Thank you all so much for your amazing applications! Now that determinations have been made, I want to give you all a heartwarming thank you with extra gratitude for considering this project for Google Summer of Code. I had to take a few deep breaths when I heard the determination.

We at SociallyConstructed.Online feel that we've been blessed, not only by the relationship we've gotten to forge with CHAOSS, but the open-source community and all of you participants as well!

Truthfully, all of your applications had incredibly strong parts to them. You were each weak in a part that another excelled in. The balance of those strengths and weaknesses left both Dylan and I floored.

Borrowing @valeriocos's words here; the time, interest and contributions to GrimoireLab and the Social Currency Metrics System have been remarkable. As a community manager, I always appreciate seeing your faces in the community and I hope you'll continue working to make the SCMS a thing. At the same time, I totally understand if you need some time.

So, if you have any questions, comments, or concerns, we'd love to field them with you in the best way you'd prefer. Whether that be a hangout to discuss your application, or an email to answer something easy.

You can start by emailing me at samantha@sociallyconstructed.online, and we'll set something up ^^

P.S: Congratulations @ria18405 :) We will reach out to you via private email here in a few moments.

@valeriocos
Copy link
Member

Congrats @ria18405 and also to the other applicants (in particular @animeshk08 and @abhiandthetruth). As @samanthavenialogan commented, the applications were really good, and the final decision wasn't that easy.

Don't hesitate to write here or email us if you have questions, comments, or concerns

This issue is going to be closed on Friday.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests