A modern Next.js application for online veterinary consultations, allowing pet owners to book appointments with experienced veterinarians and caregivers to manage their schedules.
- Appointment Browsing: Browse available veterinarians with filtering options
- Advanced Filtering: Filter by pet type (dogs, cats, birds, reptiles, fish), physical features (paws, claws), specialization, and experience
- Caregiver Profiles: Detailed profiles with specializations, experience, and availability
- Appointment Booking: Comprehensive booking form with pet information and visit description
- Authentication: Secure login system for caregivers
- Appointment Management: View, approve, or reject appointment requests
- Status Tracking: Track appointment status (pending, approved, rejected, completed)
- Client Information: Access to client and pet details for each appointment
- Frontend: Next.js 14, TypeScript, Tailwind CSS
- Backend: Supabase (PostgreSQL database, authentication, real-time)
- UI Components: Custom components with Lucide React icons
- Styling: Tailwind CSS with custom gradients and animations
caregivers: Veterinarian information and specializationsappointments: Client appointments and booking detailsappointment_slots: Available time slots for bookingpets: Pet information (optional, for future use)
- Row Level Security (RLS) for data protection
- Real-time updates for appointment status
- Comprehensive filtering and search capabilities
- Node.js 18+
- npm or yarn
- Supabase account
- Clone the repository:
git clone <repository-url>
cd pet-vet- Install dependencies:
npm install- Set up environment variables:
Create a
.env.localfile with your Supabase credentials:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url_here
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key_here
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key_here-
Set up the database: Run the SQL schema from
supabase-schema.sqlin your Supabase SQL editor to create the necessary tables and sample data. -
Start the development server:
npm run dev- Open http://localhost:3000 in your browser.
- Browse available veterinarians on the homepage
- Use filters to find the right specialist for your pet
- Click on a caregiver to view their detailed profile
- Select an available time slot
- Fill out the booking form with your and your pet's information
- Submit the appointment request
- Navigate to
/caregiver/login - Sign in with your credentials
- Access the dashboard to view appointment requests
- Approve or reject appointments as needed
- Track appointment status and client information
The application includes sample data with 4 veterinarians:
- Dr. Sarah Johnson (Dogs, Cats)
- Dr. Mike Chen (Birds, Reptiles)
- Dr. Emily Rodriguez (Cats, Dogs, Fish)
- Dr. James Wilson (Reptiles, Birds)
src/
├── app/ # Next.js app router pages
│ ├── caregiver/ # Caregiver-specific pages
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── page.tsx # Homepage
├── components/ # Reusable React components
│ ├── AppointmentGrid.tsx
│ ├── BookingModal.tsx
│ ├── CaregiverCard.tsx
│ ├── CaregiverProfile.tsx
│ ├── FilterSidebar.tsx
│ ├── Header.tsx
│ └── LoadingSpinner.tsx
└── lib/
└── supabase.ts # Supabase client and types
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License.
For support or questions, please open an issue in the repository or contact the development team.