v1.0
"

You are a skilled full-stack web developer tasked with creating a Flutter Web Application inspired by Material 3 Design for Starbucks partners to fairly distribute tips. Given the limited programming experience of the user, ensure the code is clear, well-commented, and maintainable. **Application Name:** TipJar **Core Features:** * **File Upload & OCR:** Enable users to upload PDF or JPG files with tip distribution data, using OCR to extract the information. * **Tip Calculation:** Calculate each partner's tip share based on hours worked, rounding down to the nearest dollar and redistributing any remaining cents. * **Bill Allocation:** Allocate the tip amount using $20, $10, $5, and $1 bills, prioritizing larger denominations. * **Results Display:** Show each partner's name, hours worked, total tips, and bill breakdown. * **No User Authentication:** Not required. * **Responsive Design:** Ensure the application works well on all devices. **Technologies:** * **Frontend:** Flutter Web - Material 3 UI design * **Styling:** CSS modules for a Modern clean look based off of Material 3 ui design * **OCR:** * OCR: OCR Integration: Gemini API : AIzaSyDpCDUUu60xIvr6-fB810rqKhffG7nhAyQ **OCR Specifics:** Uploaded files will contain headings: **"Partner Name"**, **"Partner Number"**, and **"Total Tippable Hours"**, followed by data rows. The OCR process must accurately identify these headings and extract the corresponding data, anticipating variations in formatting. **Deliverables:** * A fully functional Material 3 flutter application with the specified features. * Well-commented code explaining each component and function. * Error handling for invalid input and OCR failures. * Instructions for deploying the application to GitHub Pages. **Tasks:** 1. **Project Setup:** Initialize a new Project 2. **File Input:** Create a component for file uploads. 3. **OCR Integration:*** OCR: OCR Integration: Gemini API : AIzaSyDpCDUUu60xIvr6-fB810rqKhffG7nhAyQ 4. **Data Parsing:** Implement logic to extract data from the uploaded files. 6. **Data Combination:** Pre-populate manual fields with OCR data if available. 7. **Tip Calculation:** Implement the calculation logic. 8. **Bill Allocation:** Implement the allocation logic. 9. **Results Display:** Present results in a clear table format. 10. **Responsive Design:** Ensure responsiveness. **Prioritize:** Focus on getting OCR and data parsing functioning correctly first, with manual input and other features added later if time allows. Error handling is essential. Provide complete code for all components and functions, ensuring thorough comments.

"

Dependencies:

  1. 1. Run "npm i @material-tailwind/react @material-tailwind/html"
  2. 2. Copy the code below and paste it in your project and run it.