{"id":15201862,"url":"https://github.com/rodolfoaugusto/rwallet","last_synced_at":"2026-03-08T11:31:17.891Z","repository":{"id":251197786,"uuid":"836665015","full_name":"rodolfoaugusto/rwallet","owner":"rodolfoaugusto","description":"Client and Server demonstration offer for Bitcoin test wallet with purchase flow, side-to-side encryption and passkey authentication. Developed in NodeJs and React.","archived":false,"fork":false,"pushed_at":"2024-08-05T16:46:40.000Z","size":1073,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-15T11:06:26.086Z","etag":null,"topics":["bitcoin","bitcoin-regtest","bitcoin-wallet","javascript","nodejs","passkey","prisma","prisma-client","react","redux","regtest"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/rodolfoaugusto.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-01T09:55:11.000Z","updated_at":"2024-08-05T16:46:42.000Z","dependencies_parsed_at":"2024-09-24T04:01:07.107Z","dependency_job_id":"4dc538c6-979f-43aa-83d9-6aadb82995db","html_url":"https://github.com/rodolfoaugusto/rwallet","commit_stats":{"total_commits":5,"total_committers":1,"mean_commits":5.0,"dds":0.0,"last_synced_commit":"4084017347e9a10fd9e992f62edeb16a9ec0d36f"},"previous_names":["rodolfoaugusto/rwallet"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodolfoaugusto%2Frwallet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodolfoaugusto%2Frwallet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodolfoaugusto%2Frwallet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodolfoaugusto%2Frwallet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rodolfoaugusto","download_url":"https://codeload.github.com/rodolfoaugusto/rwallet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241945473,"owners_count":20046865,"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":["bitcoin","bitcoin-regtest","bitcoin-wallet","javascript","nodejs","passkey","prisma","prisma-client","react","redux","regtest"],"created_at":"2024-09-28T03:41:58.681Z","updated_at":"2026-03-08T11:31:17.867Z","avatar_url":"https://github.com/rodolfoaugusto.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eR Wallet\u003c/h1\u003e\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\".assets/rwallet-logo.png\" alt=\"R Wallet logo\" height=\"140\"\u003e\n\u003c/p\u003e\n\n# Introduction\n\nClient and Server demonstration offer for Bitcoin test wallet with purchase flow, side-to-side encryption and passkey authentication. Developed in Node.js and React.\n\n## Notes\n\n\u003e - [Download the Bitcoin Core](https://bitcoin.org/bin/bitcoin-core-27.0/bitcoin-27.0-x86_64-linux-gnu.tar.gz) and use the following configuration file.\n\u003e - [Regtest config asset](server/assets) for the Bitcoin Core in `regtest` mode.\n\u003e - Plaid sandbox credentials: **username** `user_good` and **password** `pass_good`.\n\n## Structure\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"client\"\u003eClient\u003c/a\u003e |\n    \u003ca href=\"server\"\u003eServer\u003c/a\u003e\n\u003c/p\u003e\n\n```bash\nroot\n├── client      # contains the frontend client React application.\n│ ├── components/    # React components.\n│ ├── hooks/         # custom hooks.\n│ ├── pages/         # page components.\n│ ├── reducers/      # Redux reducers or state management.\n│ ├── services/      # service layer logic and API calls.\n│ ├── App.css        # the main stylesheet.\n│ ├── App.js         # main App component.\n│ ├── Helpers.js     # generic helper functions.\n│ ├── index.js       # main entry point of the client application.\n│ └── Store.js       # Redux store configuration.\n├── server      # contains the backend server NodeJS application.\n│ ├── config/        # configuration files for the server.\n│ ├── errors/        # error handling extended classes.\n│ ├── interceptors/  # interceptor logic for handling requests/responses.\n│ ├── routes/        # route definitions and controllers.\n│ ├── schemas/       # request validation schemas.\n│ ├── services/      # service layer logic and business rules.\n│ ├── tests/         # unit tests coverage.\n│ └── app.js         # main entry point of the server application.\n```\n## Screenshots\n**Login**\n![image](https://github.com/user-attachments/assets/ae34b857-03c8-483e-a747-4fcd1c80f3bb)\n\n**Connect bank account**\n![image](https://github.com/user-attachments/assets/8c318a6d-91c2-420b-bbd8-4a72b7279f46)\n\n**Crypto Offer**\n![image](https://github.com/user-attachments/assets/45b9e018-acbe-4086-8acb-abb08749c0a3)\n\n## Entity Relationship Diagram\n\n\u003cp align=\"center\" style=\"background-color: rgba(0,0,0,0.1)\"\u003e\n    \u003cimg src=\".assets/erd.svg\" alt=\"Demo Architecture\" width=\"80%\"\u003e\n\u003c/p\u003e\n\n## References\n\n- [Patterns of distributed systems](https://martinfowler.com/articles/patterns-of-distributed-systems/idempotent-receiver.html)\n- [Redux Async Data Flow](https://redux.js.org/tutorials/fundamentals/part-6-async-logic#redux-async-data-flow)\n- [Getting Started with Plaid in 3 Minutes](https://www.youtube.com/watch?v=U9xa1gzyPx8)\n- [Payment Initiation (UK and Europe)](https://plaid.com/docs/api/products/payment-initiation/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodolfoaugusto%2Frwallet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frodolfoaugusto%2Frwallet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodolfoaugusto%2Frwallet/lists"}