This Split Bill App is a web application designed to simplify the process of splitting bills among friends or groups. It allows users to upload receipts, extract item information, assign items to individuals, and calculate the amount each person owes.
- Frontend: React.js, Tailwind CSS
- Backend: Firebase (Realtime Database, Cloud Functions)
- Image Processing: GPT4-mini model for OCR (Optical Character Recognition)
- Hosting: Firebase Hosting (client), Vercel (frontend)
The project is divided into three main parts:
client-frontend/
: React-based client applicationfirebase-backend/
: Firebase backend including Cloud Functionsfrontend/
: Main React frontend application
DraggableItemsPage.js
: Handles the drag-and-drop interface for assigning items to users.
functions/index.js
: Contains Firebase Cloud Functions for backend operations.
App.js
: The main React component that handles image upload, data processing, and displays the results.components/
: UI components using Tailwind CSS.
- Users upload a receipt image.
- The image is processed using OCR to extract item information.
- Users can edit the extracted data and assign items to individuals.
- The app calculates the total amount each person owes.
- A QR code is generated for easy sharing of the split bill.
- Node.js and npm installed
- Firebase CLI installed (for backend deployment)
- Navigate to the
frontend/
directory. - Run
npm install
to install dependencies. - Run
npm start
to start the development server.
- Navigate to the
client-frontend/
directory. - Run
npm install
to install dependencies. - Run
npm start
to start the development server.
- Navigate to the
firebase-backend/
directory. - Run
npm install
in thefunctions/
subdirectory. - Use
firebase deploy
to deploy the Firebase functions.
- Frontend: Deploy to Vercel or your preferred hosting platform.
- Client Frontend: Deploy to Firebase Hosting using
firebase deploy
. - Backend: Automatically deployed when using
firebase deploy
.