A centralized platform providing pharmacy tools and resources for Sabot Hospital's Pharmacy Department.
Pharmacy Hub Sabot is a modern web application serving as a unified portal for pharmacy staff at Sabot Hospital. It provides quick access to various medical tools, calculators, and reporting dashboards to streamline daily pharmacy operations.
| Tool | Description | Status |
|---|---|---|
| MedSafety Net | Medication error recording system | ✅ Active |
| Med Support Record | Record support medication values (TB drugs, vaccines) | ✅ Active |
| Warfarin Calculator | Dosage calculation tool for Warfarin | ✅ Active |
| Pediatric Dose Calculator | Liquid medication dosing for pediatric patients | ✅ Active |
| Document Download | Download pharmacy department documents | ✅ Active |
| High-Alert Drugs List | Reference list of high-alert medications (HAD) | ✅ Active |
| DrugTracker | Drug ordering and tracking system | ✅ Active |
| Hospital Drug List | Hospital formulary lookup | 🚧 Coming Soon |
| Report | Description | Status |
|---|---|---|
| MedSafety Net Dashboard | Medication error analytics and management | ✅ Active |
| Med Support Dashboard | Support medication value dashboard | ✅ Active |
| Monthly Summary Report | Monthly operational summary | 🚧 Coming Soon |
| Stock Value Report | Drug inventory value tracking | 🚧 Coming Soon |
| OPD Drug Usage Report | Outpatient drug usage statistics | 🚧 Coming Soon |
- Framework: Vue.js 3 with Composition API and
<script setup> - Language: TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS 4
- Icons: Lucide Vue Next
- State Management: Pinia
- Routing: Vue Router 4
- HTTP Client: Axios
- Utilities: @vueuse/core
- Hosting: Firebase Hosting
pharmacy-hub-sabot/
├── src/
│ ├── assets/ # Static assets (CSS, images)
│ ├── components/
│ │ ├── common/ # Reusable UI components
│ │ └── layout/ # Layout components (Navbar, Footer)
│ ├── data/ # Static data and resources
│ ├── layouts/ # Page layout wrappers
│ ├── router/ # Vue Router configuration
│ ├── types/ # TypeScript type definitions
│ ├── views/ # Page components
│ ├── App.vue # Root application component
│ └── main.ts # Application entry point
├── tests/ # Unit tests
├── .github/workflows/ # GitHub Actions CI/CD
└── firebase.json # Firebase hosting configuration
-
Clone the repository
git clone https://github.com/pharmacist-sabot/pharmacy-hub-sabot.git cd pharmacy-hub-sabot -
Install dependencies
bun install
-
Start the development server
bun run dev
Open http://localhost:5173 to view the application.
| Command | Description |
|---|---|
bun run dev |
Start development server |
bun run build |
Build for production |
bun run preview |
Preview production build locally |
bun run type-check |
Run TypeScript type checking |
bun run lint |
Run ESLint for code linting |
bun run lint:fix |
Fix linting issues automatically |
bun run test:unit |
Run unit tests with Vitest |
bun run test:coverage |
Run tests with coverage report |
This project enforces high code quality standards through:
- ESLint with @antfu/eslint-config for consistent code style
- TypeScript for type safety
- Husky with lint-staged for pre-commit hooks
- Commitlint for conventional commit messages
- Vitest for unit testing
The project uses GitHub Actions for continuous integration:
-
CI Quality Workflow (
ci.yml)- Linting and formatting checks
- TypeScript type checking
- Unit tests
- Production build verification
-
Release Workflow (
release.yml)- Semantic versioning with semantic-release
- Automated changelog generation
- GitHub releases
The application is deployed to Firebase Hosting:
# Build for production
bun run build
# Deploy to Firebase
firebase deploy- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes using conventional commits (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is private and intended for use by Sabot Hospital Pharmacy Department.