0.0.1 • Published 2 years ago

biller v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

biller

npm npm GitHub last commit GitHub code size in bytes license

Appveyor Build Coveralls

Split utility bills with your roommate, ACCURATELY

Supported bill split modes

  • per-person-per-day
  • per-family-per-day
  • per-person
  • per-family

Configuration

You must properly configure biller to use it.

  1. Suppose 5 people from 3 families rent an apartment:

    families:
      W&E:
        persons: [ Willow, Emersyn ]
      M&M:
        persons: [ Mckenna, Mia ]
      S:
        persons: [ Steven ]
  2. And they need to pay 2 utilities and rent:

    bills:
      - desc: water
        mode: per-person-per-day
      - desc: internet
        mode: per-family-per-day
      - desc: insurance
        mode: per-person
      - desc: rent
        mode: per-family
    • Water usage is proportional to number of people occupied as well as duration of stay, so they shall use per-person-per-day.
    • Families watch TV together, so internet connectivity is proportional to number of families as well as duration of stay. That's the case for per-family-per-day.
    • Risks linked to their rental insurance is proportional to how many people lived there, regardless of how long they stayed. So per-person is used.
    • If any person from a family lived in the apartment for any time, that person shall be responsible for the area (bedroom and shared living room) they occupied, regardless of how long they stayed there. In this situation per-family is mostly applicable.
  3. Finally, they all shall maintain a journal of who is currently living there:

    activities:
      # nobody was there before that
      20220101: { Willow: +1, Emersyn: +1 } # Moving in
      20220105: { Mia: +1, Steven: +1 } # Moving in
      20220110: { Willow: -1 } # Moving out
      20220115: { Mia: 0 } # temporarily not home on that day
      20220116: { Mia: 0 } # temporarily not home on that day

Usage

  1. Name configuration file as data.yaml and put it in working directory.
  2. Run npx biller, and follow the prompt: