Product · built outside school
ZooPass
A phone guide for the Mulhouse zoo. It plans your visit, draws the route on the map, and a chatbot answers your questions and shows where each answer comes from.
A PWA in React and TypeScript on Cloudflare Pages. The chatbot is a RAG pipeline: vector search in Astra DB plus keyword search, a similarity threshold of 0.70, and the sources returned with every answer.
TypeScriptTeam of 22025–26
Player 2's answers on this site follow the same idea.
What I built
- Created the project and put it online
- The chatbot's brain: how it searches, and how it answers
- Reworked the chatbot's page
- Created the project and deployed it on Cloudflare Pages
- The chat function and most of the RAG: Astra DB, the similarity threshold, the system prompts
- Contextual actions and quick suggestions in the API, and a reworked AI page
Try a mini guideA made-up map, not the real zoo plan.
Dijkstra on the path graph · answer only if the word match reaches 0.50
Ask the guideIt answers only from its cards and shows which one.
The guide cards
- LanguagesZooPass speaks four languages: French, English, German and Spanish.
- Your visit planZooPass suggests a visit plan from your profile and how long you can stay.
- Walk on the mapThe map draws your walk along the zoo paths and picks the shortest one.
- EventsA page lists the events of the day.
- SourcesEvery chatbot answer comes with the documents it was written from.
- This demo mapThe map on this page is made up: an entrance and zones A to F. It is not the real zoo plan.
How to play
- Pick a start and a goal on the map or in the lists. The shortest walk is drawn.
- Tap a path to close it. The walk goes around it.
- Ask the guide a question. Below the match threshold, it says it does not know.
Rebuilt in the browser with a made-up map. In ZooPass my teammate built the map and the route planner; my part was the chatbot. It searches the official documents and keeps only passages with a similarity of 0.70 or more. This box only compares words with six cards.
