FauxDIS
FauxDIS can be used as part of experiential learning exercises in which students apply the scientific method to solve mock crimes. Using FauxDIS, students have the opportunity to search DNA profiles generated from mock evidence against known profiles contained in the database. A discussion of strategies for using the database results in the calculation of genotype probabilities can be found in this publication (I was not involved at this early stage of the project):
FauxDIS: A Searchable Forensic DNA Database to Support Experiential Learning. Jacqueline Baranski, Karen Davalos-Romero, Melanie Blum, Nichole Burke, Ashley Foster, Ashley Hall. Journal of Forensic Science Education; 2 (1), 2020.
My role
I have been the sole developer on that project that I architected and created from scratch from the initial requirements and rounds of iterations with the project lead Ashley Hall.
Some features
The search system
This is the main interface for the users in which they can either put the full profile or a partial profile to look for matching samples.
Data import
To facilitate the import of data, users just have to push a new CSV file containing additional data (or replacing the existing). There is no need at this time for a more advanced import system.
Integrated user management
The system is invite only. For the MVP, we didn’t need anything fancy like we have with Napralert
Technologies
FauxDIS is developed using:
- Kotlin and TypeScript
- Spring Boot
- Vue , Vuetify
- PostgreSQL
- Docker
- Ansible
- and a lot of others.
I have since my own license of IntelliJ, but at the time I started with the Jetbrains academic license so thanks to them.
It is deployed to a tiny Linode machine (yes the JVM can run with really little memory now) using Ansible and the service managed using docker-compose for both the Spring service and the database. For this kind of services, a small downtime at each update (6-10 seconds) is perfectly acceptable.