Inspiration

The inspiration for Lettuce Decide came from the challenge of finding a restaurant that satisfies everyone's cravings in a group. With diverse preferences and dietary restrictions, it can be hard to agree on a place to eat. We wanted to create an app that simplifies this process, letting users easily make decisions together based on their location, preferences, and health considerations.

What it does

"Lettuce Decide" is an interactive food-finding app that helps individuals or groups discover restaurants that match their dietary needs, preferences, and location. Users can join a group or create one, input preferences like allergies or dietary restrictions, and then get restaurant recommendations tailored to everyone's needs. The app provides a seamless experience for both individual and group searches, complete with real-time voting to finalize the decision.

How we built it

We built the app using Python with the Streamlit framework for the frontend, ensuring an intuitive and interactive user experience. The backend leverages MongoDB for storing user preferences. We used Groq-api for real-time recommendations from the llama model, analyzing dietary preferences, health-related restrictions, and location data through Google Maps link to provide personalized restaurant options.

Challenges we ran into

One of the biggest challenges was ensuring the app functioned smoothly for group users. Real-time voting, syncing preferences, and updating restaurant recommendations across multiple users required careful coordination between the frontend and backend. We encountered issues with Streamlit, as it does not natively support live updates. Reloading the page often returned users to the home screen instead of preserving their current state. Additionally, prompt engineering was challenging—we had to fine-tune our queries to Groq to maintain high response accuracy, as some restaurant recommendations were not always relevant to users’ locations. Integrating MongoDB and securely managing user preferences also posed difficulties, particularly in maintaining data consistency and accessibility across sessions. Ensuring that user preferences were stored and retrieved efficiently required careful database design and handling.

Accomplishments that we're proud of

We are proud of building a functional and user-friendly app that allows real-time collaboration. The ability to handle diverse dietary preferences, allergies, and location-based searches was a key accomplishment. Additionally, implementing the group feature with seamless syncing and real-time updates across users was a major success. We're also pleased with how we integrated the Groq framework to provide efficient recommendations.

What we learned

We learned a lot about working with real-time data, especially when syncing preferences and votes across multiple users. We gained hands-on experience with MongoDB for storing user data and used it to dynamically retrieve and update preferences. Integrating the Groq framework helped us understand how to leverage the LLM models for faster and more personalized recommendations based on the dataset. Overall, we deepened our understanding of full-stack development and collaborative project workflows.

What's next for Lettuce Decide

Going forward, we plan to enhance the app's functionality by adding more personalized features, such as integrating user reviews, ratings, and restaurant availability. We'd also like to improve the user interface, adding more options for food preferences and including filters for different types of restaurants. We aim to scale the app to handle larger user groups and enhance the backend performance for faster, more efficient recommendations.

Built With

Share this project:

Updates