Inspiration

“Are you sure you’re ok to place this IV independently?” As medical school students, we have experienced firsthand how crucial it is to build trust within a healthcare team. Many of the skills we learn as medical students, CNAs, nurses, and medical assistants are acquired on the job or during rotations, are specialty-specific, and lack formal verification. How can attending physicians be confident that their team members are proficient in particular clinical skills, especially when medical students frequently change rotations or when nurses switch jobs? How can medical trainers and staff showcase their achievements in a physical space through a virtual platform? Introducing Skill Drop, a microcredentialing app for clinical skills.

What Skill Drop does

In version 1 of our project, we successfully created a basic login UI that securely stores logins in a Firestore database. We also managed to store several skill variables, each with an associated count, which can be incremented using a button only when a connection is established through the Nearby Interaction Session and Multipeer Connectivity Framework using the Ultra Wideband Chip found in Apple devices.

How we built Skill Drop

Skill Drop leverages a variety of tools to create a comprehensive solution. Development is conducted using Xcode and managed through the Firebase Console for backend services. The user interface is built using SwiftUI, a framework designed for creating seamless, adaptive interfaces across all Apple platforms, complemented by Combine for handling asynchronous events and data streams.

Backend services are powered by Firebase, utilizing Firebase Authentication for secure user management and Firestore as the NoSQL cloud database for real-time data synchronization. Peer-to-peer connectivity is enabled through the MultipeerConnectivity framework, allowing devices to discover and communicate directly. Additionally, NearbyInteraction facilitates proximity-based interactions between devices, enhancing the app’s functionality for medical training scenarios.

Core functionalities and basic system operations are provided by the Foundation framework, with Swift serving as the primary programming language. The app employs various APIs: Firebase Authentication for managing user authentication processes, Firestore for performing database operations, MultipeerConnectivity for device discovery and communication, and NearbyInteraction for enabling proximity-based interactions and obtaining discovery tokens. Structured data exchange between the app and Firestore is handled using JSON.

Together, these technologies create a robust app that facilitates medical training through secure, real-time interactions and data management, ensuring a seamless and adaptive user experience.

Challenges we faced building Skill Drop

We had never developed an iOS app before and didn’t even have a Mac to get started. We borrowed a Mac from a friend and began coding a few days into the hackathon. Making the nearby interaction technology function was very challenging since it is relatively new and difficult to troubleshoot. We spent a significant amount of time debugging these technical features. In particular, we required special permissions from the user in the iPhone privacy and security settings, which was a challenging feature to build as first-time Swift developers. Learning how to use an advanced framework like Nearby Interaction and Multipeer connectivity was also challenging as new developers.

Accomplishments we’re proud of

We are proud of successfully building a functional app that integrates complex technologies like NearbyInteraction and MultipeerConnectivity to enhance medical training. Despite our initial lack of experience and resources, we created a working prototype that can increment skill counts based on real-time, proximity-based interactions.

What we learned

Both of us are brand new iOS developers who had no experience with Xcode prior to this project and had never even used GitHub before. We learned how to navigate these tools and collaborate effectively, overcoming the steep learning curve associated with developing a sophisticated app.

What’s next for Skill Drop?

In version 2 of our project, we aim to enhance the user experience by ensuring a more stable connection, making the transfer more natural like a true "bump," including more skills, and having Firestore database variables unique to each user. We plan to:

  • Create separate Firebase tables that are private to the medical trainee view and specific to each user account
  • Improve the reliability and stability of the nearby connection technology.
  • Expand the app's functionality to include nurses, CNAs, and medical assistants.
  • Ensure that every time a credential is granted we track who granted the credential and a timestamp, that way other doctors can verify who trained and approved the trainee’s credential.
  • Create user profiles so a summary of clinical experience can be made and users can quickly assess level of experience, strengths, and weaknesses.
  • Include badges and rewards to encourage continuous learning and improvement.

Built With

Share this project:

Updates