This project entails the development of a scalable & open-source web service infrastructure to support Spezi-based digital health applications.

Background

While most Spezi applications rely on the Stanford mHealth plattform using Google Could and Google Firebase, some applications and studies can not rely on Google Cloud resources and need to maintain or extend their infrastructure with a custom web service.

The Spezi web service infrastructure should provide an extensible and easy-to-deploy subsystem that can be used to host Spezi-based digital health applications.

As most Spezi applications currently use HL7 FHIR as a main encoding for transferring data between subsystems, the web service should default to HL7 FHIR as the main standard use to accept and provide data.

Project Requirements

FHIR APIs The web service should use FHIR models as data transfer objects. We should explore if we want to implement the complete or a partial FHIR RESTful API surface.
Authentication Infrastructure The web service should build on existing authentication standards such as OAuth to enable external authentication providers or a project-specific implementation.
Scalable Infrastructure The web service should ideally be as stateless as possible to enable a scalable infrastructure to replicate the web service and access scalable database setups. Larger data elements should be stored in a cloud storage bucket for long-term storage.
Deployment The web service must be easily deployable, e.g., prebuilt Docker images and provide example Kubernetes deployments, including load balancers, HTTPS proxies, and a scalable default database and cloud storage deployment.

Important Skills

This project is a multi-person project and will be developed by a team of students and members of the Stanford Mussallem Center for Biodesign digital health group. We are looking for talented and motivated students who would like to expand their open-source development portfolio and want to be embedded in a wide variety of research studies.

  1. Experience with building web services, authentication, and authorization mechanisms for web APIs.
  2. Familiarity with RESTful APIs and OpenAPI specifications.
  3. We are exploring developing the web service in the Swift programming language to enable the biggest possible code reuse across our mobile application framework and the web service. In that case, familiarity with Swift is essential; familiarity with server-side development with Swift would be beneficial.

First Steps

<aside> 📧 Our Choose Your Research Project page provides a great overview how to engage with your supervisors. The following first steps will help you to get familiar with the project and demonstrate your existing skills.

</aside>

After completing these initial steps, please reach out to Paul Schmiedmayer to discuss how you can become more actively involved in the Spezi open-source project.