Difference between revisions of "Google Code In 2017 Tasks"
Jump to navigation
Jump to search
Vrautenbach (talk | contribs) |
(→Bulk Uploading Tasks: add list_tasks.py Python3 change) |
||
(59 intermediate revisions by 8 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 38: | Line 42: | ||
= Project Tasks = | = Project Tasks = | ||
− | + | * moved to private document on 2017-10-26 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | = Bulk Uploading Tasks = | |
− | + | '''Documentation''' | |
− | + | * [https://code.googlesource.com/codein/api API] | |
− | + | '''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: | ||
+ | #* <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" | ||
− | + | '''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 | |
+ | #* <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> | ||
− | + | '''Upload Tasks through Commandline''' | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | # 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 07:28, 15 November 2017
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 ....