SplitBill is a modern web application designed to simplify the process of splitting bills among friends, colleagues, or family members. With an intuitive interface and powerful features, SplitBill makes it easy to scan receipts, automatically extract items, split costs, and share the results with others.
- Upload & Scan: Easily upload receipt images or scan them directly
- AI-Powered Recognition: Automatically extracts items, prices, and restaurant details
- Manual Editing: Ability to manually adjust items and prices if needed
- Smart Splitting: Divide bills evenly or by specific items
- Item Assignment: Assign items to specific people
- Tax & Tip Calculation: Automatically handle tax and tip calculations
- Receipt Viewer: View detailed bill information in a clean, organized format
- Export as Image: Save receipts as images for easy sharing
- WhatsApp Integration: Share bill splits directly via WhatsApp
- Receipt History: Access all your past receipts and splits
- Guest Mode: Use the app without creating an account
- OAuth Authentication: Quick sign-in with your existing accounts
- Responsive Design: Works seamlessly on mobile, tablet, and desktop devices
- Frontend: Next.js 15, React 19, TailwindCSS
- Backend: Next.js API Routes, Prisma ORM
- Authentication: OAuth via Arctic
- Storage: AWS S3 for image storage
- UI Components: HeadlessUI, HeroUI, Framer Motion
- Database: Prisma
- Node.js 18.0 or higher
- npm or yarn package manager
- Database setup (compatible with Prisma)
- Clone the repository:
git clone https://github.com/yourusername/splitbill.git
cd splitbill- Install dependencies:
npm install
# or
yarn install- Set up environment variables:
Create a
.envfile in the root directory with the following variables:
DATABASE_URL=your_database_connection_string
NEXTAUTH_SECRET=your_nextauth_secret
NEXTAUTH_URL=localhost_or_your_domain
AWS_ACCESS_KEY_ID=your_aws_access_key
AWS_SECRET_ACCESS_KEY=your_aws_secret_key
AWS_REGION=your_aws_region
AWS_BUCKET_NAME=your_s3_bucket_name
- Run database migrations:
npm run db:migrate
# or
yarn db:migrate- Start the development server:
npm run dev
# or
yarn dev- Open http://localhost:3000 in your browser to see the application.
- Login or Continue as Guest: Access the app with or without an account
- Upload a Receipt: Take a photo or upload an image of your receipt
- Review & Edit: Verify the extracted items and make any necessary adjustments
- Split the Bill: Assign items to different people or split evenly
- Share Results: Export the split as an image or share directly via WhatsApp
npm run dev- Start the development servernpm run build- Build the application for productionnpm run start- Start the production servernpm run lint- Run ESLint to check code qualitynpm run db:migrate- Apply database migrationsnpm run db:studio- Open Prisma Studio to view and edit data
We welcome contributions to SplitBill! Please feel free to submit issues or pull requests.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Our team for their valuable effort and enthusiasm