Inspiration

The inspiration for this project came from witnessing close family members suffer from cancer. This experience led us to envision an app that connects young cancer patients with peers and mentors, fostering a sense of community in a situation that often brings pain, isolation, and depression. Mentors play a critical role in guiding mentees through the emotional and physical challenges of their illness, offering support and advice based on their own experiences. Additionally, peers are matched with users to help establish meaningful friendships, creating a support network that helps patients feel less alone during their journey.

What it Does

Our app connects young cancer patients who may feel isolated or lonely with peers and mentors. We use advanced AI algorithms to match people in a more tailored and effective way than traditional filters often used by websites. Instead of simply presenting the user with one closest match, our app now shows the three closest matches, allowing the user to choose which mentor or peer they feel most comfortable pairing with. This approach gives users more control over their connections, ensuring that relationships are more meaningful and personalized to their unique preferences and needs. Additionally, the app streamlines the process of meeting new people, making it easier for patients to form supportive relationships. We've also integrated a chatbot to assist users with cancer-related questions. This chatbot is specifically trained to provide HIPAA-compliant advice, ensuring that sensitive medical information is handled appropriately and minimizing the app’s liability.

How We Built It

The app’s frontend is built using React, which gathers data from young cancer patients and ensures a user-friendly experience. On the backend, we utilized Python, JavaScript, and MongoDB to manage data efficiently. We created a robust server capable of handling thousands of patient profiles, each with varying cancer types such as breast cancer, testicular cancer, and skin cancer.

A key feature of our app is the use of BioBERT, a natural language processing model specifically trained on biomedical texts, in conjunction with MongoDB. The integration of BioBERT allows patients to upload their medical records, which are then automatically processed and converted into a more compact format. This conversion reduces the number of tokens required for ChatGPT to classify and match users. BioBERT's preprocessing capabilities analyze medical terminology and patient history, enhancing the accuracy of user matching by filtering and structuring medical data before it reaches ChatGPT.

This preprocessing step ensures that ChatGPT, trained on prompts to recognize medical and emotional support needs, can more effectively connect users with the three most suitable mentors or peers. By using BioBERT to process data, we can provide personalized matches based on the specific cancer type, treatment stage, and other key factors drawn from the patient’s medical records, giving the user options to select the best match based on their preferences.

Additionally, a Node.js server powers the backend, handling API requests for our chatbot and managing the interaction between BioBERT and ChatGPT. This setup ensures that our system is efficient and scalable as the number of users grows.

Challenges We Ran Into

Throughout the development process, we encountered several challenges. One significant issue was integrating ChatGPT between the frontend and backend, which stemmed from library version mismatches. This prevented the system from running smoothly at first. Thankfully, through trial and error, we were able to establish a version that would run with our application without issues.

Another challenge arose with MongoDB when connecting to the database. However, with collaboration and troubleshooting, we quickly resolved this issue, ensuring that the database connection was stable and scalable for long-term use. Additionally, many of the debugging issues stemmed from our team’s limited experience with certain programming languages and tools. For most of us, this was our first time using Git and branches to manage code, which led to some conflicts when pushing and pulling code. Despite these hurdles, we remained determined to improve our coding knowledge, especially in JavaScript.

Near the end of the project, we encountered a more specific issue while trying to link the backend with the frontend. Although the application was functionally complete and the backend was successfully connected, we faced problems importing JSON data into the frontend. This issue stemmed from using CommonJS (CJS) modules, which caused incompatibility with how we were attempting to import data. As a result, the JSON data from the backend couldn’t be properly consumed by the frontend.

Despite this, we quickly adapted by creating a makeshift demo on the frontend to simulate how the final feature would function once this integration issue is resolved. The backend is fully functional, and resolving this CJS issue is something we will continue to work on beyond the competition's scope. This quick thinking allowed us to demonstrate our progress while keeping our focus on fixing the integration in the future.

Accomplishments We’re Proud Of

We are incredibly proud to have developed an application that successfully connects young cancer patients with potential matches. The ability to provide patients with three close matches and let them choose who to connect with is a major step forward in making these interactions more personalized and impactful. This achievement reflects the dedication and hard work we put into this project, despite our challenges and learning curves. We are also grateful to the mentors and organizers who made this competition possible, providing us with invaluable guidance and support. Additionally, we’re proud of our team’s ability to collaborate effectively, overcoming obstacles and creating a meaningful tool that has the potential to make a real impact.

What We Learned

Throughout this project, we learned how to work with APIs in various ways and explored JavaScript in a much deeper level. We also learned how to connect our app to a database, use APIs to classify and match people based on their profiles, and integrate APIs between the frontend and backend. For many of us, this was the first time working on a project of this scale, and it was a valuable learning experience in understanding how different components of a system interact. We also gained insight into the importance of teamwork, version control, and debugging, which will undoubtedly help us in future projects.

What's Next for Cancer Connects

Moving forward, our goal is to partner with healthcare systems to ensure that our app complies with HIPAA regulations and other legal standards. By aligning with these regulations, we can make sure that Cancer Connects is ready for deployment in hospitals and clinics, where it can be used to make a meaningful impact on patients' lives. We also plan to continue refining the app's features, expanding its reach, and collaborating with medical professionals to ensure that our platform provides the best possible support for young cancer patients.

Built With

Share this project:

Updates