Last modified by Michael Hamann on 2024/03/11 13:47

Show last authors
1 {{velocity output="false"}}
2 #set ($gsocYear = "2023")
3 #set ($sql = ", BaseObject obj, StringProperty year where obj.name=doc.fullName and obj.className='GoogleSummerOfCode.ProjectClass' and doc.name<>'ProjectClassTemplate' and year.id.id = obj.id and year.id.name = 'year' and year.value = '${gsocYear}' order by doc.creationDate")
4 #set ($projectDocNames = $xwiki.searchDocuments($sql))
5
6 #set ($projects = [])
7 #set ($selectedProjectToStudentMap = {})
8 #set ($availableMentorsMap = {})
9 #foreach ($item in $projectDocNames)
10 #set ($projectDocument = $xwiki.getDocument($item))
11 #set ($discard = $projects.add($projectDocument))
12 #set ($projectObject = $projectDocument.getObject('GoogleSummerOfCode.ProjectClass'))
13 #set ($projectStatusValue = $projectObject.getProperty('status').value)
14 #if ("$!projectStatusValue" != '' && $projectStatusValue != 'proposed')
15 #set ($projectStudent = $projectObject.getProperty('assignee').value)
16 #set ($discard = $selectedProjectToStudentMap.put($projectDocument, $projectStudent))
17 #end
18 #set ($projectMentors = $projectObject.getValue('leader').split(','))
19 #foreach ($projectMentor in $projectMentors)
20 ## Store it like this so that we can sort by the reference lowercase (poor man's ignore case sorting).
21 #set ($discard = $availableMentorsMap.put($projectMentor.trim().toLowerCase(), $projectMentor.trim()))
22 #end
23 #end
24
25 #macro (displayProject $project $student)
26 #set ($discard = $project.use('GoogleSummerOfCode.ProjectClass'))
27 (% style="border: 1px dotted #CCC; margin: 0 auto 10px; padding: 0 8px 4px;" %)(((
28 (% style="margin-top: 0;padding-top: 22px" %)
29 == [[$project.displayTitle>>$project.fullName]] #if ("$!student" != '')by ${xwiki.getUserName($student, false)}#end ==
30 (% class="projectdesc" %)(((
31 $project.details
32 (% class="clearfloats" %)((()))
33 )))
34 (% style="font-size: 80%; color: #888;" %)(((
35 #if ("$!project.getValue('leader')" != '')
36 //Coordinated by// $project.display('leader', 'view')
37 #end
38 #if ("$!project.getValue('assignee')" != '')
39 //Contributor// $project.display('assignee', 'view')
40 #end
41 #if ("$!project.getValue('workload')" != "")
42 //Estimated workload//: **$project.display('workload', 'view')**.
43 #end
44 #if ("$!project.getValue('difficulty')" != "")
45 //Difficulty//: **$project.display('difficulty', 'view')**.
46 #end
47 [[Read more...>>$project.fullName]]
48 )))
49 )))
50 #end
51 {{/velocity}}
52
53 {{box cssClass="floatinginfobox" title="**Contents**"}}
54 {{toc/}}
55 {{/box}}
56
57 This page hosts information and project ideas for the open source project [[XWiki>>http://www.xwiki.org]] related to the {{velocity}}[[Google Summer of Code ${gsocYear}>>https://summerofcode.withgoogle.com/]]{{/velocity}} mentorship program.
58
59 = About GSoC =
60
61 You can learn a lot about the program by reading the {{velocity}}[[GSoC FAQ>>https://developers.google.com/open-source/gsoc/faq]]{{/velocity}}. The timeline of this year's edition is given {{velocity}}[[here>>https://developers.google.com/open-source/gsoc/timeline]]{{/velocity}}.
62
63 = Getting Started =
64
65 {{warning}}
66 As a **new GSoC Contributor candidate**, you're probably looking for this section! Please **read** it carefully (and the **linked resources**) before asking for guidance or where to start. It applies to all proposed projects and it covers many topics asked by newcomers.
67 {{/warning}}
68
69 1. Being part of the XWiki community means knowing [[**our rules and practices**>>GoogleSummerOfCode.Guidelines]].
70 1. As a GSOC Contributor or candidate, you need to make sure you read and apply our [[**guidelines**>>GoogleSummerOfCode.Guidelines]]. It also contains suggested way of getting to know the XWiki project and its community. This is where you find out what you need to get up to speed with developing extensions or making changes to the XWiki product.
71
72 Please **do not skip this part**. Don't be that person joining the community and asking "where do I start?". This is your first test you need to pass :)
73
74 = Application template =
75
76 When applying for one of our projects, please provide [[this information about yourself and the project you choose>>GoogleSummerOfCode.student application form]] in the application which you submit to Google.
77
78 {{velocity}}
79 #if ($selectedProjectToStudentMap.size() > 0)
80
81 = Selected Projects for GSoC ${gsocYear} ($selectedProjectToStudentMap.size()) =
82
83 The projects below, out of all the proposed projects, have been selected to participate in GSoC ${gsocYear}.
84
85 #foreach ($selectedProjectDocument in $sorttool.sort($selectedProjectToStudentMap.keySet(), 'displayTitle'))
86 #set ($studentIndex = $mathtool.sub($foreach.count, 1))
87 #displayProject($selectedProjectDocument "$!selectedProjectToStudentMap.get($selectedProjectDocument)")
88 #end
89
90 #end
91 {{/velocity}}
92
93 = Proposed Projects ({{velocity}}$projects.size(){{/velocity}}) =
94
95 {{info}}
96 You can contribute to this list! We encourage would-be mentors to propose ideas or even to revive old ideas from the previous years, but, if you do, make sure to **assign yourselves as mentors** for the proposed project. Proposals without mentors will be discarded, as we have learned from previous years that they are counter-productive.
97
98 Candidate Contributors are also encouraged to propose projects, but make sure you first present and discuss your idea on the [[forum (dev category)>>https://forum.xwiki.org/c/Dev/]] and that they **find a mentor** interested in the idea who should then be assigned to the project proposal.
99
100 We also recommend candidates interested in joining XWiki for GSoC {{velocity}}${gsocYear}{{/velocity}} to **manifest themselves as early as possible** so that we can start working with them on this project list. Communication is the key to success at GSoC!
101 {{/info}}
102
103 {{velocity}}
104 #foreach ($project in $sorttool.sort($projects, 'displayTitle'))
105 * {{html}}<a href="#H$util.encodeURI("${project.displayTitle.replaceAll('[^a-zA-Z0-9\.]', '')}")">$project.displayTitle</a>{{/html}}
106 #end
107 #if($hasEdit)
108
109 {{html}}
110 <form class="xformInline" action="$xwiki.getDocument("${doc.space}.CreateProject").getURL()" id="newproject">
111 <div>
112 <label for="newProjectName">Propose a new project:</label>
113 <input id="newProjectName" type='text' name='page' value='' size='30' placeholder="Short project title"/>
114 <span class='buttonwrapper'>
115 <input class='button' type='submit' value='Add to list'/>
116 </span>
117 <input type='hidden' name='parent' value="$doc.fullName" />
118 <input type='hidden' name='classname' value='GoogleSummerOfCode.ProjectClass' />
119 <input type='hidden' name='template' value='GoogleSummerOfCode.ProjectClassTemplate' />
120 <input type='hidden' name='space' value="$doc.space"/>
121 <input type='hidden' name='xaction' value='create'/>
122 <input type='hidden' name='year' value="${gsocYear}" size='30'/>
123 </div>
124 </form>
125 {{/html}}
126
127 #end
128
129 #foreach ($project in $sorttool.sort($projects, 'displayTitle'))
130 #displayProject($project '')
131 #end
132 {{/velocity}}
133
134 = Mentors ({{velocity}}$availableMentorsMap.size(){{/velocity}}) =
135
136 The following community members are assigned to mentor the proposed projects:
137
138 {{velocity}}
139 {{html clean="false"}}
140 #foreach ($mentor in $sorttool.sort($availableMentorsMap.keySet()))
141 #displayUser($availableMentorsMap.get($mentor))
142 #end
143 {{/html}}
144 {{/velocity}}
145
146 = Contact us =
147
148 You can ask for more information about each project proposal and interact with the community and mentors through the usual communication channels: [[forum>>Community.Discuss||anchor="HForum"]] or the [[Matrix channel>>Community.Chat]].
149
150 = What's next after GSOC? =
151
152 First and foremost: Thank you for having participated to XWiki!
153
154 We want to keep you in the community for as long as possible. We understand that you may have school projects to carry on and won't have the time to continue participating much immediately after GSOC. However, we're really keen to see you coming back to this community when things settle a bit more and you get some time again.
155
156 Here's some visibility and ideas of what's next after you've completed a GSOC project and opportunities you may have:
157
158 * You could be voted as [[Committer>>doc:Community.Committership]]
159 * You could get hired by one of the [[companies doing some business on top of the XWiki project>>doc:xwiki:Main.Supporters.SponsoringCompanies.WebHome]]
160 * Become a [[Google Code-In mentor>>doc:GoogleCodeIn.WebHome]]
161 * You could propose a school project, PhD, etc about XWiki to your teachers!
162 * You'll be able to add a nice line to your CV about having participated to an open source project :)
163 * You can ask for recommendations on LinkedIn, Facebook, etc about your work as a GSOC Contributor
164 * (Future, doesn't exist ATM) Your name on the [[Hall of Fame>>doc:Community.HallOfFame]]
165 * (Future, doesn't exist ATM) Receive an XWiki GSOC t-shirt
166 * (Future, doesn't exist ATM) Be sponsored to take about XWiki at conferences
167 * (Future, doesn't exist ATM) Be able to implement some bounties for XWiki and get paid for it
168 * (Future, doesn't exist ATM) Be invited to physically participate to an XWiki conference
169
170 = Org Admin Resources =
171
172 If you are one of this year's XWiki Organization Administrators, make sure to check out the [[Organization Admin Guide>>GoogleSummerOfCode.OrganizationAdministratorGuide]].
173
174 = Previous GSoC editions =
175
176 * [[The XWiki GSoC 2022 page>>GoogleSummerOfCode2022]]
177 * [[The XWiki GSoC 2021 page>>GoogleSummerOfCode2021]]
178 * [[The XWiki GSoC 2020 page>>GoogleSummerOfCode2020]]
179 * [[The XWiki GSoC 2019 page>>GoogleSummerOfCode2019]]
180 * [[The XWiki GSoC 2018 page>>GoogleSummerOfCode2018]]
181 * [[The XWiki GSoC 2017 page>>GoogleSummerOfCode2017]]
182 * [[The XWiki Google Code-In 2017 page>>dev:GoogleCodeIn.WebHome]]
183 * [[The XWiki GSoC 2016 page>>GoogleSummerOfCode2016]]
184 * [[The page prepared for GSoC 2015>>GoogleSummerOfCode2015]] (XWiki was not selected for GSoC 2015)
185 * [[The page prepared for GSoC 2014>>GoogleSummerOfCode2014]] (XWiki was not selected for GSoC 2014)
186 * [[The XWiki GSoC 2013 page>>GoogleSummerOfCode2013]]
187 * [[The XWiki GSoC 2012 page>>GoogleSummerOfCode2012]]
188 * [[The XWiki GSoC 2011 page>>GoogleSummerOfCode2011]]
189 * [[The page prepared for GSoC 2010>>GoogleSummerOfCode2010]] (XWiki was not selected for GSoC 2010)
190 * [[The XWiki GSoC 2009 page>>GoogleSummerOfCode2009]]
191 * [[The XWiki GSoC 2008 page>>GoogleSummerOfCode2008]]
192 * [[The XWiki GSoC 2007 page>>GoogleSummerOfCode2007]]

Get Connected