Skip to content

Latest commit

 

History

67 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vet Clinic Management System

Logo

Deploy to GitHub Pages Live Demo

Vet Clinic Management System is a passion-driven side project built from over 18 years of professional software development experience. What started as a personal challenge is evolving into a robust, comprehensive management platform for veterinary clinics. Developing this as a side project allows me to prioritize quality and user experience. My goal is to create a powerful, self-hosted solution that will always be 100% free for anyone to deploy and manage themselves. While I may eventually offer a managed hosting service for those who prefer a turnkey experience, the core software will remain free and open to the community. Note: This project is currently a work in progress. It will take time to reach the full level of maturity I envision, but development is steady and ongoing.

This is a web-based application to manage a mobile veterinary clinic, built with Angular, NestJS, and Prisma.

Prerequisites

Docker (Recommended)

That's it! Docker handles everything else — Node.js, PostgreSQL, dependencies, builds.

Without Docker

  • Node.js: v24 or later
  • PostgreSQL: v16 or later (running locally or remotely)
  • NX: This project uses Nx for monorepo management

Getting Started

Option 1: Docker (Recommended) 🐳

The entire application is self-contained in Docker. One command to start everything:

# Build and start the full stack (PostgreSQL + App)
docker compose up -d --build

# First run — seed the database with sample data
SEED_DB=true docker compose up -d --build

# On Windows PowerShell:
$env:SEED_DB="true"; docker compose up -d --build

Once started:

Docker Commands

# Start the stack
docker compose up -d

# Stop the stack (data is preserved)
docker compose down

# Stop and wipe all data
docker compose down -v

# View logs
docker compose logs -f app

# Rebuild after code changes
docker compose up -d --build

Option 2: Local Development (Without Docker)

1. Install Dependencies

npm install

2. Database Setup

The project uses PostgreSQL. Ensure you have a PostgreSQL instance running.

# Copy the example environment file and configure your database connection
cp .env.example .env
# Edit .env with your PostgreSQL connection string

# Generate Prisma Client
npm run db:generate

# Run migrations
npm run db:migrate

# (Optional) Seed the database with sample data
npm run db:seed

3. Running the Application

You can start both the backend and frontend simultaneously, or individually.

Simultaneous Start
npm start
Individual Start
# Start the Backend (API) - Default: http://localhost:3000
npm run start:api

# Start the Frontend (Web) - Default: http://localhost:4200
npm run start:web

Screenshots

View Light Mode Dark Mode
Dashboard Light Dark
Patient Directory Light Dark
Clinic Settings Light Dark
Tasks & Reminders Light Dark
Messages Light Dark
Invoices Light Dark
Appointments Light Dark
Clients / Clients Light Dark
User Settings Light Dark

Patient Details

The patient details view features a route-based tab navigation system for comprehensive records.

Tab Light Mode Dark Mode
Medical History Light Dark
Vaccinations Light Dark
Prescriptions Light Dark
Appointments Light Dark
Boarding Light Dark
Tasks Light Dark
Estimates Light Dark
Forms Light Dark
Invoices Light Dark
Labs Light Dark
Reminders Light Dark

Patient Management Dialogs (Add Record)

Standardized modals for adding records across all patient sub-sections.

Section Light Mode Dark Mode
Medical History Light Dark
Vaccinations Light Dark
Prescriptions Light Dark
Appointments Light Dark
Boarding Light Dark
Tasks Light Dark
Estimates Light Dark
Forms Light Dark
Invoices Light Dark
Labs Light Dark
Reminders Light Dark

Patient Management Dialogs (Print / Report)

Standardized modals for generating reports and printing.

Section Light Mode Dark Mode
Medical History Light Dark
Vaccinations Light Dark
Prescriptions Light Dark
Appointments Light Dark
Boarding Light Dark
Tasks Light Dark
Estimates Light Dark
Forms Light Dark
Invoices Light Dark
Labs Light Dark
Reminders Light Dark

Client Details

The client details view provides a comprehensive overview of client records with tabbed navigation.

Tab Light Mode Dark Mode
Client Info Light Dark
Patients Light Dark
Financial Light Dark
Appointments Light Dark
Boarding Light Dark
Tasks Light Dark
Reminders Light Dark
Forms Light Dark
Messaging Light Dark

Client Management Dialogs (Add Record)

Section Light Mode Dark Mode
Patients Light Dark
Financial Light Dark
Appointments Light Dark
Boarding Light Dark
Tasks Light Dark
Reminders Light Dark
Forms Light Dark
Messaging Light Dark

Tools & Documentation

Documentation Maintenance

Generating Screenshots

The screenshots in this README.md and the docs/screenshots directory are automatically generated to ensure consistency across Light and Dark modes.

To refresh all screenshots:

  1. Ensure the application is running (npm start).
  2. Run the generation script:
    node docs/maintenance/generate_screenshots.js

This script uses Playwright to:

  • Navigate to all key application routes.
  • Capture screenshots in both Light and Dark modes.
  • Save the results directly to docs/screenshots/.

Project Structure

  • vet-clinic: Angular Frontend with Material Design.
  • api: NestJS Backend.
  • shared-types: Shared TypeScript interfaces and DTOs.
  • prisma: Database schema and migrations.
  • docker: Docker entrypoint and related scripts.

Technical Details

  • Frontend: Angular + Angular Material. Responsive design for mobile, tablet, and desktop.
  • Backend: NestJS for a structured, scalable API.
  • Database: Prisma ORM with PostgreSQL.
  • Deployment: Fully containerized with Docker Compose (PostgreSQL + App in a single docker compose up).

About

Open-source management platform for mobile veterinary clinics. Streamline your practice with comprehensive pet records, automated scheduling, client messaging, and professional invoicing—all in a high-performance, dual-theme web application.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages