BRAHMS 8 Development Strategies BRAHMS, developed over the last 20 years, embodies the collective knowledge and requirements of a wide range of botanical projects. Using this as a template and joining forces with key partner institutions Curation and management services Research our objective is to create a ‘next generation’ modular, flexible, powerful and sustainable data management system for the botanical sciences. BRAHMS 7- a working template An opportunity to review how BRAHMS operates at all levels. DATABASE EXTRACT FILES RDE FILES Physical Database(s) Direct data entry Ensure that successful aspects of BRAHMS are carried forward Rapid Data Entry (RDE) Project specific data fields The ability to add and execute command scripts Allow editing in spreadsheet mode as well as via forms Simple and compound query options including user defined Flexible formatting, reporting and mapping tools Fast response time for improved and new functionality Can be deployed by users lacking IT support Reasonable cost (or free) – licensing policy to be estabished Diverse sources of funding – sustainable BRAHMS data modules Taxa Geodata The development of ‘core modules’ could be drafted in 4-6 months. People Herbaria Botanical Records Living collections Seed manager Images Plot-samples Literature DNA Visual materials Modular development will faciltate entire functional areas to be redeveloped separately, for example the seed and literature components. Current tools and functions are targets for separate development. Some examples: Configuration/preferences setup Mapping Data grid features (zoom, sum, sort, etc.) Image display and management Numerous module specific ‘tools’ Conservation assessments General editing functions Import/export functions Visual reports equivalent to current Lookups from internal and external files HTML (text) reporting WebConnect for website development Diversity analysis Example: spreadsheet functionality Ribbon commands are organized in logical groups, which are collected together under tabs. Example: mapping Language translatable Additional coordinate conversions (e.g. UTM) Improved map stype setting (colour/symbol/size) Automation of ArcGIS Addition of links to other GIS Updating BRAHMS mapping functions is a stand-alone task. Existing functionality can be copied and improved. Example: conservation assessment Example: seed manager Anatomy of a BRAHMS 8 Module Data Layer Implementation Interface Physical Database(s) User Interface(UI) MVVM View XAML (Declarative) Model Service Layer (Business Layer) Implementation Interface Dependency Injection (DI) Dependency Injection (DI) MVVM = Model View – View Model. View Model is testable code with no dependence on the UI elements (buttons, lists etc.). XAML is an XML derivative language used to define the UI controls. Data is exchanged between a View Model and the UI elements using a declarative data binding scheme. The physical database can be changed (e.g. Postgres, MYSQL) with the respective DLI. Flexible, modular development Each module (and module component) can be developed and maintained independently of every other module/component. The user interface, although initially developed using the Windows Presentation Foundation (WPF) framework as a ‘Desktop application’, could gradually be replaced or enhanced by any other implementation of a user interface e.g. in Html5/JavaScript. The service layer could additionally implement Web Services making selected facilities available to mobile devices and third party applications through http calls. In this way, we can develop an extremely flexible and easily maintainable application, easy to edit and highly adaptable for any conceivable future task. Getting started with v8 …