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
Prep
NOTE: the python scripts for bulk uploading are written for Python2, but the instructions below should work for both Python2 & 3:
- git clone https://code.googlesource.com/codein/api api
- cd api
- check your Python version:
python -V
- install module "requests" through easy_install or pip:
easy_install requests
pip install requests
- for Python2, no more changes are needed, proceed to next sections below (export tasks, or list tasks, or upload tasts, etc)
- for Python3, make the following changes:
- in list_tasks.py change print command on line# 45 to
print ('\t'.join([str(t['id']), t['name']]))
- in list_tasks.py convert to an int on line# 52 to
next_page = int(result.group(1))
- in csv_uploader.py change line# 64 to
with open(filename, 'rt') as csvfile:
- in csv_uploader.py change print command on line# 83 to
print ('\t'.join(['OK', str(t['id']), t['name'], ]))
- in csv_uploader.py change print command on line# 86 to
print ('\t'.join(['ERROR', , t['name'], e.response.text]))
- in client.py change instances of "urlparse" to "urllib.parse"
- in list_tasks.py change print command on line# 45 to
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
- see usage of list_tasks.py
python list_tasks.py --help
- 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
- see usage of csv_uploader.py
python csv_uploader.py --help
- 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 ....