Role: Full-Stack Developer · Context: Google STEP Internship
Team: Himani Yadav, Anika Bagga
🔗 Live Site: groupple.ue.r.appspot.comGroupple was built during the Google STEP (Student Training in Engineering Program) internship as our capstone project. Built on a Java Servlet framework and deployed on Google App Engine, Groupple is a social media site designed to help people stay connected during COVID-19 through shared group challenges.
Users can create groups, propose weekly challenges through a voting system, complete challenges together, and discover new groups based on location and shared interests.
Before writing code, I created a Figma prototype to establish the visual language and user flows. This served as the foundation for our UI, which we then refined collaboratively with the team.

Users can submit options for the group's weekly challenge. Votes are tallied in real time, and the top-voted option automatically becomes the active challenge every 7 days. Built with a Java Servlet backend, Datastore persistence, and a JavaScript frontend with live updates.
A user search bar with autocomplete, autocorrect, and whitespace normalization — built from scratch using a trie data structure. Handles partial matches, typos, and messy input gracefully. Searches scale across the full user database efficiently.
When searching for users to invite to a group, results are ranked by degree of social connection: direct group members appear first, followed by friends-of-friends, then others. Implemented using a BFS traversal over the social graph.
Our full design document covers system architecture, API design, data modeling, and feature specifications.
📄 View Design Document (PDF)Groupple was an ambitious pivot — we moved beyond the original feature scope to implement genuinely complex algorithmic features: predictive search with a trie, social graph ranking with BFS, and TF-IDF topic tagging. While not every Figma feature made it into the final product, the implemented features pushed meaningful applications of data structures and algorithms that would hold up in production.
This internship was my introduction to full-stack development at scale and shaped how I think about building systems that need to handle real user data gracefully.