DivvyDime is an open-source expense sharing application, designed as a clean, fast, and browser-based alternative to Splitwise. It helps groups of friends, roommates, or travelers easily track and split shared expenses.
- Group Expense Tracking: Create groups for trips, roommates, events, and more
- Multiple Split Options: Split expenses evenly, by percentage, by shares, or by specific amounts
- Expense Categories: Organize expenses with customizable categories
- Activity Timeline: Track all changes and updates within your groups
- Document Attachments: Attach receipts and documents to expenses
- Currency Support: Track expenses in different currencies
- Responsive Design: Works seamlessly on desktop and mobile devices
- Dark Mode: Toggle between light and dark themes
- Frontend: Next.js 14, React 18, TypeScript
- UI Components: NextUI, TailwindCSS, Framer Motion
- Database: PostgreSQL with Prisma ORM
- Form Handling: React Hook Form with Zod validation
- Styling: TailwindCSS with tailwind-variants
- Node.js (version specified in
.nvmrc
) - PostgreSQL database
-
Clone the repository:
git clone https://github.com/AnimeshRy/divvydime.git cd divvydime
-
Install dependencies:
npm install
-
Set up environment variables:
- Copy
.env.template
to.env
- Update the database connection strings and other required variables
- Copy
-
Set up the database:
npx prisma migrate dev npx prisma db seed
-
Start the development server:
npm run dev
-
Open http://localhost:4000 in your browser
npm run dev
- Start the development server on port 4000npm run build
- Build the application for productionnpm run start
- Start the production servernpm run lint
- Run ESLint to check code qualitynpm run format
- Format code with Prettier
DivvyDime uses a PostgreSQL database with the following main models:
- Group: Represents a collection of people sharing expenses
- Participant: Members of a group who share expenses
- Expense: Individual expenses with details like amount, payer, and split information
- Category: Expense categories for better organization
- Activity: Timeline of actions within a group
Contributions are welcome! Please feel free to submit a Pull Request.
- 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 open source and available under the MIT License.