DoughSplit is a modern expense sharing application built with a monorepo architecture using Turborepo. It provides a seamless experience across web and mobile platforms, allowing users to easily split expenses with friends, family, or colleagues.
- Cross-platform support (Web and Mobile)
- Real-time expense tracking
- Group expense management
- User authentication
- Responsive design
- Type-safe development with TypeScript
- OCR receipt scanning for automatic expense entry
- Complex animations and intuitive mobile UI
- Scalable cloud infrastructure
- Containerized deployment
This monorepo is organized into the following packages and applications:
web: A Next.js web application built with react-native-webnative: A React Native mobile application built with Expobackend: The server-side application handling business logic and data persistence
@repo/ui: Shared React Native component library@repo/typescript-config: Shared TypeScript configurations@repo/database: Database schema and Prisma configurations
- Frontend:
- React Native with Expo
- Next.js and React Native Web
- Complex animations and gesture handling
- OCR integration for receipt scanning
- Backend:
- Express.js API
- User authentication and authorization
- Transaction management
- AWS deployment
- Infrastructure:
- Docker containerization
- AWS cloud services
- Scalable architecture
- Database: Prisma ORM
- Build Tool: Turborepo
- Package Manager: pnpm
- Language: TypeScript
- Code Formatting: Prettier
- Node.js >= 18
- pnpm >= 9.15.4
- Expo CLI (for mobile development)
- Docker (optional, for containerized development)
- Clone the repository:
git clone [repository-url]
cd doughSplit- Install dependencies:
pnpm install- Generate Prisma client:
pnpm prisma:generate- Start the development servers:
# Start all applications
pnpm dev
# Or start specific applications
pnpm start:backend # Start backend serverpnpm dev: Start all applications in development modepnpm build: Build all applicationspnpm clean: Clean all build artifacts and dependenciespnpm format: Format all files using Prettier
The mobile app is built with Expo. To run it:
- Install Expo Go on your mobile device
- Start the native app:
cd apps/native
pnpm startThe web application is built with Next.js and React Native Web. To run it:
cd apps/web
pnpm dev- 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.