{"id":15785701,"url":"https://github.com/arnaudrinquin/wallet","last_synced_at":"2025-03-31T17:28:09.680Z","repository":{"id":19147745,"uuid":"22378084","full_name":"ArnaudRinquin/wallet","owner":"ArnaudRinquin","description":"Very simple wallet app under AngularJS","archived":false,"fork":false,"pushed_at":"2015-12-05T01:09:13.000Z","size":1185,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-18T19:43:40.455Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CoffeeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArnaudRinquin.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":"2014-07-29T11:51:29.000Z","updated_at":"2018-11-20T02:19:27.000Z","dependencies_parsed_at":"2022-09-04T00:10:36.608Z","dependency_job_id":null,"html_url":"https://github.com/ArnaudRinquin/wallet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArnaudRinquin%2Fwallet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArnaudRinquin%2Fwallet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArnaudRinquin%2Fwallet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArnaudRinquin%2Fwallet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArnaudRinquin","download_url":"https://codeload.github.com/ArnaudRinquin/wallet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246508039,"owners_count":20788933,"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":[],"created_at":"2024-10-04T20:41:11.757Z","updated_at":"2025-03-31T17:28:09.659Z","avatar_url":"https://github.com/ArnaudRinquin.png","language":"CoffeeScript","readme":"Angular Wallet\n==============\n\n[ ![Codeship Status for ArnaudRinquin/wallet](https://www.codeship.io/projects/4bb61f00-f953-0131-b886-26b5a351acb8/status)](https://www.codeship.io/projects/28850)\n\n## Stack\n\n### Toolchain\n\n* Gulp\n* Browserify\n* CoffeeScript\n* Jade\n* SASS + Compass\n* Karma + Jasmine\n* BrowserSync\n\n### Lib used on client side\n\n* Angular\n  * angular-ui-dropdown\n  * angular-ui-routeur\n  * angularLocalStorage\n  * angular-bootstrap-switch\n* Bootstrap\n  * bootstrap-switch\n* Font-Awesome\n* jQuery\n\n## Setup \u0026 build\n\n### Install Gulp and Bower Globally\nGulp must be installed globally in order to use the command line tools. *You may need to use `sudo`*\n```\nnpm install -g gulp bower\n```\n\n### Install Compass (if you haven't already)\nThe gulp-compass module relies on Compass already being installed on your system.\n```\ngem update --system\ngem install compass\n```\n### Install npm and bower dependencies\n```\nnpm install \u0026\u0026 bower install\n```\nThis runs through all dependencies listed in `package.json` and downloads them\nto a `node_modules` folder in your project directory.\n\n### Run gulp and be amazed.\n```\ngulp\n```\n\nThis will create and run the task defined in `gulpfile.js`. If you're on OS X,\nand have Chrome installed, a window will open displaying the demo page. If not,\nyou can visit http://localhost:8080 to view the test page.\n\n## Deployment\n\n### Current instances\n\nContinuous deployment through codeship: [awallet](http://awallet.herokuapp.com/)\n\n### Heroku\n\n#### Create an app\n\n```\nheroku apps:create wallet\n```\n\n#### Set the app custom buildpack:*\n\n```\nheroku config:add BUILDPACK_URL=https://github.com/9elements/heroku-buildpack-nodejs-gulp-haml-sass-compass.git -a wallet\n```\n#### Add the heroku app as a git repo:*\n\n```\ngit remote add heroku git@heroku.com:wallet.git\n```\n\n#### Deploy the app\n\n```\ngit push heroku master\n```\n\n## Technical details\n\n### Models\n\n#### Wallet\n\nConstructor\n\n`new WalletModel(currency, [transactions], [repository])`\n\nAttributes\n\n* `currency`: A `Currency` model instance\n* `transactions`: Array of `Transaction` model instances\n\nMethods\n\n* `addTransaction(transaction)`: Adds a transaction to the list. Will call `repository.onUpdate()`. Throws if balance becomes negative.\n* `removeTransaction(transaction)`: Adds a transaction to the list. Will call `repository.onUpdate()`. Throws if balance becomes negative.\n* `setCurrency(currency)`: Replace current currency, will call `repository.onUpdate()`\n\n#### Transaction\n\nConstructor\n\n`new TransactionModel(amount, isCredit, [createdAt])`\n\nAttributes\n\n* `amount`: A float value\n* `isCredit`: when applied to a number, should amount be added or removed?\n* `createdAt`: A stored creation date, default is `new Date()`\n\nMethods\n\n* `applyToNumber(number)`: depending on `isCredit`, adds/remove `amount` to/from\n* `revertNumber(number)`: depending on `isCredit`, remove/adds `amount` to/from number\n* `serialize`: returns a clean storable object\n* `TransactionModel.deserialize(serializedObject)`: returns a Transaction instance.\n\n#### Currency\n\n`new CurrencyModel(iso, symbol, iconClass)`\n\nAttributes\n\n* `iso`: The currency ISO code (USD, GPB...) see [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217)\n* `symbol`: The textual currency symbol ($, £...)\n* `iconClass`: The font-awesome icon class (fa-usd, fa-gbp...)\n* `CurrencyModel.instances`: some already instanciated currencies (USD, GBP, EUR)\n\nMethods\n\n* `serialize`: returns a clean storable object\n* `CurrencyModel.deserialize(serializedObject)`: returns a Currency\n* `CurrencyModel.getFromIso(iso)`: returns the existing currency among `CurrencyModel.instances`\n\n### Directives\n\n#### Wallet\n\nA directive that displays a wallet transactions list and balance\n\nAttributes:\n\n* `wallet`: a `WalletModel` object\n\n#### TransactionForm\n\nAdd form directive for transaction creation\n\nAttributes:\n\n* `transaction`: an initial `TransactionModel` to fill the form with\n* `onSubmit`: submit callback, called with the `transaction`\n* `currency`: the `CurrencyModel` to be used (display purpose only)\n* `currentTotal`: used to ensure the transaction would not render the balance negative.\n\n#### TransactionTrItem\n\nAdd transaction directive outputing a table row (`\u003ctr\u003e`) for the given `transaction`\n\nAttributes:\n\n* `transaction`: an initial `TransactionModel` to fill the form with\n* `currency`: the `CurrencyModel` to be used (display purpose only)\n\n## TODO\n\n* Store amounts as cents instead of float\n* Currency icons as a filter\n* Add appcache on deployed apps to make it offline (easy with [gulp-manifest](https://github.com/hillmanov/gulp-manifest))\n* Add optional label on transactions?\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farnaudrinquin%2Fwallet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farnaudrinquin%2Fwallet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farnaudrinquin%2Fwallet/lists"}