{"id":16590673,"url":"https://github.com/oliviertassinari/splitme","last_synced_at":"2025-03-16T21:30:42.603Z","repository":{"id":27639134,"uuid":"31123797","full_name":"oliviertassinari/SplitMe","owner":"oliviertassinari","description":"Split expenses with friends.","archived":false,"fork":false,"pushed_at":"2023-04-11T17:47:58.000Z","size":56186,"stargazers_count":154,"open_issues_count":8,"forks_count":33,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-02-27T14:30:42.214Z","etag":null,"topics":["bills","dividing","expenses","friends","roommates","sharing","splitting"],"latest_commit_sha":null,"homepage":"https://splitme.net","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oliviertassinari.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-21T11:41:47.000Z","updated_at":"2024-09-02T16:14:15.000Z","dependencies_parsed_at":"2022-09-03T03:24:02.465Z","dependency_job_id":null,"html_url":"https://github.com/oliviertassinari/SplitMe","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oliviertassinari%2FSplitMe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oliviertassinari%2FSplitMe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oliviertassinari%2FSplitMe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oliviertassinari%2FSplitMe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oliviertassinari","download_url":"https://codeload.github.com/oliviertassinari/SplitMe/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243830932,"owners_count":20354851,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bills","dividing","expenses","friends","roommates","sharing","splitting"],"created_at":"2024-10-11T23:14:02.295Z","updated_at":"2025-03-16T21:30:40.950Z","avatar_url":"https://github.com/oliviertassinari.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SplitMe\n\n[![CircleCI](https://img.shields.io/circleci/project/github/oliviertassinari/SplitMe/master.svg)](https://circleci.com/gh/oliviertassinari/SplitMe/tree/master)\n\n\u003e Split expenses with friends\n\n## The app\n\n### Description\n\nUse SplitMe to share group bills and make sure that everyone gets paid back.\u003cbr /\u003eSplit household bills with roommates, figure out costs for a group trip, remember when a friend spots you for lunch.\n\n**Features**\n\n- Multiple groups\n- Multiple currencies\n- Expenses log\n- Minimal number of transactions to settle debts within a group\n- Export/Import data\n- No ads\n\n### Screenshots\n\n\u003cimg src=\"fiche/en/android/1.png\" width=\"280\"\u003e\u003cimg src=\"fiche/en/android/2.png\" width=\"280\"\u003e\u003cimg src=\"fiche/en/android/3.png\" width=\"280\"\u003e\n\u003cimg src=\"fiche/en/android/4.png\" width=\"280\"\u003e\u003cimg src=\"fiche/en/android/5.png\" width=\"280\"\u003e\n\n## The technology stack\n\nTo achieve [high performance](https://www.webpagetest.org/result/170322_SP_1BPQ/1/details/) and flexibility, we use the following elements:\n\n- React\n- Service worker\n- Server side rendering\n- Code splitting\n- Inlining of the critical CSS thanks to CSS-in-JS\n- Cordova iOS \u0026 Android\n- A CDN\n\n## Install\n\n```sh\nnpm install -g pouchdb-server\nnpm install\ncd cordova\n../node_modules/.bin/cordova prepare\n```\n\n### Test\n\n```sh\nnpm install selenium-standalone -g\nselenium-standalone install\n```\n\n### Android\n\n```sh\nbrew install android-sdk\n```\n\n### iOS\n\n```sh\nbrew install graphicsmagick\nnpm run cordova:icons\nnpm run cordova:imagemin\n```\n\n## Development\n\n```sh\nnpm start\npouchdb-server\n```\n\n## Environement\n\n### Production\n- Browser [splitme.net](https://splitme.net)\n- Android [Google Play](https://play.google.com/store/apps/details?id=com.split.app)\n- iOS [Apple Store](https://itunes.apple.com/gb/app/splitme-friends-expenses/id1130782526?mt=8)\n\n### Staging\n- Browser [staging.splitme.net](https://staging.splitme.net)\n\n## Screenshot\n\n### Android\n\n```sh\nadb shell screencap -p | perl -pe 's/\\x0D\\x0A/\\x0A/g' \u003e screen.png\n```\n\n### iOS\n\n`cmd` + `s`\n\n## Redux\n\n### Action name\n\nUse the [FSA](https://github.com/acdlite/flux-standard-action) standard.\n\nuse action name linked to the action triggered by the user. The action name shouldn't be link to the mutation of the store needed.\n\nException, 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\n\n## Release process\n\n### iOS\n\n1. Update the *package.json* version.\n1. Build the app\n1. 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.\n1. Go into Xcode build for the *Generic iOS Device*.\n1. *Product* \u003e *Archive*.\n1. *Upload to App Store*\n1. Make sure you have been invited in the *SplitMe* organization.\n1. Make sure you are an *App Manager* with your iTunes Connect account.\n\n## Contributing\n\nChanges and improvements are more than welcome!\nFeel free to fork and open a pull request.\nPlease make your changes in a specific branch and request to pull into master!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foliviertassinari%2Fsplitme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foliviertassinari%2Fsplitme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foliviertassinari%2Fsplitme/lists"}