Start:Review is an application for Windows machines built with MS SQL Server, C#, and WPF. It was designed to help lawyers and paralegals review and produce documents for use in e-discovery cases. Users begin by importing documents that are relevant or potentially relevant to their case into Review. Once Review has processed the files, users can search for keywords and phrases, filter results, and mark items according to their relevance and importance. When users are done sorting the items into relevant and non-relevant sets, Review can export them as Bates-stamped PDFs to pass on to the appropriate parties. Review even has tools for users to redact sensitive information from the output PDFs.
To list everything Review can do and everything I contributed to it would take quite some time, so below are just a few highlights.
One of Review’s most powerful features is its ability to find potentially relevant items based on the markings users have given other items. For example, users can open an email in Review’s Viewer, highlight a phrase in the email that makes it relevant to their case, and mark the text as Relevant. Review will then search through the project database for similar phrases and associated emails and documents and mark them as Relevant. This saves the user time and decreases the risk that they will miss an important item. Users can select text to redact in a similar manner, and Review automatically finds potentially sensitive text in other items. I was given the specifications for these algorithms and implemented them both.
Review also offers users the ability to search for keywords and phrases. Users can write a search query manually or generate one using the Advanced Search popup. Multiple search terms can be combined using boolean operators, search patterns, and special operators. This Search Filter feature filters out Concepts, documents, and emails from Start:Review’s interface that don’t match the query. I specified the syntax for this feature, implemented the query parser, and collaborated with Start:Review’s database administrator to translate the search queries for use in SQL Server.
Users can export selected documents and emails in two ways: converted to PDFs or copied to an output directory. A teammate and I programmed the original version of these processes and GUIs. I eventually redesigned the originals for maintainability and flexibility to meet client requests for more output options.
The export processes are both multi-threaded. Their design was inspired by Start:Review’s import process, which another team member had designed and implemented. I separated the multi-threaded aspects from this import process, making them more generic so that they could be used to build any multi-threaded process. This threading framework was flexible enough to be used in Start:Review’s import, export, marking, and redacting processes and could have replaced the entirety of Start:Collect’s design.
Many parts of Start:Review’s GUI perform similar functions. It’s multiple Viewers, for example, have specialized features for certain file types, but they all at least display the associated item and its Concepts. As another example, most tables and lists seen throughout Review’s interface make database calls on background threads, are paged so that no more than a certain number of results are displayed at any time, and have associated page controls. I designed the majority of Start:Review’s interface and supporting code, starting with a WPF prototype created by a UI designer and collaborating with various programmers and designers over the years to reach its final version. The current design strives to maximize C# and XAML readability and reusability, manage memory, ensure interface responsiveness during long database calls and operations, and remain extendable for future needs.