Skip to content

Latest commit

 

History

History
98 lines (69 loc) · 2.43 KB

README.md

File metadata and controls

98 lines (69 loc) · 2.43 KB

expenses

Shared expense tracking app with support for multiple personal and shared sheets.

Main data table Add transaction dialog
Main data table Add transaction dialog

Summary

The primary motivation for building this app was to consolidate my expense tracking across different apps for personal and shared expenses. I was using a simple iOS app to enter my personal expenses, while also manually copying over expenses from shared expense tracking apps/web apps.

This app gives you a unified view of how much you spent, regardless of whether you spent it directly or somebody paid on your behalf.

It's also designed to not be linked directly to bank or debit/credit card transactions, as that required a lot of manual fixing up of categories or descriptions, in my experience.

Features

  • Installable mobile app with offline capability (PWA)
  • Themes and light/dark/system mode
  • Push Notifications for shared transactions
  • Multi currency support with automatic conversion (ECB data)
  • Split transactions evenly, or by participants, shares, percentages, or exact amounts
  • Schedule personal transactions on a monthly or weekly schedule
  • Settle up with automatically calculated amounts
  • Expense import (CSV) and export (CSV/JSON)

Built with

  • React, Vite, Tailwind CSS, Radix/shadcn, Framer Motion
  • tRPC, React Query
  • Hono, BullMQ, Prisma, Postgres, Redis
  • Playwright, Vitest
  • Prettier, ESLint

Initial dev setup

If using GitHub Codespaces or a Dev Container, skip to step 5.

  1. Configure local environment variables

    yarn be prepare:local
  2. Start dev services

    docker compose -f compose.local.yml up
  3. Migrate databases

    yarn be prisma migrate dev
  4. Start dev servers

    yarn dev
  5. Optional: Generate demo data

    Dev server must be running

    yarn be prepare:demo

    Login with [email protected] and password1234 (see packages/backend/bin/demo.ts for more details)

Additional deployment setup

Docker build args:

  • GIT_COMMIT_SHA
  • VITE_GIT_COMMIT_SHA
  • VITE_ENV_NAME
  • VITE_SENTRY_DSN
  • SENTRY_AUTH_TOKEN
  • SENTRY_ORG
  • SENTRY_PROJECT