PJWiki (Patrick’s Java Wiki … creative, I know) is a desktop wiki with a server-less storage system that saves in plain text using the file system. I am working on it as an open source version of an application, PWiki (sans J), that I developed for my current employer.
PWiki was developed in C# using WinForms as a quick and dirty Wiki solution to use in an environment that frowned upon open source software and provided terrible wiki’s via corporate. The data contained within the wiki would be FOUO and so would need to be protected in much the same way as files on our intranet. Additionally, the data would need to be stored in a human readable format and the application built for our Windows-only development environment. These limitations led me to develop the application using a text-file-based back end in which all data was stored in a shared file system location. It’s been in heavy use for nearly 2 years now and the choice to use plain text for storage in a common file system location has come in handy on multiple occasions including the ability to write simple scripts to parse the contents for information used by other tools. Needless to say, I was proud of the result a bit disappointed with its limitations. I had developed the bulk of it on my own time but resorted to developing fixes on company time. To avoid legal issues, I decided to just turn over ownership to the company and start developing a more open version of it using a more portable language. Not that C# isn’t portable (Mono anyone?) but I saw it as an opportunity to improve my Java development skills and am particularly fond of how portable the Java VM is.
Enter PJWiki. It’s being developed using Swing (NetBeans aided, lame I know) and at this point I have the majority of the wiki parsing engine developed. Next steps are to smooth out the UI and work on getting an efficient search and printing implementation in place, two of the most used features in PWiki. Development is currently on hold as I finish up my last two months of school work, but I hope to get right back at it shortly and start working on making it usable.