Summary

Date

Fall 2005 - Spring 2006

Created For

Software Engineering Course

Skills

OOP, Client/Server Architecture, Databases

Technology

Python, wxWidgets, XML-RPC, Subversion, MySQL

Source Code

Download

pySubscriber

Function Sucker Pro

FSP is a client/server application designed to index functions out of source code. It was created over the course of my Software Engineering I & II classes. The application was designed during the Fall 2005 semester and implemented during the Spring 2006 semester.

FSP features three separate components. The server software manages database connectivity and requests from the other two components. The second part is of course the client software, which was written using wxWidgets to make it cross-platform. The third component is the spider, which is responsible for connecting to remote version control systems, parsing source files, and reporting the results to the server for permanent storage.

Since the entire application is written in Python, it is cross-platform. The server can run on any operating system with Python support and the proper Python modules. The client can run on any platform for which there are Python wxWidgets bindings. The database backend is provided by MySQL. Connectivity between the client and server is provided by the Python XML-RPC library.

FSP makes use of a basic modular driver system that allows support for new version control systems and parsers for languages. It currently supports connectivity with Subversion repositories, and can parse PHP and JavaScript (in a .js file or within HTML as well). The course requirements only called for JavaScript support. But, with the driver system in place, PHP support was added in quite literally a few hours.

The source code is available for download here, but it is very rough around the edges. It should not be considered finished, even though it more than met the requirements of the course.