The next-generation frontend web application for the Physiome Model Repository, built with Vue 3, TypeScript, and Tailwind CSS v4.
A modern, responsive web application for browsing and exploring computational models in the Physiome Model Repository. Built with Vue 3 and powered by a Rust-based backend, this project represents the next generation of the platform.
Features:
- 🎨 Light/Dark theme with system preference support
- 📱 Responsive design with Tailwind CSS v4
- ⚡ Built with Vue 3 Composition API and TypeScript
- 🧩 Atomic design component structure
- Framework: Vue 3 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS v4
- Routing: Vue Router
- Testing: Vitest (unit) + Cypress (e2e)
- Code Quality: Biome (formatting and linting) + TypeScript
src/
├── assets/ # Global styles and CSS files
├── components/ # Vue components (atomic design)
│ ├── atoms/ # Basic building blocks
│ ├── molecules/ # Simple component groups
│ └── organisms/ # Complex components
├── composables/ # Vue composables
├── layouts/ # Layout components
├── router/ # Vue Router configuration
├── services/ # API service layer
├── types/ # TypeScript type definitions
└── views/ # Page-level components
- Node.js 20.19+ or 22.12+ (LTS recommended, for compatibility)
- Bun 1.3.3 (latest recommended)
bun installCopy the example environment file and configure as needed:
cp .env.example .envEnvironment Variables:
VITE_API_BASE_URL- Base URL for the PMR API server (default:http://127.0.0.1:9380for local Rust backend)
Note: To run the backend locally, see the pmrplatform repository for setup instructions.
Start the development server with hot-reload:
bun run devThe app will be available at http://localhost:5173/pmrapp-frontend/
Type-check, compile and minify for production:
bun run buildPreview the production build:
bun run previewRun unit tests with Vitest:
bun run test:unitRun e2e tests in development mode:
bun run test:e2e:devRun e2e tests against production build:
bun run build
bun run test:e2eFormat code:
bun run formatLint and fix code:
bun run lintRun both format and lint:
bun run format && bun run lint- VS Code
- Vue - Official extension (disable Vetur if installed)
Chrome/Edge/Brave:
- Vue.js devtools
- Enable Custom Object Formatters in DevTools settings
Firefox:
- Backend: pmrplatform - Rust-powered backend platform
- Rust Demo: pmr3.demo.physiomeproject.org - Alternative frontend built with Leptos (Rust)
- Current Production: models.physiomeproject.org - Active Physiome Model Repository