How to Apply
Please see GSoC Checklist. It's important that you read about how to apply first before you talk to use so you have an idea what is going to happen.
GSoC is about getting people involved and contributing to open source over the long-term. As such, we weight our application selection process towards students that are interested in remaining involved in open source software development long after GSoC has ended.
GSoC is not a job. If you are in for easy money then this job is not for you; if you are in because you like to learn and want to participate in an open source project, the rewards are great.
We do grade submissions based on perception of the submitter's abilities to complete the task within the program timeframe, general consensus on the technical approach being proposed, and overall interest in having such modifications made to LibreCAD. Open Source is about communication; we do very much like our student's to communicate with us, hang out on the IRC channel and be active on the forum. Not only for the GSoC project but in general be actively involved in LibreCAD.
Just about every GSoC organization receives considerably more project proposals than can be accepted. Every application gets read multiple times and reviewed in detail. Of those applications, only a small subset are selected so keep in mind that the selection process is rather competitive and difficult.
Whether or not you are accepted, contributing to open source outside of GSoC is one of the main goals of the program and is the best way to be noticed and get your proposal accepted. Keep that in mind. Thanks for your interest and we look forward to working with new LibreCAD developers!
LibreCAD Project Ideas
LibreCAD is a free Open Source CAD application for Windows, Apple and Linux. Support and documentation is free from our large, dedicated community of users, contributors and developers.
REMEMBER These are ideas for GSoC, if you want to work on a other subject then any of the the below that will benefit LibreCAD, then please don't hesitate and let us know! Contact me (Armin) or Florian and let us know your thought's and ideas! We are looking forward to hear how you want to improve LibreCAD!
|LibreCAD 3 UI:
LibreCAD 3 UI now contains all the elements to create new object and do some operations on them. Unfortunately, it's not very intuitive, some features are missing, as :
|C++,QT,UI||MEDIUM||Armin Stebich, Florian Roméo|
|LibreCAD 3 DXF Entities: Implement DXF entities. For LibreCAD 2 we are missing a few set of entities like Block and possible a few more. For LibreCAD 3 are looking for a person that can help implement the missing entities. Task would include
||C++||MEDIUM||Armin Stebich, Florian Roméo|
|LibreCAD 3 OpenGL rendering: Our current rendering engine uses Cairo to render our entities. We are looking for a person that can do a pure OpenGL implementation of it's render engine.||C++||MEDIUM||Armin Stebich, Florian Roméo|
|LibreCAD 3 Plugin Interface: We right now have some lua based scripting support for librecad. But We do look LibreCAD to be much more extensible then it is it the moment. We aim for the support for the future ( Web technologies ), further we also want that the users could have their own programs that interact with LibreCAD kernel at the backend. Send some json/xml like documents that LibreCAd parses and returns a DXF created etc. One of the developers in the past had thought some basic beginning of this, it can reffered at http://forum.librecad.org/GSoC-17-LibreCAD-td5714756.html||C++||MEDIUM||Armin Stebich, Florian Roméo|
|LibreCAD 3 trimming support:
LibreCAD 3 trim operation doesn't support all the entities and is entirely written in Lua. We need a better system which would support more entities and divide operation.
|C++, Lua||MEDIUM||Armin Stebich, Florian Roméo|
HOW TO SUBMIT A PATCH?
1) To create patch first clone our repository and make a new branch
$git clone https://github.com/LibreCAD/LibreCAD_3.git $cd LibreCAD_3 $git checkout -b new_branch
2) Update your code in new branch
3) Create a patch:
Assuming your changes are in new branch and didn’t yet merge it to master branch.
$git format-patch master --stdout > my_patch.patch
This will create a new file my_patch.patch with all changes from new_branch
Now, you have a patch for the fix you wrote. Send it to the maintainer of the project …
It's recommended to use github's pull requests instead of patches: Using pull requests