Skip to content

GSoC2015 Proposal: syslog ng configuration editor web based (Xuefeng Zhu)

Xuefeng Zhu edited this page Mar 26, 2015 · 2 revisions

Abstract

Syslog-ng is a powerful open source log-management tool, which is scalable and flexible for configuration. While it is expressive for administrator to read and edit, but it can be hard to use for people, who are not very familiar with it or haven not gone through the document in detail. My goal is to build a user-friendly web interface to help new users to quickly and correctly finish the syslog configuration.

Goal

I plan to write a web-based configuration application using Angular + Flask. The application will have following features +Friendly user interface and clear instruction +Wizard leads users to finish the configuration step by step
+Whole set of configuration instruction available for users +Users can drag and drop the interaction into the configuration file +(Optional) Regenerate the interface from configuration file

Benefit

Have a GUI interface to config syslog will make it more user friendly and clear. It saves users quite lot of time to complete the configuration by simply dragging and dropping instead of going through long documentation.

Moreover, web-based implantation is much better than native implementation. Users can use web application across multiple devices. Users do not need to wary about compatibly and installation of native application. Just enter the url and following the instruction, and everything will be good to go.

Implementation

I am using Angular to handle front-end user interaction. I will use Bootstrap to write basic user interface. If back-end is needed, I will write REST based on Flask backend service. For Angular, there are tons of nice open source library to perform drag and drop operation. There are also many libraries to perform yaml config file manipulation.

Timeline

  • Apr 27 - May 15:
  • Talk to mentor about the some basic ideas about the project
  • Get familiar with technology used in the project
  • Read related documentations about syslog configuration
  • May 16 - Jun 1:
  • Communicate with mentor to make sure the features needed to implement
  • Design the basic user interface and submit to mentor for review
  • Make modification to the interface based on the feedback
  • Think about the architecture for front-end and back-end
  • Work with mentor to finalize the architecture for the project
  • Jun 2 - Jul 15:
  • Write unit tests for back-end code used for the project
  • Implement back-end functionality
  • Write unit test for front-end code
  • Implement front-end code
  • Jul 16 - Aug 1:
  • Integrate the back-end and front-end functionality
  • Do more testing
  • Aug 2 - Aug 23:
  • Fix bugs existing in the project
  • Release for public testing
  • Finalize the project
  • Review and clean up the code
  • Write documentation

In case I am not able to finish the project in this timeline, I am happy to continue working on it after the summer. I am passionate about open source project and like to contribute to open source community.

Student Info

Contact Info

  • Email: xzhu15@illinois.edu
  • Telephone: 217-607-6680
  • Freenode IRC handle: frankzhu
  • Skype: q81761755

My background

I am Xuefeng Zhu, currently Junior student majored in computer science at the University of Illinois Urbana-Champaign. I am most passionate about web development, since I believe web will be the future. For last summer internship, I built an administration dashboard, which is used to manage user permission and access, using Angularjs and Bootstrap. During the summer, I also worked with professor Brighten Godfrey to build SIGComm website and a Chrome extension, cSpeed, which is used to measure network speed. Currently, I am working with Brighten on a project about congestion control algorithm.

I am the Director of Information at Engineer Council at my school. My responsibility is to help maintain the society server and mail list. I also work on building the new website fore Engineer Council.

I has many self-project available on Github.

For example

Clone this wiki locally