guid3d / splt

πŸ’ΈπŸ€‘ self-hosted bill splitting web app

Home Page:https://splt.cash

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

White SPLT Logo Black SPLT Logo

Open Source Bill Splitting Web Application πŸ’ΈπŸ€‘πŸ‘―


Key Features

  • Mobile first design, sleek and minimalistic
  • Users can share link to the group with their friends
  • No need logging in
  • Automatically summarizing debts
  • Users can specify their preferred payment methods (for the friends to send back the money)

Tech Stacks

  • NextJS (can be easily hosted on Vercel)
  • Pocketbase (can be easily hosted on Pockethost.io)
  • Mantine UI

Getting Started

// TODO

Development Setup

  1. Clone this repo, and navigate to this

  2. Install dependencies

    npm install
  3. Run the front development server:

    npm run dev
  4. Open new Terminal, and navigate to db folder

    cd db
  5. Download Pocketbase based on your system and copy pocketbase executable file to this db folder.

  6. Start Pocketbase (Backend + Database)

    ./pocketbase serve
  7. Visit to Admin UI http://127.0.0.1:8090/_/ and create admin account

  8. Go to tab Settings -> Import collections

  9. Press Load from JSON file and choose pb_schema.json file from this db folder

  10. Enjoy!

Production Deployment

// TODO

TODOs

  • Add Editing Transaction
  • Advanced Bill Spliting
  • Loading Bar when pressing (as it slow with NextJS)
  • Add non participant person in transaction view, show everyoneIsParticipant toggle
  • Enable passcode checking
  • Finishing README.md : Getting Started, Deploy, Banner + Screenshot, Center logo
  • Code Refractoring, Cleaning
  • Creating first release
  • Make contrast color on selecting participant when creating bill more clear
  • Add button to show edit Preferred Payment Method when adding participant when creating Group
  • IBAN Masking (when adding and viewing)
  • Change Emoji choosing to Emoji-Mart
  • Handle Error when no data is loaded
  • Choose currency
  • Summary page of how much per person

Future Features

  • Choosing who you are
  • i18n
  • Handle Preferrred Payment Method from other country
  • Enable Authentication
  • Bill Uploading: Store in S3, Extracting out information
  • Bank name fetching from IBAN
  • Dockerfile for easier deployment
  • Email notification

About

πŸ’ΈπŸ€‘ self-hosted bill splitting web app

https://splt.cash


Languages

Language:TypeScript 94.9%Language:JavaScript 4.9%Language:CSS 0.3%