Google Code In 2017 Tasks
Revision as of 08:28, 15 November 2017 by Jmckenna (talk | contribs) (→Bulk Uploading Tasks: add list_tasks.py Python3 change)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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
- 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
- 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:
- 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 Python3) in list_tasks.py change print command on line# 46 to
print ('\t'.join([str(t['id']), t['name']]))
- (for Python3) in list_tasks.py convert to an int on line# 52 to
next_page = int(result.group(1))
- (for Python3) in csv_uploader.py change print command on line# 81 to
print ('\t'.join(['OK', str(t['id']), t['name'], ]))
- (for Python3) in csv_uploader.py change print command on line# 84 to
print ('\t'.join(['ERROR', , t['name'], e.response.text]))
- (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
- 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 ....