Skip to content

oliviertassinari/SplitMe

Repository files navigation

SplitMe

CircleCI

Split expenses with friends

The app

Description

Use SplitMe to share group bills and make sure that everyone gets paid back.
Split household bills with roommates, figure out costs for a group trip, remember when a friend spots you for lunch.

Features

  • Multiple groups
  • Multiple currencies
  • Expenses log
  • Minimal number of transactions to settle debts within a group
  • Export/Import data
  • No ads

Screenshots

The technology stack

To achieve high performance and flexibility, we use the following elements:

  • React
  • Service worker
  • Server side rendering
  • Code splitting
  • Inlining of the critical CSS thanks to CSS-in-JS
  • Cordova iOS & Android
  • A CDN

Install

npm install -g pouchdb-server
npm install
cd cordova
../node_modules/.bin/cordova prepare

Test

npm install selenium-standalone -g
selenium-standalone install

Android

brew install android-sdk

iOS

brew install graphicsmagick
npm run cordova:icons
npm run cordova:imagemin

Development

npm start
pouchdb-server

Environement

Production

Staging

Screenshot

Android

adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png

iOS

cmd + s

Redux

Action name

Use the FSA standard.

use action name linked to the action triggered by the user. The action name shouldn't be link to the mutation of the store needed.

Exception, the action is used in only one reducer and the mutation is duplicated by other action in this same reducer. Then the action name can be linked to the store mutation

Release process

iOS

  1. Update the package.json version.
  2. Build the app
  3. You may encounter this error No matching provisioning profile found. Ask your team for it. You need the provisioning profile and the associated signin key.
  4. Go into Xcode build for the Generic iOS Device.
  5. Product > Archive.
  6. Upload to App Store
  7. Make sure you have been invited in the SplitMe organization.
  8. Make sure you are an App Manager with your iTunes Connect account.

Contributing

Changes and improvements are more than welcome! Feel free to fork and open a pull request. Please make your changes in a specific branch and request to pull into master!