ViteReactCorporate Website

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.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-17View source

What stands out

A quick read of the recorded project description.

01

One-screen, one-decision flow that avoids an overloaded dashboard

02

Displays the meaning of each Chen scale level during the decision and hides the teaching content after a knowledge check

03

Supports flagging EPAs for deeper review and shows pre-review concerns during the flow

04

Captures cross-cutting themes (strengths and growth areas) and pins them on every EPA screen

05

Saves a snapshot to browser storage after a cycle is completed and shows prior cycles as context when the same trainee is reviewed later

06

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.

ViteReactCorporate website

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. 1

    Requires Node.js 18+ and npm; after cloning the repository, run npm install and npm run dev to start the development server

  2. 2

    Run npm run build to generate a static site in the dist/ directory, which can be deployed to any static hosting service

  3. 3

    Can be hosted in one step by dragging the dist/ folder into Netlify Drop, with no account required

  4. 4

    Adapting to other specialties requires editing the EPAS array in src/data.js while keeping the id, name and short structure

  5. 5

    All data is stored in browser localStorage, with no backend, analytics or tracking

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This 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

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.

Original README
https://github.com/arielwinn/CCC-Decision-Making-Tool/blob/main/LICENSEhttps://github.com/arielwinn/CCC-Decision-Making-Tool/blob/main/README.md

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).
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.