Difference between revisions of "Google Code In 2017 Tasks"

From OSGeo
Jump to navigation Jump to search
(→‎Bulk Uploading Tasks: add list_tasks.py Python3 change)
 
(148 intermediate revisions by 10 users not shown)
Line 2: Line 2:
 
[[Image:GCI-logo.jpg|400px|link=https://developers.google.com/open-source/gci/]] <font size="+3"> @ </font> [[Image:Osgeo-logo.png|300px|link=http://www.osgeo.org]]
 
[[Image:GCI-logo.jpg|400px|link=https://developers.google.com/open-source/gci/]] <font size="+3"> @ </font> [[Image:Osgeo-logo.png|300px|link=http://www.osgeo.org]]
 
</center>
 
</center>
 +
 +
= Interested Mentors =
 +
 +
Please '''first fill out the Google form''' mentioned at the top of:  [[Google Code In 2017 Mentors]]
  
 
= Effort for a Task =
 
= Effort for a Task =
Line 23: Line 27:
 
: Tasks related to user experience research or user interface design and interaction
 
: Tasks related to user experience research or user interface design and interaction
  
= Example Tasks from Previous Years =
+
= Beginner Tasks =
 +
 
 +
* A student can only complete a total of 2 beginner tasks
 +
* Each OSGeo project should specify that a task is a beginner task by including "[BEGINNER]" at the end of the task name
 +
 
 +
= Example Tasks =
  
 
* Haiku project's 2016 tasks: https://codein.withgoogle.com/archive/2016/organization/5146925732986880/task/
 
* Haiku project's 2016 tasks: https://codein.withgoogle.com/archive/2016/organization/5146925732986880/task/
 
** Haiku project's tasks in json format: https://raw.githubusercontent.com/pulkomandy/GCITool/master/tasks.json
 
** Haiku project's tasks in json format: https://raw.githubusercontent.com/pulkomandy/GCITool/master/tasks.json
 +
* "Install and open project XXX and take a screenshot showing the interface, with your Code-in dashboard in the background"
 +
* "Fix an issue in the tracker for project XXX [DIFFICULT]"
 +
* "Present the project XXX to your class [BEGINNER]"
 +
 +
= Project Tasks =
 +
 +
* moved to private document on 2017-10-26
 +
 +
= Bulk Uploading Tasks =
 +
 +
'''Documentation'''
 +
 +
* [https://code.googlesource.com/codein/api API]
 +
 +
'''Prep'''
  
= Beginner Tasks =
+
NOTE: the python scripts for bulk uploading are written for Python2, these steps below were adapted for Python3:
  
* A student can only complete a total of 2 beginner tasks
+
# git clone https://code.googlesource.com/codein/api api
* Each OSGeo project should specify that a task is a beginner task by including "[BEGINNER]" at the end of the task name
+
# cd api
 +
# check your Python version: 
 +
#* <code>python -V</code>
 +
# install module "requests" through easy_install or pip: 
 +
#* <code>easy_install requests</code>
 +
#* <code>pip install requests</code>
 +
# (for Python3) in ''list_tasks.py'' change print command on line# 46 to
 +
#* <code>print ('\t'.join([str(t['id']), t['name']]))</code>
 +
# (for Python3) in ''list_tasks.py'' convert to an int on line# 52 to
 +
#* <code>next_page = int(result.group(1))</code>
 +
# (for Python3) in ''csv_uploader.py'' change print command on line# 81 to
 +
#* <code>print ('\t'.join(['OK', str(t['id']), t['name'], '']))</code>
 +
# (for Python3) in ''csv_uploader.py'' change print command on line# 84 to
 +
#* <code>print ('\t'.join(['ERROR', '', t['name'], e.response.text]))</code>
 +
# (for Python3) in ''client.py'' change instances of "urlparse" to "urllib.parse"
  
= Mentor Responsibilities =
+
'''Export CSV'''
  
...to OSGeo gci-admin team
+
* export your tasks from the Google spreadsheet (assuming you created a new sheet in the shared doc ''Code-in Bulk Upload Spreadsheet'') as CSV (File/Download as/CSV), but before that be sure to:
 +
** make sure that the '''"categories" field''' is comma separated '''INTEGERs''' (see the "column definitions" sheet in ''Code-in Bulk Upload Spreadsheet'')
 +
** verify that your dashboard '''PROFILE email address''' is the EXACT same as what you entered in the '''"mentors" field''' in 'Code-in Bulk Upload Spreadsheet' (otherwise your uploaded tasks will have empty/missing mentor)
  
* Communicate availability and interaction expectations
+
'''List Tasks through Commandline'''
* Inform gci-admin team when mentoring capacity will be reduced, as early as possible (e.g., family, health, vacation)
 
* Inform gci-admin team when there is an issue with a student
 
** Lacking communication, activity, visibility (MIA), or progress
 
** Participant Agreement violations (e.g., plagiarism, harassment, fraud)
 
** Bad fit or stepping down
 
** Formally evaluate student participation
 
  
...to your Students
+
# see usage of list_tasks.py
 +
#* <code>python list_tasks.py --help</code>
 +
# get a list of tasks at the commandline
 +
#* <code>python list_tasks.py --apikey [OSGeoKey]'''</code>
 +
#** should return something like:
 +
<pre>
 +
    5126447435874304        gvSIG: Make a .....
 +
    5172599543824384        gvSIG: Install.....
 +
    5702068213907456        MapServer: Find and fix ....
 +
    5723293673848832        gvSIG: Make a ....
 +
    5761046167945216        gvSIG: Give a talk about ....
 +
    5762611012435968        MapServer: Design a ....
 +
    5765029615894528        MapServer: Install ....
 +
</pre>
  
* Help and/or teach the student how to
+
'''Upload Tasks through Commandline'''
** be a part of your community
 
communicate more effectively and in the open
 
work with your org’s preferred communication channel (IRC, Slack, etc)
 
use your org’s version control system
 
ask good questions and get answers to their questions
 
provide convincing technical argument and constructive discussion
 
be independently motivated and productive
 
solve difficult technical problems
 
Keep track of their progress, keep student informed as to their status
 
Communicate on a regular basis, once a week or better (for GSoC)
 
Give constructive feedback, be patient (particularly for GCI), and be respectful
 
Respond to questions within 24 hours (occasionally under 36 hours is ok)
 
Establish realistic work objectives and timeline expectations
 
Re-evaluate scope with student when significantly ahead of or behind expectations
 
GCI: Give them extra time on a task as warranted
 
Work with devs and community to facilitate acceptance of student work
 
  
 +
# see usage of csv_uploader.py
 +
#* <code>python csv_uploader.py --help</code>
 +
# upload your csv at the commandline
 +
#* <code>python csv_uploader.py -v --apikey [OSGeoKey] project-tasks.csv</code>
 +
#** should return something like:
 +
<pre>
 +
  OK      6030299680997376        MapServer: Give a ....
 +
  OK      5944469725642752        MapServer: Make a ....
 +
  OK      5765029615894528        MapServer: Install ....
 +
  OK      5702068213907456        MapServer: Find and fix ....
 +
  OK      5770211091283968        MapServer: Fix ....
 +
</pre>
 
[[Category:Google Code In]]
 
[[Category:Google Code In]]

Latest revision as of 08:28, 15 November 2017

GCI-logo.jpg @ Osgeo-logo.png

Interested Mentors

Please first fill out the Google form mentioned at the top of: Google Code In 2017 Mentors

Effort for a Task

  • Each task is expected to take 3-5 hours of work to complete
  • Students have at least 3 days to complete the task

Types of Tasks

There are 5 types of Code-in Tasks in general:

Code
Tasks related to writing or refactoring code
Documentation/Training
Tasks related to creating/editing documents and helping others learn more
Outreach/Research
Tasks related to community management, outreach/marketing, or studying problems and recommending solutions
Quality Assurance
Tasks related to testing and ensuring code is of high quality
User Interface
Tasks related to user experience research or user interface design and interaction

Beginner Tasks

  • A student can only complete a total of 2 beginner tasks
  • Each OSGeo project should specify that a task is a beginner task by including "[BEGINNER]" at the end of the task name

Example Tasks

Project Tasks

  • moved to private document on 2017-10-26

Bulk Uploading Tasks

Documentation

Prep

NOTE: the python scripts for bulk uploading are written for Python2, these steps below were adapted for Python3:

  1. git clone https://code.googlesource.com/codein/api api
  2. cd api
  3. check your Python version:
    • python -V
  4. install module "requests" through easy_install or pip:
    • easy_install requests
    • pip install requests
  5. (for Python3) in list_tasks.py change print command on line# 46 to
    • print ('\t'.join([str(t['id']), t['name']]))
  6. (for Python3) in list_tasks.py convert to an int on line# 52 to
    • next_page = int(result.group(1))
  7. (for Python3) in csv_uploader.py change print command on line# 81 to
    • print ('\t'.join(['OK', str(t['id']), t['name'], ]))
  8. (for Python3) in csv_uploader.py change print command on line# 84 to
    • print ('\t'.join(['ERROR', , t['name'], e.response.text]))
  9. (for Python3) in client.py change instances of "urlparse" to "urllib.parse"

Export CSV

  • export your tasks from the Google spreadsheet (assuming you created a new sheet in the shared doc Code-in Bulk Upload Spreadsheet) as CSV (File/Download as/CSV), but before that be sure to:
    • make sure that the "categories" field is comma separated INTEGERs (see the "column definitions" sheet in Code-in Bulk Upload Spreadsheet)
    • verify that your dashboard PROFILE email address is the EXACT same as what you entered in the "mentors" field in 'Code-in Bulk Upload Spreadsheet' (otherwise your uploaded tasks will have empty/missing mentor)

List Tasks through Commandline

  1. see usage of list_tasks.py
    • python list_tasks.py --help
  2. get a list of tasks at the commandline
    • python list_tasks.py --apikey [OSGeoKey]
      • should return something like:
    5126447435874304        gvSIG: Make a .....
    5172599543824384        gvSIG: Install.....
    5702068213907456        MapServer: Find and fix ....
    5723293673848832        gvSIG: Make a ....
    5761046167945216        gvSIG: Give a talk about ....
    5762611012435968        MapServer: Design a ....
    5765029615894528        MapServer: Install ....

Upload Tasks through Commandline

  1. see usage of csv_uploader.py
    • python csv_uploader.py --help
  2. upload your csv at the commandline
    • python csv_uploader.py -v --apikey [OSGeoKey] project-tasks.csv
      • should return something like:
  OK      6030299680997376        MapServer: Give a ....
  OK      5944469725642752        MapServer: Make a ....
  OK      5765029615894528        MapServer: Install ....
  OK      5702068213907456        MapServer: Find and fix ....
  OK      5770211091283968        MapServer: Fix ....