PawPals - Pet Adoption & Services Platform

A comprehensive platform for pet adoption, grooming services, veterinary care, and pet supplies.

Features

šŸ• Pet Adoption

  • Register pets for adoption
  • Browse available pets
  • Adoption application process
  • Pet profiles with photos and details

āœ‚ļø Grooming Services

  • Book grooming appointments
  • Service packages (basic, premium, deluxe)
  • Groomer profiles and availability
  • Service history tracking

šŸ„ Veterinary Services

  • Schedule vet appointments
  • Health records management
  • Vaccination tracking
  • Emergency contact information

šŸ›ļø Pet Supplies

  • Browse and purchase pet supplies
  • Categories: Food, Toys, Accessories, Health
  • Shopping cart and checkout
  • Order tracking

šŸ‘¤ User Management

  • User registration and authentication
  • Pet owner profiles
  • Adoption history
  • Service booking history

šŸ”§ Admin Features

  • Manage pet listings
  • Approve adoption applications
  • Manage service providers
  • Analytics dashboard

Project Structure

ā”œā”€ā”€ backend/
│   ā”œā”€ā”€ database/
│   │   ā”œā”€ā”€ migrations.ts    # Database schema
│   │   └── queries.ts       # Database operations
│   ā”œā”€ā”€ routes/
│   │   ā”œā”€ā”€ auth.ts         # Authentication routes
│   │   ā”œā”€ā”€ pets.ts         # Pet management
│   │   ā”œā”€ā”€ services.ts     # Grooming/vet services
│   │   ā”œā”€ā”€ store.ts        # Pet supplies store
│   │   └── static.ts       # Static file serving
│   └── index.ts            # Main server entry
ā”œā”€ā”€ frontend/
│   ā”œā”€ā”€ components/
│   │   ā”œā”€ā”€ App.tsx         # Main app component
│   │   ā”œā”€ā”€ Navigation.tsx  # Navigation bar
│   │   ā”œā”€ā”€ PetCard.tsx     # Pet display component
│   │   └── ServiceCard.tsx # Service display component
│   ā”œā”€ā”€ pages/
│   │   ā”œā”€ā”€ Home.tsx        # Landing page
│   │   ā”œā”€ā”€ Adoption.tsx    # Pet adoption page
│   │   ā”œā”€ā”€ Services.tsx    # Services page
│   │   └── Store.tsx       # Pet supplies store
│   ā”œā”€ā”€ index.html          # Main HTML template
│   └── index.tsx           # Frontend entry point
└── shared/
    ā”œā”€ā”€ types.ts            # Shared TypeScript types
    └── utils.ts            # Shared utility functions

Technology Stack

  • Backend: Hono (TypeScript API framework)
  • Frontend: React 18.2.0 with TypeScript
  • Database: SQLite
  • Styling: TailwindCSS
  • Authentication: JWT-based auth

Getting Started

The application is automatically deployed on Val Town. The main entry point is /backend/index.ts which serves both the API and frontend.

API Endpoints

Authentication

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • GET /api/auth/profile - Get user profile

Pets

  • GET /api/pets - List available pets
  • POST /api/pets - Register a pet for adoption
  • GET /api/pets/:id - Get pet details
  • POST /api/pets/:id/adopt - Submit adoption application

Services

  • GET /api/services/grooming - List grooming services
  • POST /api/services/grooming/book - Book grooming appointment
  • GET /api/services/veterinary - List vet services
  • POST /api/services/veterinary/book - Book vet appointment

Store

  • GET /api/store/products - List pet supplies
  • POST /api/store/cart - Add to cart
  • POST /api/store/checkout - Process order