Project Info
Inspiration
The regulatory pathway for clinical trials is no joke. For example, wordy filings such as FDA Form 1571, FDA Form 1572 and FDA Form 3674 are required for an Investigational New Drug application, on top of dozens of others. With so many forms, protocols and standardizations piling up, clinicians spend far too much time on paperwork and far too little time on what really matters: advancing healthcare. We live in a fast world. Nobody has time for that. We believe nobody should be stuck in data-cleanup purgatory.
What it does
Enter Trialytics: a purpose-built solution to take the mountain of raw trial data and transform it into a fully protocol-compliant workflow. Our system: Accepts just three core data documents from a clinician (clinical trial protocol, raw data, SAP) Condenses their workflow by tens to hundreds of documents and countless hours Ensures compliance with regulatory requirements. It's the difference between approval and starting over completely.
How we built it
We didn’t just wrap a generic GPT model and call it a day. Our team is comprised of scientists with deep regulatory and clinical trial domain expertise. We built everything from the ground up. Tech stack includes: Frontend NextJS Tailwind ShadCN ChartJS Backend Fast API VLLM tRPC Supabase S3 Modal We implemented: Automated ingestion of freely-formatted clinician data Mapping to standard formats (e.g., SDTM, ADAM, ICH-E3) Rule-based compliance checks (for forms like 1571/1572/3674 and CSRs) A user interface built for fast turnaround and minimal training.
Challenges we ran into
Maintaining regulatory precision at scale was our biggest hurdle. Compliance isn’t just conceptually important. It’s mandatory when human lives are at stake. Adapting freeform clinician data into structured, regulatory-ready formats required solving edge cases, format variability, and mapping ambiguity, all while making the tool friendly and usable was our largest hurdle.
Accomplishments we're proud of
End-to-end working prototype from protocol upload → SDTM → ADaM → AI analysis Real streaming responses that feel as responsive as ChatGPT CDISC-compliant pipeline using industry-standard pharmaverse R packages Self-hosted LLM on AWS GPU infrastructure (no API dependencies) Type-safe architecture across the entire stack Integrated complex technologies (Next.js + tRPC + Python + R + vLLM) in 36 hours Production-ready infrastructure with CloudFormation automation
What we learned
We learned that rules matter, not just for safety or approval, but for enabling innovation by removing friction. Regulatory compliance is hard to master, but when done right, it becomes a feature, not a blocker. We also discovered that treating data formats, protocol mapping, and submission compliance as engineering problems (not just administrative burdens) unlocked major operational improvements.
What's next
We’re planning to broaden Trialytics’ capabilities: Expand data-cleaning modules (handling more formats, more document types) Build the LLM-to-SDTM conversion as a packaged integration (rather than ad-hoc LLM calls) for predictability and auditability Add advanced compliance analytics (real-time monitoring of submission integrity) Extend into new regulatory domains (e.g., device trials, global submissions)
Calhacks 12.0 Regeneron Track Runner Up
Inspiration
The regulatory pathway for clinical trials is no joke. For example, wordy filings such as FDA Form 1571, FDA Form 1572 and FDA Form 3674 are required for an Investigational New Drug application, on top of dozens of others. With so many forms, protocols and standardizations piling up, clinicians spend far too much time on paperwork and far too little time on what really matters: advancing healthcare. We live in a fast world. Nobody has time for that. We believe nobody should be stuck in data-cleanup purgatory.
What it does
Enter Trialytics: a purpose-built solution to take the mountain of raw trial data and transform it into a fully protocol-compliant workflow.
Our system:
- Accepts just three core data documents from a clinician (clinical trial protocol, raw data, SAP)
- Condenses their workflow by tens to hundreds of documents and countless hours
- Ensures compliance with regulatory requirements. It's the difference between approval and starting over completely.
- Watch a demo here: https://www.youtube.com/watch?v=mKz1m1JFRIQ&feature=youtu.be
How we built it
We didn’t just wrap a generic GPT model and call it a day. Our team is comprised of scientists with deep regulatory and clinical trial domain expertise. We built everything from the ground up.
Tech stack includes:
Frontend
- NextJS
- Tailwind
- ShadCN
- ChartJS
Backend
- Fast API
- VLLM
- tRPC
- Supabase
- S3
- Modal
We implemented:
- Automated ingestion of freely-formatted clinician data
- Mapping to standard formats (e.g., SDTM, ADAM, ICH-E3)
- Rule-based compliance checks (for forms like 1571/1572/3674 and CSRs)
- A user interface built for fast turnaround and minimal training.
Challenges we ran into
Maintaining regulatory precision at scale was our biggest hurdle. Compliance isn’t just conceptually important. It’s mandatory when human lives are at stake. Adapting freeform clinician data into structured, regulatory-ready formats required solving edge cases, format variability, and mapping ambiguity, all while making the tool friendly and usable was our largest hurdle.
Accomplishments that we're proud of
- End-to-end working prototype from protocol upload → SDTM → ADaM → AI analysis
- Real streaming responses that feel as responsive as ChatGPT
- CDISC-compliant pipeline using industry-standard pharmaverse R packages
- Self-hosted LLM on AWS GPU infrastructure (no API dependencies)
- Type-safe architecture across the entire stack
- Integrated complex technologies (Next.js + tRPC + Python + R + vLLM) in 36 hours
- Production-ready infrastructure with CloudFormation automation
What we learned
We learned that rules matter, not just for safety or approval, but for enabling innovation by removing friction. Regulatory compliance is hard to master, but when done right, it becomes a feature, not a blocker.
We also discovered that treating data formats, protocol mapping, and submission compliance as engineering problems (not just administrative burdens) unlocked major operational improvements.
What's next for Trialytics
We’re planning to broaden Trialytics’ capabilities:
- Expand data-cleaning modules (handling more formats, more document types)
- Build the LLM-to-SDTM conversion as a packaged integration (rather than ad-hoc LLM calls) for predictability and auditability
- Add advanced compliance analytics (real-time monitoring of submission integrity)
- Extend into new regulatory domains (e.g., device trials, global submissions)
Analysis
View
Metric
- 31
- 1
- 1
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
- CSSIn code
- FastAPIIn code
- JavaScriptIn code
- Next.jsIn code
- PythonIn code
- ReactIn code
- SQLIn code
- SupabaseIn code
- Tailwind CSSIn code
- TypeScriptIn code
- Vercel AI SDKIn code
- AWSClaimed
- DockerClaimed
- PostgreSQLClaimed
11 of 14 appear in the indexed code. 3 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- CursorConfig
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
797 KB
Source files
133
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
ShauryaJ1/trialytics
172 files · 2.4 MB · @ 797727c
Structure
Interface
71 files · 41%Screens, components and styles rendered to the user.
API & routing
11 files · 6%Request entry points: routes, handlers and controllers.
Application logic
38 files · 22%Domain rules, services and shared utilities.
+2 moreData & schema
7 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
- YAML40%
- TypeScript39%
- Python11%
- Shell4%
- Markdown4%
- JavaScript1%
- Other (2)1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
my-app/package.json
npm · 50- @ai-sdk/openai-compatible
- @ai-sdk/react
- @radix-ui/react-checkbox
- @radix-ui/react-collapsible
- @radix-ui/react-dialog
- @radix-ui/react-dropdown-menu
- @radix-ui/react-label
- @radix-ui/react-progress
- @radix-ui/react-slot
- @radix-ui/react-tabs
- @radix-ui/react-toast
- @radix-ui/react-use-controllable-state
- @supabase/ssr
- @supabase/supabase-js
- @tanstack/react-query
- @tanstack/react-query-devtools
- @trpc/client
- @trpc/next
- +32 more
backend-services/modal_server/requirements.txt
pypi · 45- aiohappyeyeballs
- aiohttp
- aiosignal
- annotated-doc
- annotated-types
- anyio
- attrs
- cbor2
- certifi
- click
- colorama
- fastapi
- frozenlist
- grpclib
- h11
- h2
- hpack
- hyperframe
- +27 more
medical-ai/package.json
npm · 42- @ai-sdk/openai-compatible
- @ai-sdk/react
- @aws-sdk/client-s3
- @aws-sdk/s3-request-presigner
- @radix-ui/react-collapsible
- @radix-ui/react-dropdown-menu
- @radix-ui/react-scroll-area
- @radix-ui/react-separator
- @radix-ui/react-slot
- @radix-ui/react-use-controllable-state
- @tanstack/react-query
- @tanstack/react-query-devtools
- @trpc/client
- @trpc/next
- @trpc/react-query
- @trpc/server
- ai
- ai-elements
- +24 more
package.json
npm · 3- @types/react-syntax-highlighter
- react-syntax-highlighter
- refractor
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.
Feature verification
Automated markdown report generation with embedded chartsVerified
End-to-end working prototype from protocol upload -> SDTM -> ADaM -> AI analysis (report generation part)
Claimed on readmemedium confidencemedical-ai/app/api/execute-code-stream/route.ts:311— generateMarkdownReport tool assembles a structured report with chart references
CloudFormation-automated production infrastructureVerified
Production-ready infrastructure with CloudFormation automation
Claimed on readmehigh confidenceg6e-instance-vpc-stack.yaml:1— Full CloudFormation template provisioning VPC, GPU EC2 instance, security groups, Elastic IPbackend-services/modal_server/deploy/cloudformation.yaml— Second CloudFormation template dedicated to the modal_server backend deployment
Data visualization with Chart.js (bar/pie/line/scatter)Verified
ChartJS used for frontend visualizations
Claimed on readmehigh confidencemedical-ai/app/code-stream/chart-components.tsx:5— Chart.js and react-chartjs-2 imported and registered for Bar/Pie/Line/Scatter componentsmedical-ai/app/api/execute-code-stream/route.ts:122— displayBarChart/displayPieChart/displayLineChart/displayScatterChart tools produce chart.js-compatible data
FastAPI backend frameworkVerified
Backend includes Fast API
Claimed on readmehigh confidencebackend-services/modal_server/app.py:5— FastAPI app defined with CORS middleware and multiple endpoints
Real streaming chat responsesVerified
Real streaming responses that feel as responsive as ChatGPT
Claimed on readmehigh confidencemedical-ai/app/api/execute-code-stream/route.ts:755— streamText(...) with toUIMessageStreamResponse() streams model output plus tool calls to the client
S3 file storage for uploaded documentsVerified
Tech stack includes S3 for backend storage
Claimed on readmehigh confidencemedical-ai/app/api/s3-upload/route.ts:34— PutObjectCommand uploads files to S3 and returns a presigned GET URL
Sandboxed Python code execution via ModalVerified
Tech stack includes Modal as backend for code execution
Claimed on readmehigh confidencebackend-services/modal_server/app.py:157— FastAPI /execute endpoint calls modal_executor.run_code to execute arbitrary Python in a Modal sandboxmedical-ai/app/api/execute-code-stream/route.ts:34— executeCode tool calls the Modal server's /execute endpoint from the Next.js AI chat
Self-hosted vLLM LLM backend (Qwen3-8B, no external API)Verified
Self-hosted LLM on AWS GPU infrastructure (no API dependencies), using VLLM backend
Claimed on readmehigh confidencemy-app/lib/ai-provider.ts:41— createOpenAICompatible provider pointed at a real VLLM endpoint IP (98.88.218.185:8000) serving Qwen/Qwen3-8Bg6e-instance-vpc-stack.yaml:40— CloudFormation template provisions a g6e GPU instance with AWS Deep Learning AMI, opening a port for vLLM
Three-document ingestion (protocol, raw data, SAP)Verified
Accepts just three core data documents from a clinician (clinical trial protocol, raw data, SAP)
Claimed on readmehigh confidencemy-app/app/chat/page.tsx:39— documentTypes object defines protocol/rawData/sap upload dropzones with distinct accepted file typesmy-app/lib/routers/chat.ts:11— tRPC chat/analyzeDocuments procedures accept protocol, rawData, and sap document fields
tRPC + Supabase type-safe backend architectureVerified
Type-safe architecture across the entire stack; Backend includes tRPC, Supabase
Claimed on readmehigh confidencemy-app/lib/routers/chat.ts:1— tRPC router with zod-validated inputsmy-app/package.json— @trpc/*, @supabase/ssr, @supabase/supabase-js, zod dependencies presentmy-app/supabase/migrations/20241026_create_users_table.sql— Supabase migration exists for a users table
36-hour end-to-end integration of Next.js + tRPC + Python + R + vLLMCode-supported
Integrated complex technologies (Next.js + tRPC + Python + R + vLLM) in 36 hours
Claimed on readmelow confidencemy-app/package.json— Next.js, tRPC present and wired; Python (Modal) present; vLLM present; but no R code found anywhere in the repo, so the 'R' portion of this integration claim is unsupported
Automated ingestion of freely-formatted clinician data (PDF/CSV/XPT parsing)Code-supported
Automated ingestion of freely-formatted clinician data
Claimed on readmemedium confidencemedical-ai/app/api/execute-code-stream/route.ts:622— System prompt instructs the LLM to use pandas/pdfplumber/pd.read_sas via executeCode to parse CSV, PDF, and XPT files ad hoc, but there is no dedicated deterministic ingestion/parsing module, only LLM-directed code execution
Rule-based compliance checks for FDA Forms 1571/1572/3674 and CSRsCode-supported
Rule-based compliance checks (for forms like 1571/1572/3674 and CSRs)
Claimed on readmemedium confidencemy-app/lib/routers/chat.ts:107— An 'analyzeDocuments' compliance analysisType exists, but it is a single generic LLM prompt ('Analyze the documents for regulatory compliance issues'), not deterministic rule-based logic tied to specific forms 1571/1572/3674 or CSR structurebackend-services/modal_server/csr format_extracted.txt— Only a reference text extract of the ICH-E3 CSR template exists; no code applies it as compliance rules
Condenses workflow by tens to hundreds of documents and countless hoursClaimed only
Condenses their workflow by tens to hundreds of documents and countless hours
Claimed on readmemedium confidenceMapping raw clinical data to standard formats (SDTM, ADaM, ICH-E3)Claimed only
Mapping to standard formats (e.g., SDTM, ADAM, ICH-E3); CDISC-compliant pipeline using industry-standard pharmaverse R packages
Claimed on readmehigh confidenceR / pharmaverse / admiral / rpy2 CDISC pipelineClaimed only
Integrated complex technologies (Next.js + tRPC + Python + R + vLLM); CDISC-compliant pipeline using pharmaverse R packages
Claimed on readmehigh confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.