A complete system for generating personalized first messages for dating apps, composed of three main components:
- Extracts profile data from dating apps (currently Tinder)
- Saves profile details and images to structured folders
- Uses Playwright and Chrome for reliable profile extraction
- FastAPI server that processes profile data and images
- Generates personalized first messages using OpenAI GPT models
- Provides a RESTful API for message generation
- Flask web application with an intuitive UI
- Allows users to upload images and enter profile information
- Displays generated messages with detailed analytics
git clone <repository-url>
cd FirstChat_BackEndcd scraper_layer
pip install -r requirements.txt
playwright install chromium
./launch_chrome.sh # In one terminal
./run_scraper # In another terminalcd servers/rest_firstchat_api
pip install -r requirements.txt
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json
export OPENAI_API_KEY=your_openai_api_key
uvicorn app:app --host 0.0.0.0 --port 8002cd user_inteface
pip install flask openai Pillow google-cloud-vision
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json
export OPENAI_API_KEY=your_openai_api_key
python app.py- Python 3.9+
- Google Cloud Vision API credentials
- OpenAI API key
- Chrome/Chromium for the scraper component
For a complete development environment, you can set up each component in sequence:
-
Set up environment variables: Create a
.envfile in each component directory with the required API keys. -
Install all dependencies:
cd scraper_layer && pip install -r requirements.txt cd ../servers/rest_firstchat_api && pip install -r requirements.txt cd ../user_inteface && pip install flask openai Pillow google-cloud-vision
-
Initialize the database (if using one in the future): Currently, the system does not use a persistent database, but stores extracted profiles in the filesystem.
Each component has its own configuration options:
- Scraper: Edit
scraper_layer/config.pyto adjust scraper behavior - API Server: Configuration is primarily through environment variables
- User Interface: Settings are defined in the Flask app (
user_inteface/app.py)
For detailed documentation on each component, refer to the README.md files in their respective directories:
Proprietary - All rights reserved.