Google Summer of Code
Welcome prospective students!
KStars welcomes all prospective students planning on participating in GSoC 2017.
By participating in Open Source projects such as KStars, you shall gain a considerable experience not only in terms of real world development practices in the software industry, but also improve your skills in planning, management, and communication. There are usually three/four slots available for KStars, so the competition to win is stiff! After a student is selected, he/she shall implement the selected project over the course of roughly three months with mid-term evaluations submitted to Google on the progress of the project's objectives.
You are expected to fully dedicate the GSoC 2017 summer period to the development of KStars. Specifically, the following is NOT accepted during the program duration:
- Full/Part time job.
- University summer course.
GSoC 2017 should be treated as a full time job by the prospective student for the duration of the program. If you have any college examinations during the GSoC 2017 period they must be clearly indicated in the proposal.
Before any student is selected for any KStars GSoC project, they must demonstrate their ability to work in KStars/KDE/Qt environment as discussed in the next section.
Where do I start?
To develop for KStars, you are expected to be well versed in the following areas:
- Algorithms, data structures, and design patterns.
Since you selected KStars for your project, it is safe to assume you are interested in astronomy; Therefore, a background in Astronomy also helps in the development process. To prepare yourself for GSoC, perform the following steps:
- Read KStars GSoC ideas: The KStars team compiled a few ideas for GSoC students. You need to carefully read all ideas and select which one best suit your interests and abilities. If none match your interest, you can propose a new idea pending the approval of KStars mentor.
- Prepare your computer environment for KStars development:
- Download and install a modern Linux distribution: While you can build KStars on any Linux distribution, it is recommended to install a modern KDE-based distribution such as Kubuntu 16.04 or later.
- Download Qt Creator: Ensure to install all examples and documentation. Several examples are available online as well. Start with simple Hello World application to get familiar with Qt, and proceed with building GUI applications based on QWidget and QML.
- Build GIT version of KStars. You should be able to open KStars project in Qt Creator. KDE applications using CMake build system. Go to File --> Open Project and select CMakelists.txt
- Study KStars API: KStars may be a complex piece of software but it's not magic, learn how it internally works.
- Review the KStars handbook: While the handbook is meant for end users, it's good to familiarize yourself with how end users utilize KStars.
- Hunt pending KStars bugs: Try to fix pending KStars bugs items, send a patch to the maintainer and/or propose possible fixes!
- Implement a Junior job: Junior jobs are small jobs that shall help KStars become better and stable.
Students are required to either implement one of junior jobs and/or resolve bugs to prove eligibility to participate in KStars. You need to be actively involved in KStars before the GSoC official proposal submission date and evaluation.
During the course of the GSoC project, you are expected to keep your mentor and the KStars developers informed throughout the project cycle:
- First and foremost is KStars Developement mailing list: Use the mailing list for everything from inquiry, non-trivial code commits, and progress reports.
- Developers sometimes hang out at Matrix KStars channel. You can discuss a variety of topics with them subject to availability.
While students are strongly encouraged to ask any development related questions via any communication channel above, you are expected to do your research before you ask. Repetitively asking trivial questions to mentors shows you have not performed your research well into the issue or lack basic problem-solving abilities. Therefore, research your issues then ask specific direct questions to the mailing list or mentors.