Desktop Database Client

Library Manager

Start

August 2017

End

February 2018

The application’s data model was built in C# while the UI leveraged XAML’s responsive binding create a fast and responsive user experience. Extensive product documentation was written in LaTeX and the application as a whole uilized a variety of open source APIs to facilitate development (i.e. PDF rendering & UI toolkits).
C#.NETWPF/XAMLMVVMGitLaTeX

initial screen

Initial screen upon starting the application.

🏛 Underlying Architecture

As part of the design guidelines, Library Manager is a Client database programmed designed to be connected to a centralized database server. Instead of locally serving the database, the demo provided under Releases uses a sample dataset in order to showcase functionality.

Internally, Library Manager takes advantage of Microsoft’s flagship .NET UI framework, Windows Presentation Foundation, or WPF. WPF works through two components: the design is programmed in XAML, or Extensible Application Markup Language (different from XML), while the behavior is programmed in C#. This separation of design and behavior is key to the framework’s architecture, as it allows for the adoption of the Model-View-ViewModel design paradigm as outlined below.

Architecture

WPF MVVM Architecture overview

📚 Documentation

Extensible documentation was developed via LaTeX in order to explain each feature of the program, and is available as a PDF document.

📐 Design Process

A brief slideshow discussing the development of the project has been created, and is available below.

🔗 Open Source External Packages

  • ControlsEx v3.0.2.4 by Jan Karger, Bastian Schmidt, and James Willock: provides useful UI controls and styling with which to build the application frontend
  • iTextSharp v5.5.13 by Bruno Lowagie, Paulo Soares, et al: Open-source framework for PDF creation in C#; used for generating reports
  • MahApps.Metro v1.5.0 by Jan Karger, Dennis Daume, Brenden Forster, Paul Jenkins, Jake Ginnivan, and Alex Mitchel: provides UI styling for a majority of the elements in the application front-end in order to conform to Microsoft’s Metro design paradigm within WPF applications