CASE STUDY

VetArt — Full-Stack Veterinary Clinic Platform

A modern veterinary clinic platform with a custom administration system for managing services, doctors, appointments, content and clinic operations.

Live Website Admin Panel GitHub

Admin Panel demo (read-only): demo@vetart.clinic / igqwPQKx9nEsnHKsNcl6 — appointments and messages are hidden on this account since they hold real customer data.

PROJECT OVERVIEW
Project TypeFull-Stack Web Application
IndustryVeterinary / Pet Care
RoleFull-Stack Software Developer
FocusWeb Dev · Backend · API · Database · Admin
THE PROBLEM

The clinic needed a modern website where visitors can find its services, doctors and contact details — but its staff also needed to update that information themselves, without asking a developer every time a service, doctor or article changes.

THE SOLUTION

VetArt was built as a full-stack platform that pairs a public website with a custom administration panel, both running on one codebase against one database. Through the admin panel, clinic staff manage the platform's core data and site content from a single, centralized interface — no code changes required.

THE PUBLIC WEBSITE
VetArt public website home page Screenshot coming soon — public website home page
VetArt services page Services page
VetArt doctors page Doctors page
VetArt online booking form Online booking form
MAIN FEATURES
01

Custom Admin Panel

Centralized administration system for managing the platform's services, doctors, content and media.

02

Appointment Management

Online booking requests with a status workflow (New → Contacted → Done) staff can track and update.

03

Doctor Management

Doctors, their specializations and profile photos, editable from the admin panel.

04

Services Management

Dynamic veterinary services — titles, descriptions and ordering — with no code deploy needed to change them.

05

Content Management

Blog articles and page copy across the whole site, editable per page and per language.

06

Media Management

A categorized photo gallery with server-side thumbnail generation on upload.

07

Authentication & Authorization

JWT-based admin login, with a role-based split between full-access admins and a read-only viewer role.

08

Responsive UI

Optimized experience across desktop, tablet and mobile devices, on both the public site and the admin panel.

CENTRALIZED ADMINISTRATION

The custom administration panel lets authorized staff manage doctors, services, appointments, articles, gallery content and other business data — without touching the source code.

VetArt admin dashboard Screenshot coming soon — admin dashboard
BUSINESS LOGIC

VetArt isn't a static brochure site — real workflow and data rules run underneath it:

Appointment & message lifecycle

Booking requests and contact messages move through New → Contacted → Done, tracked per record.

Authentication

JWT-based sessions with bcrypt-hashed passwords for every admin account.

Role-based authorization

ADMIN accounts have full access; a VIEWER role can read but never write, and is blocked outright from customer data.

Data validation

Every admin write endpoint validates its input with Zod schemas before it reaches the database.

Database relationships

Gallery photos belong to categories, cascading on delete; every content model is keyed and related through Prisma.

File management

Uploads are restricted by file type and size, stored under randomized filenames, with thumbnails generated on upload.

Multi-language content

Every service, doctor, blog post and page section is stored and edited in English, Georgian and Russian.

Dynamic content

Page copy, services and team info are all database-driven — changed in the admin panel, reflected immediately on the site.

ARCHITECTURE

The platform uses a database-driven architecture connecting the public frontend, backend/API layer, database and administration panel.

Public WebsiteReact / Vite
Backend / APIExpress + JWT + Zod
DatabasePostgreSQL via Prisma
↑ same API, same database ↑
Admin PanelReact, JWT-protected
TECHNICAL STACK

Frontend

  • React 18
  • TypeScript
  • Vite
  • React Router

Backend

  • Node.js
  • Express 5
  • TypeScript
  • Zod (validation)
  • JWT + bcrypt (auth)
  • Multer + Sharp (uploads & thumbnails)

Database

  • PostgreSQL
  • Prisma ORM

Infrastructure

  • Nginx (reverse proxy)
  • PM2 (process manager)
  • Let's Encrypt / Certbot (SSL)
  • Linux VPS

Development

SECURITY
Authentication (JWT-based admin sessions)
Authorization, including a read-only role
Input validation on every admin endpoint (Zod)
Secure, JWT-protected API endpoints
SQL-injection protection via Prisma's parameterized queries
Secure file uploads (type whitelist, size limit, randomized filenames)
RESPONSIVE DESIGN

The platform was designed to provide a consistent experience across desktop, tablet and mobile devices.

Desktop
Desktop
Tablet
Tablet
VetArt on mobile Mobile
Mobile
BUSINESS VALUE

VetArt reduces the clinic's dependency on developers by giving staff a centralized administration system for managing website content and operational information — turning routine content changes into something the clinic handles itself.

DEVELOPER ROLE

Role — Full-Stack Software Developer

EXPLORE VETART
Live Website GitHub