Google Code In 2018 Tasks

 @

= Interested Mentors =

Please first fill out the Google form mentioned at the top of: Google Code In 2018 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


 * Design
 * 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 =


 * OSGeo's 2017 tasks: https://codein.withgoogle.com/archive/2017/organization/5168183002529792/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
 * "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 =


 * see shared spreadsheet on Google Drive

= Bulk Uploading Tasks =

Documentation


 * API

Prep

NOTE: the python scripts for bulk uploading are written for Python2, but the instructions below should work for both Python2 & 3:


 * 1) git clone https://code.googlesource.com/codein/api api
 * 2) cd api
 * 3) check your Python version:
 * 4) install module "requests" through easy_install or pip:
 * 5) for Python2, no more changes are needed, proceed to next sections below (export tasks, or list tasks, or upload tasts, etc)
 * 6) for Python3, make the following changes:
 * 7) * in list_tasks.py change print command on line# 45 to
 * 8) * in list_tasks.py convert to an int on line# 52 to
 * 9) * in csv_uploader.py change line# 64 to
 * 10) * in csv_uploader.py change print command on line# 83 to
 * 11) * in csv_uploader.py change print command on line# 86 to
 * 12) * in client.py change instances of "urlparse" to "urllib.parse"
 * 1) * in csv_uploader.py change line# 64 to
 * 2) * in csv_uploader.py change print command on line# 83 to
 * 3) * in csv_uploader.py change print command on line# 86 to
 * 4) * in client.py change instances of "urlparse" to "urllib.parse"
 * 1) * in csv_uploader.py change print command on line# 86 to
 * 2) * in client.py change instances of "urlparse" to "urllib.parse"
 * 1) * in client.py change instances of "urlparse" to "urllib.parse"
 * 1) * 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

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 ....
 * 1) see usage of list_tasks.py
 * 2) get a list of tasks at the commandline
 * 3) ** should return something like:
 * 1) ** should return something like:
 * 1) ** should return something like:

Upload Tasks through Commandline

OK     6030299680997376        MapServer: Give a ....  OK      5944469725642752        MapServer: Make a ....  OK      5765029615894528        MapServer: Install ....  OK      5702068213907456        MapServer: Find and fix ....  OK      5770211091283968        MapServer: Fix ....
 * 1) see usage of csv_uploader.py
 * 2) upload your csv at the commandline
 * 3) ** should return something like:
 * 1) ** should return something like:
 * 1) ** should return something like: