Skip to content

GSoC2015 Proposal: syslog ng configuration editor using Qt (krajsz)

Fábián Kristóf edited this page Mar 26, 2015 · 1 revision

Synopsis:

Syslog-ng has a strong configuration language, which offers users great flexibility, but for many users the learning of the language could take too much time, and we know that time is money, and when the existence of a configuration file is necessary we have to find the fastest and the most user-friendly way to create it in order to satisfy the users, and of course to save time everywhere we can. The main objective of this project is to create a user-friendly application, which will provide users a much easier way to edit their configuration file using drag&drop technique.


Details:

The application will be implemented in C++, mostly C++11. The GUI of course will be implemented using the Qt framework, and it will be set up from the YAML file which contains the elements of a configuration file. The GUI will contain icons which represent the different config elements (like sources, destinations, parsers, etc.), and the user will be able to drag&drop them, and connect them according to the syntax of a configuration file. Each element will have its own set of properties. If the user clicks on an icon, the property editor will open for that element which is represented by the selected icon.

Benefits:

For the community:

  • Easy way of editing configuration files for new users, time efficiency of creating a complex configuration file for administrators improves.
  • A new GUI tool for syslog-ng which helps its users to use it without getting deeper into documentation.

For the student:

  • Learning how to cooperate with a large team of developers.
  • Improving GUI designing skills.
  • Enhancing code optimizing capabilities.
  • Getting used to writing clean code.

Timeline:

  • First two weeks:

    • Getting deeper into Syslog-ng's configuration language, reading the documentation.
    • Studying the YAML file provided by my mentor.
    • Creating sketches for the GUI.
  • Third to seventh week:

    • Designing the first prototype (GUI, creating a basic configuration file), modifying it according to mentor's feedback.
    • Writing the parsing of the YAML file from which the GUI is set up (using the yaml-cpp YAML parser library).
    • Adding documentation to the code available already.
  • Seventh to eleventh week:

    • Improving the speed of the application, optimizing code where necessary.
    • Adding new features to the GUI, making it as user-friendly as possible, improving the design of the GUI.
    • Writing some documentation.
    • Testing the current release, discussing if there are some improvements requiered with my mentor.
  • Eleventh to the last week:

    • Finalizing the coding, documentation and user guide.
    • Getting feedback from my mentor and the community, checking for bugs, fixing bugs.
    • Testing the final release

Short bio:

My name is Fábián Kristóf Szabolcs, I am a Computer Science student at the University of Debrecen. I am currently in my second year, having a good knowledge of C++, and I have worked with Qt in more university projects, like https://github.com/krajsz/Traffic-counter-with-OpenCV. We have a small group of researchers at the university, and I am a member of that group, currently we are working on a project named Robocar World Championship. In the past year I've been working mostly with the Qt creator, writing plain C++ projects and some GUIs. Besides working on this project I don't have other plans for the summer, so I will be able to work easily 35-40 hours a week. I'm also looking forward on working on this project, learning to create a user-friendly GUI, getting feedback from the community, and also working with the developer team of the syslog-ng project.


Others:

My solution for the Task0 which László asked: https://github.com/krajsz/Task0-GSoC15-Syslog-ng-Qt

Clone this wiki locally