Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.0%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: feraco
  • License: mit
  • Language: Swift
  • Default Branch: main
  • Size: 7.21 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 2 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Citation

README.md

Spezi Template Application

Beta Deployment codecov DOI

This repository contains the Spezi Template Application. It demonstrates using the Spezi framework template and builds on top of the Stanford Biodesign Digital Health Template Application.

Application Structure

The Spezi Template Application uses a modularized structure using the Spezi modules enabled by the Swift Package Manager.

The application uses HL7 FHIR and the Spezi FHIR module to provide a common standard to encode data gathered by the application as defined in the Spezi Standard found in the application. You can learn more about the Spezi standards-based software architecture in the Spezi documentation.

Build and Run the Application

You can build and run the application using Xcode by opening up the TemplateApplication.xcodeproj.

Get Started without Firebase

You can start using the application without any additional installations if you use the --disableFirebase feature flag, enabled by default when opening the Xcode project. The login and account setup is skipped in this configuration.

Firebase Setup

The application also provides a Firebase Firestore-based data upload and Firebase Authentication login & sign-up. It is required to have the Firebase Emulator Suite to be up and running to use these features to build and test the application locally. Please follow the installation instructions.

You do not have to make any modifications to the Firebase configuration, login into the firebase CLI using your Google account, or create a project in Firebase to run, build, and test the application!

Startup the Firebase Emulator Suite using $ firebase emulators:start

After the emulators have started up, you can run the application in your simulator to build, test, and run the application and see the results show up in Firebase.

Other Configuration Options

The application also includes the following feature flags that can be configured in the scheme editor in Xcode and selecting the TemplateApplication scheme, the Run configuration, and to switch to the Arguments tab to add, enable, disable, or remove the following arguments passed on launch: - --skipOnboarding: Skips the onboarding flow to enable easier development of features in the application and to allow UI tests to skip the onboarding flow. - --showOnboarding: Always show the onboarding when the application is launched. Makes it easy to modify and test the onboarding flow without the need to manually remove the application or reset the simulator. - --disableFirebase: Disables the Firebase interactions, including the login/sign-up step and the Firebase Firestore upload. - --useFirebaseEmulator: Defines if the application should connect to the local Firebase emulator. Always set to true when using the iOS simulator.

Template Onboarding Flow

The onboarding contains different steps. It uses the Spezi Onboarding module to display different onboarding-related views like the information about the application, a consent screen, and a screen to display a HealthKit consent view.

A screen displaying welcome information. A screen showing an overview of the modules used in the Spezi Template application. A screen displaying the consent view. A screen showing a view displaying the HealthKit access screen.

Template Schedule

The scheduler part of the application provides the functionality to schedule a recurring task and bind it to an action, e.g., displaying a questionnaire. It uses the Spezi Scheduler and Spezi Questionnaire modules to schedule the tasks as defined in the TemplateApplicationScheduler.

A screen displaying the Scheduler UI. A screen showing a questionnaire using ResearchKit. A screen displaying the Scheduler UI when the questionnaire is finished.

Template Contacts

The Contacts part of the application provides the functionality to display contact information in your application. It uses the Spezi Contacts module to use the contact-related views provided by Spezi.

A screen displaying the Contact UI.

Template Mock Data Storage Provider

The mock upload view allows a developer to get an overview of the data synchronization between the application and a cloud storage provider. It is shown in the application when the --disableFirebase configuration flag is active. It uses the Spezi Mock Web Service module to enable this functionality.

A screen displaying the list of Mock Data Storage Provider uploads. A screen displaying the detailed overview of one Mock Data Storage Provider upload.

Continuous Delivery Workflows

The Spezi Template application includes continuous integration (CI) and continuous delivery (CD) setup. - Automatically build and test the application on every pull request before deploying it. If your organization doesn't have a self-hosted macOS runner modeled after the setup in the StanfordBDHG ContinuousIntegration setup, you will need to remove the runsonlabels arguments in the build-and-test.yml file to ensure that the build runs on the default macOS runners provided by GitHub. - An automated setup to deploy the application to TestFlight every time there is a new commit on the repository's main branch. - Ensure a coherent code style by checking the conformance to the SwiftLint rules defined in .swiftlint.yml on every pull request and commit. - Ensure conformance to the REUSE Specification to property license the application and all related code.

Please refer to the Stanford Biodesign Digital Health Template Application and the ContinuousDelivery Example by Paul Schmiedmayer for more background about the CI and CD setup for the Spezi Template Application.

Contributing

Contributions to this project are welcome. Please make sure to read the contribution guidelines and the contributor covenant code of conduct first.

This project is based on ContinuousDelivery Example by Paul Schmiedmayer and the StanfordSpezi Template Application provided using the MIT license.

License

This project is licensed under the MIT License. See Licenses for more information.

Spezi Footer Spezi Footer

Owner

  • Name: Fred Feraco
  • Login: feraco
  • Kind: user

As a passionate Computer Science and Research Science teacher with extensive experience in teaching and fostering the next generation of tech leaders

Citation (CITATION.cff)

#
# This source file is part of the Stanford Spezi Template Application project
#
# SPDX-FileCopyrightText: 2023 Stanford University
#
# SPDX-License-Identifier: MIT
#

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Schmiedmayer"
  given-names: "Paul"
  orcid: "https://orcid.org/0000-0002-8607-9148"
- family-names: "Ravi"
  given-names: "Vishnu"
  orcid: "https://orcid.org/0000-0003-0359-1275"
- family-names: "Aalami"
  given-names: "Oliver"
  orcid: "https://orcid.org/0000-0002-7799-2429"
title: "Spezi Template Application"
doi: doi.org/10.5281/zenodo.7600783
url: "https://github.com/StanfordSpezi/SpeziTemplateApplication"

GitHub Events

Total
Last Year

Dependencies

.github/workflows/beta-deployment.yml actions
.github/workflows/build-and-test.yml actions
Gemfile rubygems
  • fastlane >= 0
Gemfile.lock rubygems
  • CFPropertyList 3.0.6
  • addressable 2.8.5
  • artifactory 3.0.15
  • atomos 0.1.3
  • aws-eventstream 1.2.0
  • aws-partitions 1.809.0
  • aws-sdk-core 3.181.0
  • aws-sdk-kms 1.71.0
  • aws-sdk-s3 1.133.0
  • aws-sigv4 1.6.0
  • babosa 1.0.4
  • bundler 2.4.10
  • claide 1.1.0
  • colored 1.2
  • colored2 3.1.2
  • commander 4.6.0
  • declarative 0.0.20
  • digest-crc 0.6.5
  • domain_name 0.5.20190701
  • dotenv 2.8.1
  • emoji_regex 3.2.3
  • excon 0.100.0
  • faraday 1.10.3
  • faraday-cookie_jar 0.0.7
  • faraday-em_http 1.0.0
  • faraday-em_synchrony 1.0.0
  • faraday-excon 1.1.0
  • faraday-httpclient 1.0.1
  • faraday-multipart 1.0.4
  • faraday-net_http 1.0.1
  • faraday-net_http_persistent 1.2.0
  • faraday-patron 1.0.0
  • faraday-rack 1.0.0
  • faraday-retry 1.0.3
  • faraday_middleware 1.2.0
  • fastimage 2.2.7
  • fastlane 2.214.0
  • gh_inspector 1.1.3
  • google-apis-androidpublisher_v3 0.48.0
  • google-apis-core 0.11.1
  • google-apis-iamcredentials_v1 0.17.0
  • google-apis-playcustomapp_v1 0.13.0
  • google-apis-storage_v1 0.19.0
  • google-cloud-core 1.6.0
  • google-cloud-env 1.6.0
  • google-cloud-errors 1.3.1
  • google-cloud-storage 1.44.0
  • googleauth 1.7.0
  • highline 2.0.3
  • http-cookie 1.0.5
  • httpclient 2.8.3
  • jmespath 1.6.2
  • json 2.6.3
  • jwt 2.7.1
  • memoist 0.16.2
  • mini_magick 4.12.0
  • mini_mime 1.1.5
  • multi_json 1.15.0
  • multipart-post 2.3.0
  • nanaimo 0.3.0
  • naturally 2.2.1
  • optparse 0.1.1
  • os 1.1.4
  • plist 3.7.0
  • public_suffix 5.0.3
  • rake 13.0.6
  • representable 3.2.0
  • retriable 3.1.2
  • rexml 3.2.6
  • rouge 2.0.7
  • ruby2_keywords 0.0.5
  • rubyzip 2.3.2
  • security 0.1.3
  • signet 0.17.0
  • simctl 1.6.10
  • terminal-notifier 2.0.0
  • terminal-table 1.8.0
  • trailblazer-option 0.1.2
  • tty-cursor 0.7.1
  • tty-screen 0.8.1
  • tty-spinner 0.9.3
  • uber 0.1.0
  • unf 0.1.4
  • unf_ext 0.0.8.2
  • unicode-display_width 1.8.0
  • webrick 1.8.1
  • word_wrap 1.0.0
  • xcodeproj 1.22.0
  • xcpretty 0.3.0
  • xcpretty-travis-formatter 1.0.1
TemplateApplication.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved swiftpm
  • github.com/StanfordBDHG/HealthKitOnFHIR 0.2.4
  • github.com/StanfordBDHG/ResearchKit 2.2.12
  • github.com/StanfordBDHG/ResearchKitOnFHIR 0.2.3
  • github.com/StanfordBDHG/XCTHealthKit 0.3.5
  • github.com/StanfordBDHG/XCTRuntimeAssertions 0.2.5
  • github.com/StanfordBDHG/XCTestExtensions 0.4.7
  • github.com/StanfordSpezi/Spezi 0.7.2
  • github.com/StanfordSpezi/SpeziAccount 0.5.2
  • github.com/StanfordSpezi/SpeziContact 0.4.0
  • github.com/StanfordSpezi/SpeziFHIR 0.4.0
  • github.com/StanfordSpezi/SpeziFirebase 0.5.1
  • github.com/StanfordSpezi/SpeziHealthKit 0.3.1
  • github.com/StanfordSpezi/SpeziMockWebService 0.2.0
  • github.com/StanfordSpezi/SpeziOnboarding 0.5.1
  • github.com/StanfordSpezi/SpeziQuestionnaire 0.4.1
  • github.com/StanfordSpezi/SpeziScheduler 0.5.0
  • github.com/StanfordSpezi/SpeziStorage 0.4.2
  • github.com/StanfordSpezi/SpeziViews 0.5.0
  • github.com/apple/FHIRModels 0.5.0
  • github.com/apple/swift-collections 1.0.4
  • github.com/apple/swift-protobuf 1.23.0
  • github.com/firebase/firebase-ios-sdk 10.15.0
  • github.com/firebase/leveldb 1.22.2
  • github.com/firebase/nanopb 2.30909.0
  • github.com/google/GoogleAppMeasurement 10.13.0
  • github.com/google/GoogleDataTransport 9.2.5
  • github.com/google/GoogleUtilities 7.11.5
  • github.com/google/abseil-cpp-binary 1.2022062300.0
  • github.com/google/grpc-binary 1.50.2
  • github.com/google/gtm-session-fetcher 3.1.1
  • github.com/google/interop-ios-for-google-sdks 100.0.0
  • github.com/google/promises 2.3.1