One-screen, one-decision flow that avoids an overloaded dashboard
CCC-Decision-Making-Tool — Vite Business Template
By arielwinn
A local-first web app for a Clinical Competency Committee (CCC) that makes entrustment-level decisions for the 12 EPAs in general pediatrics, records the rationale, and exports to Excel, PDF or clipboard format.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Displays the meaning of each Chen scale level during the decision and hides the teaching content after a knowledge check
Supports flagging EPAs for deeper review and shows pre-review concerns during the flow
Captures cross-cutting themes (strengths and growth areas) and pins them on every EPA screen
Saves a snapshot to browser storage after a cycle is completed and shows prior cycles as context when the same trainee is reviewed later
Supports export to Excel, PDF or clipboard format, with all data processed locally
Template Details
The tool guides a Clinical Competency Committee (CCC) through entrustment-level decisions for Entrustable Professional Activities (EPAs) in general pediatrics. It uses a one-screen, one-decision flow that explains each Chen scale entrustment level (1, 2A/2B, 3A/3B, 4, 5) to reviewers during the decision and hides the teaching content once the reviewer passes a knowledge check. The tool supports flagging EPAs for deeper review, recording cross-cutting themes (strengths and growth areas), and requiring a shared rationale when multiple EPAs are confirmed at level 5. After each cycle, a snapshot can be saved to browser storage so that later reviews of the same trainee can use it as background context.
All data stays in the user's browser; the current assessment state is lost when the tab is closed, while badges and completed cycles are stored in localStorage. Export functions generate Excel, PDF or clipboard content entirely on the client. The README does not document production use or performance of the tool.
The tool is built with Vite and React (JavaScript), uses SheetJS for Excel export and jsPDF for PDF export, styles with plain CSS custom properties, and loads fonts from Google Fonts. The project is structured as a single-file React app that is easy to read and modify. Users can adapt it to other specialties by editing the EPA list and descriptions in src/data.js.
Is it right for your project?
Use Cases
- Making entrustment-level decisions for pediatric residents' EPAs during Clinical Competency Committee meetings
- Recording and exporting decision rationales for later review or teaching feedback
- Completing decisions quickly after reviewers pass the knowledge check, with less distraction from teaching content
- Using a laptop for local assessment in a meeting room without network access
Suitable For
- Clinical Competency Committee (CCC) members
- Pediatric residency program directors
- Educators who need a localized assessment tool without server dependencies
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Requires Node.js 18+ and npm; after cloning the repository, run npm install and npm run dev to start the development server
- 2
Run npm run build to generate a static site in the dist/ directory, which can be deployed to any static hosting service
- 3
Can be hosted in one step by dragging the dist/ folder into Netlify Drop, with no account required
- 4
Adapting to other specialties requires editing the EPAS array in src/data.js while keeping the id, name and short structure
- 5
All data is stored in browser localStorage, with no backend, analytics or tracking
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis listing covers the free version under the MIT license in the public repository; the free scope is that version's code and does not mean external services or third-party assets are free.
Must comply with when using
- The code of this version may be used, modified, used commercially and distributed free of charge.
- When distributing copies or substantial portions of the code, the original author's copyright notice and the full MIT license notice must be retained.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons and other third-party assets must be checked against their own licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments or AI may incur separate charges.
- The Fraunces and Inter fonts come from Google Fonts and are external resources; the README does not document their licensing, so font authorization and offline availability must be verified independently.
- The README claims zero network dependency after initial load, but the fonts come from Google Fonts, so the first load requires network access to fetch external resources.
- The current assessment state exists only in React state and is lost when the tab is closed; unsaved decisions are not retained.
- Badges and completed cycles are stored only in each browser's localStorage and do not sync across devices or browsers.
- When shared via a public URL, each user starts from a blank session and historical data is not shared.
- Data connectors, NLP narrative synthesis and similar items are roadmap plans; the current version does not include these features.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
- Fraunces (serif) + Inter (sans) from Google Fonts
Original README
- **All data is local.** Nothing is uploaded to any server. Works on a laptop in a meeting room with zero network dependency after initial load.
Original README
- The current assessment lives in React state (lost on tab close).
Original README
- Earned badges and finalized cycles are stored in `localStorage` — isolated to each browser.
Original README
If the tool is shared via a public URL, every user starts from a clean session. Privacy is a design property, not a promise.
Original README
https://github.com/arielwinn/CCC-Decision-Making-Tool/blob/main/LICENSEhttps://github.com/arielwinn/CCC-Decision-Making-Tool/blob/main/README.mdSee [ROADMAP.md](./ROADMAP.md) for where this is going — data connectors, NLP-assisted narrative synthesis, and a research arc on cross-EPA influence mapping. The prototype was architected so each of those layers drops into an existing hook point, not a ground-up rebuild.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-17. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 85 / 100
- Technologies
- Vite · React
- Website type
- Corporate Website
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-04-28
- Screenshot last checked
- 2026-10-17
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Vite as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: codex-user-requested-batch-review-20261018 · 2026-10-18
Inspect the recorded source material
SHA-256: a890df066b49974e13a840903f4dfac11b9cf70fa2ebe7e4cc6a3b5c11b668fb
2026-10-17T19:17:50.747Z
Source file / repository# CCC Entrustment Decision Tool A local-first web app that walks a Clinical Competency Committee through an entrustment-level decision for General Pediatrics EPAs. Teaches committee members what each entrustment level means as they work through decisions, documents the reasoning for every call, and exports the result as an Excel dataset that can be reused in future cycles. > Built to make the committee's reasoning **visible, teachable, and transferable** — the committee's best thinking is most useful when it reaches the learner. ## What it does - **Centers the committee on the learner and future patients** before opening any data. - Walks the committee through a **single decision per screen** — no crowded dashboards. - Teaches what each Chen-scale entrustment level (1, 2A/2B, 3A/3B, 4, 5) actually means as the committee decides, then hides the teaching once the reviewer has proved competence via a knowledge check. - **Actively affirms Level 5** on the "Yes" path (you click; nothing is pre-filled) with a required shared rationale when affirming multiple EPAs. - **Flags EPAs for deep-dive review** so concerns from the pre-review step surface as callouts during the walkthrough. - **Captures cross-cutting themes** (strengths that make care safe & effective, growth areas that currently prevent it) and pins them to every EPA screen. - **Celebrates Level 5** as the start of autonomy and targeted learning — not a finish line. - **Finalizes each cycle** and saves a snapshot to browser storage; next time the same trainee is reviewed, prior cycles appear as context. - Exports to **Excel, PDF, or clipboard** in a clean, structured, reusable format. - **Badge system with localStorage persistence** — reviewers earn Practice-Ready and Streamline badges by passing short quizzes; teaching content collapses once badges are earned so experienced reviewers move faster. - **All data is local.** Nothing is uploaded to any server. Works on a laptop in a meeting room with zero network dependency after initial load. ## Tech stack - [Vite](https://vitejs.dev/) + React (JavaScript, no TypeScript) - [SheetJS (`xlsx`)](https://docs.sheetjs.com/) for Excel export - [jsPDF](https://github.com/parallax/jsPDF) for PDF export - Plain CSS with custom properties — no CSS framework - Fraunces (serif) + Inter (sans) from Google Fonts ## Getting started Prerequisites: Node.js 18+ and npm. ```bash git clone https://github.com/<your-username>/<your-repo>.git cd <your-repo> npm install npm run dev ``` Then open the URL Vite prints (usually `http://localhost:5173/`). ## Building for deployment ```bash npm run build ``` The built static site is written to `dist/`. It is fully static — drop it on any static host. ### One-click hosting with Netlify Drop 1. Run `npm run build` 2. Go to [app.netlify.com/drop](https://app.netlify.com/drop) 3. Drag the `dist/` folder onto the drop zone 4. Share the public URL No accounts required. ### Alternatives - **Vercel** — import the repo, no config needed - **GitHub Pages** — add a Pages workflow and point it at `dist/` - **Any S3 / Cloudflare Pages / static host** — upload `dist/` ## Data & privacy **Nothing leaves the user's browser.** - The current assessment lives in React state (lost on tab close). - Earned badges and finalized cycles are stored in `localStorage` — isolated to each browser. - Exports (Excel, PDF, clipboard) are generated entirely client-side. - There is no backend, no analytics, no tracking. If the tool is shared via a public URL, every user starts from a clean session. Privacy is a design property, not a promise. ## Customizing for your program All General Pediatrics EPA names and descriptors live in `src/data.js`. To adapt this for another specialty: 1. Edit `EPAS` in `src/data.js` — replace the 12 EPA entries with your specialty's EPAs (keep the `id`, `name`, `short` shape). 2. Keep `LEVELS` unchanged — the Chen-scale descriptors are specialty-agnostic. 3. Replace the text in `framingQuestion` if your program phrases entrustment differently. 4. Review the teaching content in `src/App.jsx` — the EBM parallel, the framing reminders, and the celebratory copy on Level 5 — to match your program's voice. ## Project structure ``` src/ ├── data.js # EPAs, entrustment levels, framing question text ├── App.jsx # Single-file React app (all components inline — easy to read and modify) ├── App.css # All styling ├── index.css # Font imports + resets └── main.jsx # Entry point ``` One-file structure is intentional. The whole assessment flow is readable top-to-bottom without jumping between files. ## Contributing / forking This repo is intended as a **template**. Forks are encouraged. If you build an adapted version for another specialty or another entrustment scale, open an issue with a link — these tools are more useful when they're shared and remixed. ## Philosophy This tool is opinionated. It believes: - **The bar is safe and effective care**, not expertise or perfection. - **Help-seeking is a core safety skill**, not a sign of weakness. - **The committee's reasoning is the product** — the level number is just the header. - **Committee decisions are most useful when reviewed with the resident and their coach.** - **The decision is a trajectory, not a point estimate.** Prior-cycle data should be weighed in, and new data may change the call. - **CCC decisions parallel evidence-based medicine**: no single test gives the truth. You make an informed judgment based on available data with a transparent, documented thought process. ## What's next See [ROADMAP.md](./ROADMAP.md) for where this is going — data connectors, NLP-assisted narrative synthesis, and a research arc on cross-EPA influence mapping. The prototype was architected so each of those layers drops into an existing hook point, not a ground-up rebuild. ## License MIT. See [LICENSE](./LICENSE).
Explore similar templates
Compare previews and descriptions within the same stack and category.

business-website-template
A React, Tailwind CSS, and Vite corporate website template with a single-page structure covering header, hero, features, billing, product showcase, testimonials, clients, call-to-action, and footer.
Vite · Corporate Website

kiaalap
Kiaalap is a free, open-source admin template from Colorlib for education, online courses, and school management.
Vite · Admin dashboard

saasboard
SaaSBoard is an open-source SaaS admin dashboard template from MekuHQ, built with React, Vite, and Tailwind CSS. It provides pages for Tools, Reports, Billing, Settings, and Support, along with shared components such as Sidebar, Layout, and Topbar.
Vite · Admin dashboard

crowdup
CrowdUp is a self-hostable crowdfunding platform template built on React Router, Supabase and Stripe Connect.
Vite · Corporate Website

vite-react-ts-shadcn-ui
A Vite-based React + TypeScript frontend starter template with Shadcn/ui and TailwindCSS, plus ESLint, Prettier, Husky, Commitlint, Lint-staged and Playwright built in.
Vite · Corporate Website

vite-vanilla-ts
A Vite-based Vanilla TypeScript starter template for native HTML and TypeScript websites, SPAs, or landing pages without a UI framework. It presets TypeScript, TailwindCSS, SASS, PostCSS, and Playwright, and integrates ESLint, Prettier, Husky, and Commitlint.
Vite · Corporate Website
