This is a submission for Weekend Challenge: Dog Days Edition
What I Built
Dog care is full of consequential decisions, and almost none of them are made by the dog.
An owner chooses a breed, often with incomplete comparisons. They decide when a change in movement is normal tiredness and when it is a clinical signal. They try to find a veterinarian who matches the problem, not just the nearest clinic. They search for training that is effective without being harsh. They look for places where a dog can move, play, and be welcomed. They buy food and equipment under marketing pressure. They do all of this while the animal itself cannot explain pain, preference, fear, or mismatch in language.
The internet has information for each of those tasks, but it rarely has them in one coherent place. The result is familiar: multiple tabs, conflicting advice, delayed action, and preventable stress for both the dog and the household.
PawServe is a single platform built to reduce that fragmentation.
It brings the main surfaces of practical dog care into one product:
- Breed Finder — search and filter breeds by category, size, and traits; open detailed profiles covering temperament, energy, living fit, origin, and adoption-oriented context
- Veterinary directory — browse clinicians by specialty, with deliberate depth in rehabilitation and recovery-related care
- Health guidance — describe symptoms in plain language, with optional voice input, and receive structured first-aid-style guidance with severity awareness
- Shop — food, toys, health, and grooming supplies organised by use
- Dog Schools — training and education pathways
- Dog Parks — places for exercise and off-leash life
- Dog Menu — dog-friendly places beyond the home
- Guides and Articles — durable care information
- Celebrate — International Dog Day and related cultural context
- Rehab education — modalities and pathways for recovery and mobility support
The intended goal was not to produce a narrow demo around one clever interaction. The goal was to produce a usable care surface: something an owner can actually move through when the question is real.
That intention shaped every major section.
Breed selection as prevention
A large share of later difficulty begins early. When a dog’s energy, size, or working drive does not match the household, the consequences often appear as “behaviour problems,” strained walks, frustration, or eventual rehoming pressure. PawServe treats breed discovery as decision support rather than as a visual catalogue. Filters and profiles are there to slow the decision down in the right way — to make temperament and living fit harder to ignore.
Clinical routing, including rehabilitation
Finding “a vet” is not the same as finding the right clinical path. General practice is essential. So is knowing when mobility work, post-injury recovery, or longer-term comfort support belongs in the conversation. The veterinary section is organised by specialty and gives rehabilitation meaningful presence, because those pathways are commonly discovered later than they should be.
Health guidance under uncertainty
The most stressful moments in dog ownership are often ordinary on the calendar and heavy in the moment: a limp that was not there yesterday, vomiting, restlessness, refusal to eat, sudden lethargy. The owner does not need theatrical certainty from software. They need calm structure — what to observe, what to do now, and when to escalate. PawServe’s Health feature is built around that need. It is explicit that the guidance is not a diagnosis and not a substitute for a licensed veterinarian.
Daily life outside the clinic
A dog’s welfare is not only medical. Training, movement, and access to welcoming places shape behaviour, stress, and quality of life. Schools, parks, and dog-friendly locations are therefore first-class parts of the product, not decorative extras.
Knowledge and occasion
Guides, articles, and the Celebrate section complete the surface area. Care requires information. It also exists inside culture. International Dog Day is part of the challenge frame and part of the broader reminder that this relationship is publicly valued, not only privately managed.
Live app: https://miracleomokaro.github.io/pawserve
![PawServe home — platform overview]

Why the product is structured this way
PawServe assumes that owners fail less from lack of love than from lack of coherent support. The platform is therefore organised as a path:
- Choose with better context
- Find clinical help, including specialist routes
- Respond carefully when something looks wrong
- Support training and physical life
- Buy with clearer categories
- Keep learning and keep the cultural context visible
That is the product thesis. The implementation follows it.
Demo
Open the live application and use it as an owner would.
Begin on Home. The major areas of the product are presented directly, so the scope of the platform is visible without hunting through menus alone. Move into Breeds. Filter by category or size and open a breed profile. Evaluate whether the information helps a real household decision rather than only displaying a picture and a name.
Open Vets and filter by Rehabilitation. Review how specialty routing appears in the directory. Then go to Health. Enter a symptom description in ordinary language — for example, limping after rest, coughing at night, or sudden loss of appetite. Observe the structure of the response and the severity framing. If voice input is available in your environment, test that path as well.
Continue into Parks and Schools as logistics tools: where a dog can move, train, and work off energy. Open Dog Menu for dog-friendly places. Review Shop by category. Finish in Guides or Celebrate depending on whether you want practical reading or the challenge’s cultural frame.
The site is also packaged as a Progressive Web App, so it can be installed and used more like a persistent tool than a temporary tab.
Live demo: https://miracleomokaro.github.io/pawserve
![Symptom Checker walkthrough]

Code
🐾 PawServe
Everything your dog needs — in one place.
Find vets · AI health advice · Breed finder · Parks · Schools · Expert care
Features · Getting Started · Tech Stack · Deployment
📖 About
PawServe is a comprehensive dog care platform that brings together everything you need to keep your best friend happy and healthy — vet directory, AI-powered symptom checker, breed finder, dog schools, parks, pet supply shop, and expert care guides.
✨ Features
- AI Symptom Checker — describe symptoms and get AI-powered first aid guidance with severity assessment (green/yellow/red) via Google Gemini. Supports voice input.
- Breed Finder — explore 40+ breeds across 8 categories with filters, detail modals, and care insights.
- Vet Finder — browse a directory of veterinarians by specialty, location, and rating.
- Dog Schools & Parks — discover training academies and off-leash parks worldwide.
- Global Dog Menu — dog-friendly cafés and restaurants around…
Repository: https://github.com/MiracleOmokaro/pawserve
How I Built It
Product architecture
PawServe is a client-side application with a clear separation between surfaces:
- Home as the product map
- Breeds as decision support
- Vets and Rehab as clinical routing and education
- Health as urgent guidance
- Shop as practical provisioning
- Parks, Schools, and Dog Menu as life logistics
- Guides, Articles, and Celebrate as knowledge and context
This structure was chosen before visual polish. The first question was not “what can be shown.” The first question was “what sequence of owner needs should the product make easier.”
Frontend stack
The application is built with React 18, TypeScript, Vite, and Tailwind CSS. Routing is handled with React Router under the /pawserve base path for GitHub Pages deployment. The interface is organised into pages and shared layout components so navigation remains consistent across the product.
TypeScript is used not only for general safety, but to keep domain objects explicit: breeds, clinicians, products, and places are treated as structured data rather than ad hoc content blocks. That makes filtering, searching, and detail views more reliable.
Data and interaction design
Core browseable data is stored in structured modules. This keeps the primary experience fast and demonstrable even when external services are imperfect. Breed search supports text matching and filters by category and size. Veterinary browsing supports specialty filtering. Shop content is grouped by practical category. Places data supports parks, schools, and dog-friendly locations as separate usable lists rather than one undifferentiated directory.
The detail level varies by section, but the standard is the same: a page should help someone decide or act, not merely exist.
Health feature design
The Health page is the most carefully constrained feature in the product.
Owners can describe what they observe in natural language. Voice input is supported where the browser environment allows it. The response model is first-aid-oriented: acknowledge the concern, provide structured guidance, and signal severity without performing fake diagnosis. The interface remains explicit about limits. Software can assist judgment. It should not impersonate a clinician.
This feature is also where external intelligence enters the system.
Google AI integration
Google Gemini is the intended intelligence layer for Health responses. The client does not hold the model key. Requests are routed through a Supabase edge function, which keeps credentials server-side and prevents the static frontend from exposing secrets.
The intended path is:
browser → edge function → Gemini → structured guidance back to the UI
All of that infrastructure is in place: the Health UI, the request flow, the edge-function boundary, and the response rendering path.
Due to time constraints at the end of the challenge window, the live Google Gemini connection is not working in production. The wiring, server-side boundary, and product integration were completed, but the final operational activation of the model endpoint could not be closed before submission. A local structured first-aid engine remains in the product so the Health surface still responds with severity-aware guidance rather than failing into silence. The Google AI architecture is present; the live model call is the part left incomplete by time.
Deployment and delivery
The app is deployed on GitHub Pages as a static build. That imposed constraints around routing, environment configuration, and service boundaries. Progressive Web App support was added so the product can be installed and revisited easily. The implementation work included the ordinary but necessary details of making a multi-page SPA usable on static hosting, keeping navigation coherent, and ensuring the main owner paths were reachable from both the home surface and the global navigation.
What was prioritised under constraint
The project was built inside the challenge window. That forced prioritisation:
- complete paths over incomplete ambition
- coherent information architecture over isolated novelty
- a Health surface that remains usable even when the live model path is not
- typed structured data for the main directories
- clear specialty emphasis in clinical routing
- practical coverage of training, movement, and place-finding
The interesting decision was compositional. Instead of shipping one showcase feature and a set of placeholders, the work was to make the platform readable as one system.
Prize Categories
Best Use of Google AI
Google Gemini is integrated into the Health experience as the intended model path for natural-language symptom guidance. The client submits requests through a secure Supabase edge function so keys never sit in the browser. The UI, routing, server-side boundary, and response handling were built for that flow.
Due to time at the end of the challenge window, the live Gemini endpoint is not operational in the deployed app. The infrastructure for Google AI is in place; the final live activation is what time did not allow. A local structured first-aid engine continues to power the Health surface so owners still receive severity-aware guidance.
PawServe is an attempt to treat dog care as a connected decision problem rather than a pile of separate websites. It does not replace veterinary medicine. It does not claim to solve every cause of owner stress or animal hardship. It does aim to make the main practical paths — selection, clinical routing, urgent guidance, training, movement, provisioning, and care context — available in one place, with enough seriousness to be useful.
Thank you to the DEV team for the challenge.
