When I started writing this I wasn't considering finishing. The entire project took about 9 months, and serves in my memory as the primary reason I should practice software engineering. The code is riddled with bad design examples, the use 1's and 0's to represent "white" or "black", the unrolled function for parsing moves - and many other sources of bugs and unnecessary headaches.
The user interface was similar to Chessbase and ChessOk at the time.
The program should compile with WxWidgets 2.9 or so, (see the project file for details) - I will update the version number later.
You can load a UCI chess engine, obtain best moves, load and save pgn's, open large pgn's in virtual memory, save databases, search opening books and databases, and play against the computer. You can even run tournaments between chess engines from slow time controls to bullet mode (I.e. 1 min per game).