Wine & Winery database: relational schema, scraper and JSON API
Budget: $750 – $1,500 USD
I am looking for a talented full-stack developer to transform an existing SQL/PHP wine database into a dynamic, "mobile-ready" global directory. This project focuses on building a high-quality "Source of Truth" for wine data that can feed both my website and a mobile application.
Key Deliverables
1. Global Master Winery & Wine Vintage Directory
- Winery Profiles: Update a relational database that maintains a global master list of wineries.
- Wine Vintage database: Build a scalable scraper to gather public data (ratings, technical notes, and potentially other info) from major wine review sites, aggregating and updating on a regular basis.
- Smart Creation/Updates: The system must automatically create new winery profiles if they don't exist and update existing ones with fresh data (vintages, contact info, etc.).
2. Headless API Architecture
- JSON-First Design: All search and retrieval functions must be accessible via RESTful API endpoints returning JSON output.
- CORS & Scalability: Ensure the API is CORS-enabled for mobile app consumption and architected to eventually integrate third-party industry APIs (e.g., Wine-Searcher, Global Wine Score)
3. Admin Control Panel
- Data Oversight: A simple dashboard to review scraped data.
- Manual Enrichment: Ability for an admin to manually add tasting notes, "storyteller" content, and professional scores.
- Conflict Flags: If a scraper finds data that contradicts the current DB (like a significant price jump), it must flag it for manual approval.
4. Deployment & Workflow
A dedicated MySQL Service User with restricted permissions will be provided for a dev/test db
Technical Requirements
- Language/DB: Expert PHP & MySQL (Relational database design is key).
- Web Scraping: Experience with BeautifulSoup, Scrapy, or Puppeteer (handling dynamic content/JS-heavy sites).
- API Design: Experience building RESTful API endpoints with clean JSON structures.
- Security: Proven experience in data sanitization and secure DB practices.dpoints (JSON).
To ensure you have actually read this brief and aren't using an automated bot to bid, please include the following in your proposal: Start your message with the word "Sommelier."
Key Deliverables
1. Global Master Winery & Wine Vintage Directory
- Winery Profiles: Update a relational database that maintains a global master list of wineries.
- Wine Vintage database: Build a scalable scraper to gather public data (ratings, technical notes, and potentially other info) from major wine review sites, aggregating and updating on a regular basis.
- Smart Creation/Updates: The system must automatically create new winery profiles if they don't exist and update existing ones with fresh data (vintages, contact info, etc.).
2. Headless API Architecture
- JSON-First Design: All search and retrieval functions must be accessible via RESTful API endpoints returning JSON output.
- CORS & Scalability: Ensure the API is CORS-enabled for mobile app consumption and architected to eventually integrate third-party industry APIs (e.g., Wine-Searcher, Global Wine Score)
3. Admin Control Panel
- Data Oversight: A simple dashboard to review scraped data.
- Manual Enrichment: Ability for an admin to manually add tasting notes, "storyteller" content, and professional scores.
- Conflict Flags: If a scraper finds data that contradicts the current DB (like a significant price jump), it must flag it for manual approval.
4. Deployment & Workflow
A dedicated MySQL Service User with restricted permissions will be provided for a dev/test db
Technical Requirements
- Language/DB: Expert PHP & MySQL (Relational database design is key).
- Web Scraping: Experience with BeautifulSoup, Scrapy, or Puppeteer (handling dynamic content/JS-heavy sites).
- API Design: Experience building RESTful API endpoints with clean JSON structures.
- Security: Proven experience in data sanitization and secure DB practices.dpoints (JSON).
To ensure you have actually read this brief and aren't using an automated bot to bid, please include the following in your proposal: Start your message with the word "Sommelier."
Related categories:
PHP
Web Scraping
MySQL
JSON
Data Scraping
Data Extraction
Data Integration
Automation
Database Management
API Development