-
-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Documentation page of the Spezi Ecosystem #118
Open
milanagm
wants to merge
8
commits into
StanfordSpezi:main
Choose a base branch
from
milanagm:docu_82
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
96879f6
added overview of modules, need to finalize the content
milanagm c72a156
added content for existing modules / wip
milanagm 634b64d
finalized content
milanagm a9192d3
delted unnecessary comments
milanagm 8f3a46d
resolved comments fpr Spezi.md
milanagm 02eb6c5
implementing Feedback and making the whole documentation more visual
milanagm 18acc55
I added visuals to all modules where existing visuals could be easily…
milanagm 3260591
adjusted some visuals
milanagm File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,214 @@ | ||
# The Spezi Ecosystem | ||
|
||
<!-- | ||
This source file is part of the Stanford Spezi open-source project | ||
SPDX-FileCopyrightText: 2024 Stanford University and the project authors (see CONTRIBUTORS.md) | ||
SPDX-License-Identifier: MIT | ||
--> | ||
|
||
Discover the core modules of the Spezi ecosystem and understand how you can use them to build your healthcare and research applications. | ||
|
||
## Overview of the Core Modules | ||
|
||
The Spezi ecosystem provides a collection of interoperable modules designed to accelerate healthcare and research application development. Each module is built to work independently or in combination with others, allowing you to choose the components that best fit your needs. | ||
|
||
|
||
> Important: To get started with Spezi, we recommend exploring the **[Spezi Template Application](https://github.com/StanfordSpezi/SpeziTemplateApplication)** first, which demonstrates many of the following modules in action. | ||
|
||
|
||
### Spezi Onboarding | ||
- The **[SpeziOnboarding](https://github.com/StanfordSpezi/SpeziOnboarding)** provides features for a comprehensive onboarding experience with welcome screens, sequential onboarding flows, and consent management. | ||
|
||
This module is included and demonstrated in the **[Spezi Template Application](https://github.com/StanfordSpezi/SpeziTemplateApplication)** | ||
|
||
@Row{ | ||
@Column { | ||
![Screenshot displaying the onboarding view.](https://raw.githubusercontent.com/StanfordSpezi/SpeziOnboarding/main/Sources/SpeziOnboarding/SpeziOnboarding.docc/Resources/OnboardingView.png) | ||
} | ||
@Column { | ||
![Screenshot displaying the sequential onboarding view.](https://raw.githubusercontent.com/StanfordSpezi/SpeziOnboarding/main/Sources/SpeziOnboarding/SpeziOnboarding.docc/Resources/SequentialOnboardingView.png) | ||
} | ||
@Column { | ||
![Screenshot displaying the consent view.](https://raw.githubusercontent.com/StanfordSpezi/SpeziOnboarding/main/Sources/SpeziOnboarding/SpeziOnboarding.docc/Resources/ConsentView.png) | ||
} | ||
} | ||
|
||
> Tip: Check out the [SpeziOnboarding Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziOnboarding/documentation/spezionboarding) to learn more about the implementation details. | ||
|
||
|
||
### User Management | ||
- The **[SpeziAccount](https://github.com/StanfordSpezi/SpeziAccount)** module provides comprehensive user authentication and profile management capabilities, enabling secure login flows, account creation, and profile customization within your application. | ||
|
||
This module is included and demonstrated in the **[Spezi Template Application](https://github.com/StanfordSpezi/SpeziTemplateApplication)**. | ||
|
||
@Row{ | ||
@Column { | ||
![Screenshot displaying the account setup view with an email and password prompt and a Sign In with Apple button.](https://raw.githubusercontent.com/StanfordSpezi/SpeziAccount/main/Sources/SpeziAccount/SpeziAccount.docc/Resources/AccountSetup.png) | ||
} | ||
@Column { | ||
![Screenshot displaying the Signup Form for Account setup.](https://raw.githubusercontent.com/StanfordSpezi/SpeziAccount/main/Sources/SpeziAccount/SpeziAccount.docc/Resources/SignupForm.png) | ||
} | ||
@Column { | ||
![Screenshot displaying the Account Overview.](https://raw.githubusercontent.com/StanfordSpezi/SpeziAccount/main/Sources/SpeziAccount/SpeziAccount.docc/Resources/AccountOverview.png) | ||
} | ||
} | ||
|
||
> Tip: Check out the [SpeziAccount Documentation](https://swiftpackageindex.com/stanfordspezi/speziaccount/documentation/speziaccount) for implementation details. | ||
|
||
|
||
### Connected Devices | ||
- The **[SpeziDevices](https://github.com/StanfordSpezi/SpeziDevices)** module streamlines the integration of Bluetooth-connected devices, handling device discovery, connection management, and data exchange through a unified interface that works seamlessly with the SpeziBluetooth infrastructure. | ||
|
||
> Note: SpeziDevices is a higher-level module that depends on the core Bluetooth connectivity offered by SpeziBluetooth module (see below). Together, they enable seamless interaction with Bluetooth devices. | ||
|
||
@Row{ | ||
@Column { | ||
![Screenshot showing paired devices in a grid layout. A sheet is presented in the foreground showing a nearby devices able to pair.](https://raw.githubusercontent.com/StanfordSpezi/SpeziDevices/main/Sources/SpeziDevicesUI/SpeziDevicesUI.docc/Resources/PairedDevices.png) | ||
} | ||
@Column { | ||
![Displaying the device details of a paired device with information like Model number and battery percentage.](https://raw.githubusercontent.com/StanfordSpezi/SpeziDevices/main/Sources/SpeziDevicesUI/SpeziDevicesUI.docc/Resources/DeviceDetails.png) | ||
} | ||
@Column { | ||
![Showing a newly recorded blood pressure measurement.](https://raw.githubusercontent.com/StanfordSpezi/SpeziDevices/main/Sources/SpeziDevicesUI/SpeziDevicesUI.docc/Resources/MeasurementRecorded_BloodPressure.png) | ||
} | ||
} | ||
|
||
> Tip: Check out the [SpeziDevices Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziDevices/documentation/spezidevices) for implementation details. | ||
|
||
|
||
### Spezi Bluetooth | ||
- The **[SpeziBluetooth](https://github.com/StanfordSpezi/SpeziBluetooth)** module provides the foundational infrastructure for Bluetooth communication, offering robust device discovery, configuration management, and reliable data transmission capabilities for healthcare and research applications. | ||
|
||
> Tip: Check out the [SpeziBluetooth Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziBluetooth/documentation/spezibluetooth) for implementation details. | ||
|
||
|
||
### Cloud Systems | ||
- The **[SpeziFirebase](https://github.com/StanfordSpezi/SpeziFirebase)** module enables seamless Google Firebase integration, providing backend authentication and data storage capabilities with features for Firebase authentication, database operations, and cross-device data synchronization. | ||
|
||
This module is included and demonstrated in the **[Spezi Template Application](https://github.com/StanfordSpezi/SpeziTemplateApplication)** | ||
|
||
> Tip: Check out the [SpeziFirebase Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziFirebase/documentation/spezifirebaseaccount) for implementation details. | ||
|
||
|
||
### Electronic Health Integration | ||
- The **[SpeziFHIR](https://github.com/StanfordSpezi/SpeziFHIR)** module provides comprehensive support for managing and processing FHIR (Fast Healthcare Interoperability Resources), enabling storage and management of FHIR resources, automatic healthcare data categorization, and seamless interoperability with healthcare systems. | ||
|
||
> Tip: Check out the [SpeziFHIR Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziFHIR/documentation/spezifhir) for implementation details. | ||
|
||
|
||
### LLMs and AI Integration | ||
This module includes three submodules: | ||
|
||
- The **[SpeziChat](https://github.com/StanfordSpezi/SpeziChat)** module implements sophisticated chat-based user interfaces with comprehensive message history management and seamless AI integration for natural language processing. | ||
|
||
@Row{ | ||
@Column { | ||
![Screenshot displaying the regular chat view.](https://raw.githubusercontent.com/StanfordSpezi/SpeziChat/main/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView.png) | ||
} | ||
@Column { | ||
![Screenshot displaying the text input chat view.](https://raw.githubusercontent.com/StanfordSpezi/SpeziChat/main/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput.png) | ||
} | ||
@Column { | ||
![Screenshot displaying the voice input chat view.](https://raw.githubusercontent.com/StanfordSpezi/SpeziChat/main/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+VoiceInput.png) | ||
} | ||
} | ||
|
||
- The **[SpeziSpeech](https://github.com/StanfordSpezi/SpeziSpeech)** module delivers comprehensive voice interaction capabilities, offering both speech synthesis and recognition features along with robust session management for voice input and output. | ||
|
||
- The **[SpeziLLM](https://github.com/StanfordSpezi/SpeziLLM)** module integrates large language models to provide AI-driven functionalities, enabling sophisticated text generation and contextual understanding for complex queries. | ||
|
||
@Row{ | ||
@Column { | ||
![Screenshot displaying the Chat View utilizing the OpenAI API from SpeziLLMOpenAI.](https://raw.githubusercontent.com/StanfordSpezi/SpeziLLM/main/Sources/SpeziLLMOpenAI/SpeziLLMOpenAI.docc/Resources/ChatView.png) | ||
} | ||
@Column { | ||
![Screenshot displaying the Local LLM Download View from SpeziLLMLocalDownload.](https://raw.githubusercontent.com/StanfordSpezi/SpeziLLM/main/Sources/SpeziLLMLocalDownload/SpeziLLMLocalDownload.docc/Resources/LLMLocalDownload.png) | ||
} | ||
@Column { | ||
![Screenshot displaying the Chat View utilizing a locally executed LLM via SpeziLLMLocal.](https://raw.githubusercontent.com/StanfordSpezi/SpeziLLM/main/Sources/SpeziLLMLocal/SpeziLLMLocal.docc/Resources/ChatView.png) | ||
} | ||
} | ||
|
||
> Tip: | ||
Check out [SpeziChat Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziChat/documentation/spezichat), [SpeziSpeech Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziSpeech/1.1.1/documentation/spezispeechrecognizer) for implementation details. | ||
and [SpeziLLM Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziLLM/documentation/spezillm) for implementation details. | ||
|
||
|
||
### Local Data Storage | ||
- The **[SpeziStorage](https://github.com/StanfordSpezi/SpeziStorage)** module provides robust local storage capabilities, offering efficient data persistence, retrieval management, and seamless integration with other Spezi modules. | ||
|
||
This module is included and demonstrated in the **[Spezi Template Application](https://github.com/StanfordSpezi/SpeziTemplateApplication)**. | ||
|
||
> Tip: Check out the [SpeziStorage Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziStorage/documentation/spezilocalstorage) for implementation details. | ||
|
||
|
||
### Mobile Health Data | ||
- The **[SpeziHealthKit](https://github.com/StanfordSpezi/SpeziHealthKit)** module simplifies access to HealthKit data, providing streamlined retrieval of health samples and supporting various query types including single, anchored, and background queries for comprehensive health data monitoring. | ||
|
||
This module is included and demonstrated in the **[Spezi Template Application](https://github.com/StanfordSpezi/SpeziTemplateApplication)**. | ||
|
||
> Tip: Check out the [SpeziHealthKit Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziHealthKit/documentation/spezihealthkit) for implementation details. | ||
|
||
|
||
### Spezi Questionnaire | ||
- The **[SpeziQuestionnaire](https://github.com/StanfordSpezi/SpeziQuestionnaire)** module implements comprehensive questionnaire features, providing customizable forms for data capture and seamless integration with health or research applications. | ||
|
||
This module is included and demonstrated in the **[Spezi Template Application](https://github.com/StanfordSpezi/SpeziTemplateApplication)**. | ||
|
||
@Row { | ||
@Column { | ||
![Screenshot showing questionaire view](https://swiftpackageindex.com/stanfordspezi/speziaccessguard/0.3.2/images/spi-builder-workspace.SpeziAccessGuard/AccessGuarded.png) | ||
} | ||
} | ||
|
||
> Tip: Check out the [SpeziQuestionnaire Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziQuestionnaire/documentation/speziquestionnaire) for implementation details. | ||
|
||
### Tasks and Reminders | ||
- The **[SpeziScheduler](https://github.com/StanfordSpezi/SpeziScheduler)** module provides comprehensive task scheduling and reminder functionality, enabling task creation, notification management, and seamless integration with other Spezi modules. | ||
|
||
This module is included and demonstrated in the **[Spezi Template Application](https://github.com/StanfordSpezi/SpeziTemplateApplication)**. | ||
|
||
> Tip: Check out the [SpeziScheduler Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziScheduler/documentation/spezischeduler) for implementation details. | ||
|
||
|
||
### Spezi AccessGuard | ||
- The **[SpeziAccessGuard](https://github.com/StanfordSpezi/SpeziAccessGuard)** module provides robust security features for SwiftUI views, including numeric access code protection, biometric authentication support, and customizable timeout settings for automatic locking. | ||
|
||
@Row { | ||
@Column { | ||
![Screenshot showing access code entry](https://swiftpackageindex.com/stanfordspezi/speziaccessguard/0.3.2/images/spi-builder-workspace.SpeziAccessGuard/AccessGuarded.png) | ||
} | ||
@Column { | ||
![Screenshot showing biometric auth](https://swiftpackageindex.com/stanfordspezi/speziaccessguard/0.3.2/images/spi-builder-workspace.SpeziAccessGuard/AccessGuarded-Biometrics.png) | ||
} | ||
} | ||
|
||
> Tip: Check out the [SpeziAccessGuard Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziAccessGuard/documentation/speziaccessguard) for implementation details. | ||
|
||
|
||
### Spezi Contact | ||
- The **[SpeziContact](https://github.com/StanfordSpezi/SpeziContact)** module facilitates the presentation and management of contact information, offering customizable display options for contact details including names, phone numbers, and email addresses. | ||
|
||
This module is included and demonstrated in the **[Spezi Template Application](https://github.com/StanfordSpezi/SpeziTemplateApplication)**. | ||
|
||
@Row{ | ||
@Column { | ||
![Screenshot showing contact display](https://github.com/StanfordSpezi/SpeziContact/raw/main/Sources/SpeziContact/SpeziContact.docc/Resources/Overview~dark.png#gh-dark-mode-only) | ||
} | ||
} | ||
|
||
> Tip: Check out the [SpeziContact Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziContact/documentation/spezicontact) for implementation details. | ||
|
||
|
||
### Spezi Medication | ||
- The **[SpeziMedication](https://github.com/StanfordSpezi/SpeziMedication)** module provides comprehensive medication management capabilities, enabling the display and editing of medication details, dosages, and schedules, along with complete medication list management functionality. | ||
|
||
> Tip: Check out the [SpeziMedication Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziMedication/documentation/spezimedication) for implementation details. | ||
|
||
|
||
### Spezi Notifications | ||
- The **[SpeziNotifications](https://github.com/StanfordSpezi/SpeziNotifications)** module simplifies the implementation of user notifications, providing features for scheduling local notifications, customizing notification content, and managing notification permissions and settings. | ||
|
||
> Tip: Check out the [SpeziNotifications Documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziNotifications/documentation/spezinotifications) for implementation details. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We shoulda also aim to incorporate some general documentation on how to get started with Spezi & your learnings of embedding yourself in the ecosystem as part of this PR to help people who are new to the ecosystem to help them answer some clarifying questions.