May 18, 2026
Computer science students developed a system to accurately detect bot behavior without any interruption to the user experience.

Mizzou Engineering’s senior capstone projects equip students hands-on, team-based learning that fosters collaboration, innovation and real-world problem solving.
One computer science capstone group strove to create a proof of concept that made bot detection more seamless and user-friendly than traditional methods.
Team
Sophie Blick, Rohitha Sresta Ganji, Andrew Klusmeyer, Ming Lin, Nolan Park and Pari Patel.
Challenge
Traditional bot detection methods like CAPTCHA are effective, but they come at the cost of user experience. Our team wanted to explore whether machine learning could handle the same job entirely in the background — no interruptions, no puzzles, just seamless verification. Beyond bot detection, we saw potential for this approach to extend into broader authentication use cases as well.
The idea stemmed from looking critically at how existing CAPTCHA systems work and asking whether the same outcome could be achieved less intrusively. We intentionally scoped the project as a proof of concept rather than a production-ready system, which let us focus on selecting a model that was practical and efficient while still demonstrating the core idea effectively.
Process
The project started with Nolan’s initial concept, and the team came together from there. Pari, who had worked with Nolan previously in CS 1050, joined early and brought Rohitha on board to work on the backend and database. Sophie and Ming joined through a discussion board post to handle the front end, and Andrew contributed a cybersecurity perspective. Once the team was formed, we settled on AWS for infrastructure and worked through selecting the right models and tools to bring the concept to life across our three main workstreams: front end, back end and database.
Results
The proof of concept was successful. The system accurately detected bot behavior in the background without any interruption to the user experience, which validated the central premise of the project. The results were encouraging and suggest the approach has real potential beyond just this implementation.
Lessons learned
Integrating a machine learning model into a full-stack, cloud-hosted application presented challenges that go well beyond what coursework typically covers. We were encouraged to think carefully about how the different components of a system communicate with each other, something that’s hard to appreciate until you’re actually debugging it in a live environment. We also developed a much sharper sense of how to evaluate and select ML models, weighing accuracy against computational cost in a way that felt very real when working within actual infrastructure constraints.
On the team side, coordinating across front end, backend and machine learning workstreams taught us that good communication isn’t just helpful, it’s what keeps a project from falling apart. Knowing what your teammates are working on, where they’re stuck and how your piece fits into theirs turned out to be just as important as the technical work itself.
Conclusion
It’s worth noting that this project is genuinely just a starting point. Passive, ML-driven verification is still a relatively open space, and we think there’s meaningful work left to be done in making it more robust, more generalizable and eventually production-ready. Working within real constraints on a real system is one of the best ways to learn, and this capstone gave us the room to do exactly that.
Discover more Mizzou Engineering capstone projects!