PetGuide
Helps people choose a cat breed and a trusted breeder, and recognises a cat's breed from a photo with a neural network.

About the project
A semester team project at FIIT STU from 2022 to 2023, branded as maciatka.eu. It connects people looking for a healthy pedigree cat with verified Slovak breeding stations, and helps those who do not yet know which breed they want.
There are two ways to find a breed. In a short questionnaire, visitors set how active, affectionate or talkative the cat should be, order the traits by how much they matter, and get the closest breeds with a match percentage. Or they upload a photo of a cat they like, and a neural network in a separate Python service guesses the breed.
The rest of the site is a catalogue of breeds and breeding stations. Registered users can review stations, and an administrator approves the reviews and manages stations and sponsors. The site is available in Slovak and English.
We were a team of seven and worked in Scrum, with sprints, planning and reviews. I was responsible for the breed questionnaire and its matching, the database models and seed data, the breed pages, translations and user accounts. I also wrapped the breed classifier in a small FastAPI service and connected it to the Laravel app. Teammates prepared the neural network, the station reviews, the admin moderation and the Docker setup.
What you can try
- Breed questionnaire with trait sliders and a drag-and-drop ranking of what matters most
- Breed recognition from an uploaded photo, with the most likely breeds and their probability
- Breed pages with a gallery, traits, history and the breeding stations that keep the breed
- Directory of breeding stations, searchable by name and breed, with user reviews and photos
- Registration and login, also with Google or Facebook, and password reset by email
Highlights
- Questionnaire matching: each breed is scored by a weighted distance between its traits and the answers, with traits ranked higher counting more
- Database models and relationships for breeds, traits and stations, with seeders that load breed traits from the team's spreadsheet
- Breed detail pages with a gallery and image popup, and the list of stations for each breed
- Registration, login with Google and Facebook through Laravel Socialite, password rules and password reset
- Slovak and English translations, the language switcher and a custom error page
- Admin-only middleware, the sponsor carousel and touch support for the questionnaire on phones
Under the hood
- Laravel 9 application with Blade templates, Bootstrap and jQuery UI, backed by MySQL
- The breed classifier is a Keras model built on VGG16, served by FastAPI; Laravel sends the photo as base64 and gets back the likely breeds
- The web app, the Python service and the database run as separate containers in Docker Compose
- When
- 2022 – 2023
- Type
- Team
- Supervision
- Breed questionnaire, accounts and the classifier integration in a team of seven
- Versions
- Laravel 9
- TensorFlow 2.10
- Stack
- Laravel
- PHP
- MySQL
- FastAPI
- Python
- TensorFlow
- Keras
- Bootstrap
- Docker