Project Info
Inspiration
It is difficult for people to find what medication they need and they often have to go through a process of trail and error in order to figure that out. A close friend of mine went through that same process, he had to test 4 different blood pressure medications before he could figure out which one worked for him.
What it does
PrescribeRx is a cross-platform mobile application that prescribes medication to you based on continually updating health data coming from various wearable. More specifically, it breaks down your health metrics into several categories and based on each category it recommends medication if it notices that that category could need some or a lot of support.
How we built it
Our application is a full-stack monorepo, which the Bun runtime power the whole stack. In the backend we used elysia.js as our backend framework, postgreSQL as the database, typescript as the primary language, langchain as our llm framework, Terra API as our health data provider, Monster API for fine tuning our model, and together.ai for their open source models. In the frontend we use React Native Expo as our framework for making the cross-platform mobile application, we used typescript as our primary programming langauge.
Challenges we ran into
Authenticating the user with Terra API and effectively recommending them medication were the most challenging part of building the application. Authentication was difficult because authentication is bespoke the the application, so we have to figure out how we would authenticate on our side. We also had to figure out the process of recommending users medications that were useful.
Accomplishments we're proud of
In the end, we were able to both authenticate with Terra API and come up with a strategy that would effectively recommend medication to users. Our recommendation algorithm was based on a mixture of the latest large language model techniques, including prompt engineering and fine-tuning; this made it possible for us to give the best recommendations to users.
What we learned
While building the application we had to learn, and relearn, many things. Some of them were: using Bun js effectively for full-stack, we learn how to integrate with many AI services like Monster API and Together.ai, and finally we learned how to integrate the Terra API platform with our app.
What's next
We plan on adding more health categories to assist a broader range of customers. We also want to build more on the idea of having the user chat with their own data. We also want to improve our medication suggestions by trying new models, improving our fine-tuning, and crafting better prompts.
PrescribeRx
PrescribeRx is a cross-platform mobile application that predicts what medications patients should take based on various health indicators that could be found on wearable devices, such as an apple watch.
For technical detail, check out the devpost
Screenshots
Analysis
View
Metric
- 19
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- JavaScriptIn code
- LangChainIn code
- PythonIn code
- ReactIn code
- SQLIn code
- Tailwind CSSIn code
- TypeScriptIn code
- AWSClaimed
7 of 8 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
91 KB
Source files
46
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
prince-ao/treehacks2024
84 files · 3.7 MB · @ 7cfbd31
Structure
Interface
26 files · 31%Screens, components and styles rendered to the user.
Application logic
22 files · 26%Domain rules, services and shared utilities.
Data & schema
3 files · 4%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript82%
- Markdown9%
- Python6%
- SQL3%
- JavaScript0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
frontend/package.json
npm · 30- @expo/vector-icons
- @react-native-async-storage/async-storage
- @react-native-material/core
- @react-navigation/native
- expo
- expo-font
- expo-image
- expo-linking
- expo-router
- expo-splash-screen
- expo-status-bar
- expo-system-ui
- expo-web-browser
- nativewind
- react
- react-dom
- react-native
- react-native-keyboard-aware-scroll-view
- +12 more
backend/package.json
npm · 11- @elysiajs/cors
- @elysiajs/jwt
- @elysiajs/swagger
- @langchain/community
- @langchain/core
- @prisma/client
- elysia
- langchain
- terra-api
- +2 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.