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

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.
