Break Through Tech is an organization that tries to empower many diverse students. They do this by having students participate in a year long program designed to teach them all about Machine Learning. In this program, our goal was to make a two-tower recommendation model. To help guide us through this process, our team collaborated with an American Express Advisor.
As a side project, I created this simple web application to help showcase the teams ML model. This application displays a list of mock users. Then, when a name is clicked, it takes you to a profile page where it will display the User ID, image and purchased history. After some time, it will then load a list of up to five recommended products based upon the user's id number and purchased history.
For more information about the Two-Tower Recommendation model itself, you can find the original repository here: https://github.com/ardahk/amex.
- Dynamic user profile generation with images and metadata
- AI-based product recommendation system using a Two-Tower model
- Real-time inference using TensorFlow and preprocessed datasets
- Data loaded from CSVs
- Interactive, responsive web app built with Streamlit
- Multi-page navigation using query parameters
- Gender-based profile image selection and display
- Random user profiles are generated with gender, image, and user ID.
- On clicking a user, a personalized page displays product recommendations.
- The recommendation system loads user-product vectors and scores product matches using dot product similarity.
- Products are sorted and displayed dynamically in the user interface.
- Frontend: Streamlit
- Backend/ML: Python, TensorFlow, Pandas
- Data: GitHub-hosted CSVs
- Storage: JSON session files & local image directory
git clone https://github.com/your-username/BTTAmexWebApp.git
cd BTTAmexWebApp
pip install -r requirements.txt
streamlit run app.pyThis project can be extended with Supabase to:
- Replace static CSVs with real-time Postgres queries
- Store user sessions or ratings
- Manage profile images in storage buckets
This project is licensed under the MIT License.