PetWebsite
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
A comprehensive platform for pet adoption, grooming services, veterinary care, and pet supplies.
- Register pets for adoption
- Browse available pets
- Adoption application process
- Pet profiles with photos and details
- Book grooming appointments
- Service packages (basic, premium, deluxe)
- Groomer profiles and availability
- Service history tracking
- Schedule vet appointments
- Health records management
- Vaccination tracking
- Emergency contact information
- Browse and purchase pet supplies
- Categories: Food, Toys, Accessories, Health
- Shopping cart and checkout
- Order tracking
- User registration and authentication
- Pet owner profiles
- Adoption history
- Service booking history
- Manage pet listings
- Approve adoption applications
- Manage service providers
- Analytics dashboard
├── 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
- Backend: Hono (TypeScript API framework)
- Frontend: React 18.2.0 with TypeScript
- Database: SQLite
- Styling: TailwindCSS
- Authentication: JWT-based auth
The application is automatically deployed on Val Town. The main entry point is /backend/index.ts
which serves both the API and frontend.
POST /api/auth/register
- User registrationPOST /api/auth/login
- User loginGET /api/auth/profile
- Get user profile
GET /api/pets
- List available petsPOST /api/pets
- Register a pet for adoptionGET /api/pets/:id
- Get pet detailsPOST /api/pets/:id/adopt
- Submit adoption application
GET /api/services/grooming
- List grooming servicesPOST /api/services/grooming/book
- Book grooming appointmentGET /api/services/veterinary
- List vet servicesPOST /api/services/veterinary/book
- Book vet appointment
GET /api/store/products
- List pet suppliesPOST /api/store/cart
- Add to cartPOST /api/store/checkout
- Process order