GSoC Checklist
Below is a checklist to help students get set up quickly. Items are categorized to help you prepare your application, get set up to work, and become familiarized with basic infrastructure.
Applying
- Check out our Project Ideas
- Create yourself an account on the FreeCAD forum
- Make also sure you have a GitHub account (not 100% required, but it will be useful to submit your code)
- Introduce yourself! Don't be shy. Tell a bit about what you would like to do with FreeCAD or ask for ideas. You can post for example under the Open discussion section or, better, directly in the GSoC section
- Begin your application, see GSoC Application Guidelines
- Discuss and share your project details on the GSoC section of the forum (don't wait, the sooner the better your proposal can be!)
- Optionally, make a simple pull request against the FreeCAD repo. This will help showing that you are already set up to work with Git, you went through the FreeCAD code and issues already, and you have done your homework.
- Submit your application
- Wait for the results
Things to know before applying
- If you are selected, we will attribute two mentors to you. These mentors will help you to navigate through the code and the FreeCAD universe, but you are the one responsible for doing your work, taking things seriously and keeping up to the schedule
- A FreeCAD GSoC coordinator is appointed for each GSoC season. The coordinator is responsible for making sure everybody is on track with their project, and will act as a backup mentor if one of them is unable to carry on. The coordinator is also who you can reach out to if you meet any problem that your mentors cannot solve
- We are counting on you working constantly and regularly, throughout the coding period. Communicating at least once a week, preferably twice, with your mentors, and posting regular updates of your work either on GitHub or on the FreeCAD forum, are very important aspects of a successful GSoC project
- We will fail you at midterm or end term if you haven´t communicated enough with the mentors and the larger community. GSoC advises to do so, and past experiences taught us to follow the advice. We will help you figure out how best to do that, of course. What you cannot do in any circumstance is disappear or not reply
- All official communications come through the GSoC section of the FreeCAD forum. Make sure you watch that space. The forum allows you to set up web or email notifications, take advantage of that to always be notified.
When you get selected
- Read the BRL-CAD requirementsand expectations. FreeCAD is not applying under the BRL-CAD umbrella anymore, but we still follow the same guidelines and ways of doing. We will request that you commit to your work, and communicate often.
- Set up an interaction schedule with your mentors. They will contact you when you get selected, and you will together define what channels are best for all of you. We expect you to communicate with your mentors at least once a week.
- Get familiarized with web resources: Homepage, Wiki, Forum
- Post your proposal online. Create a thread for your project under the GSoC forum.
- Describe a bit more in detail your project plan: Create a list of a few milestones (3 to 10 is a good measure), start filling these with details of how you are thinking to do that, ask your first questions
- Download or clone the source code, and, if required by your project, make sure you are able to compile FreeCAD successfully (compile, install, run) Source & Compiling
Once coding begins
- Write maintainable, portable, complete code
- Keep a daily log of your activities on your forum thread
- Provide a midterm report on your project progress to your forum thread
- Stay motivated, engage other devs, allocate time for discussions
- Provide a final report on your project progress to the mailing list
- Keep working on FreeCAD :-)
- Submit patches to get familiarized with code; find small tasks like these
- Never hesitate to ask for help or advice. The forum has a mentions mechanism, use it. Mention your mentors, ask them who to ask for a specific question, engage specific people. Seeking feedback is always the best way to make your project successful. See a great example on this thread.