{"id":22001963,"url":"https://github.com/andynur/rapid-wallet","last_synced_at":"2026-04-19T13:31:52.134Z","repository":{"id":249169063,"uuid":"830617024","full_name":"andynur/rapid-wallet","owner":"andynur","description":"This project is built with Laravel 11, providing functionalities for deposits and withdrawals","archived":false,"fork":false,"pushed_at":"2024-07-25T07:30:23.000Z","size":2716,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T05:41:44.285Z","etag":null,"topics":["guzzle","laravel","pest","postgresql","redis","scribe","spatie-laravel-permission"],"latest_commit_sha":null,"homepage":"","language":"PHP","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/andynur.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-07-18T16:07:18.000Z","updated_at":"2024-07-25T07:29:48.000Z","dependencies_parsed_at":"2024-07-25T02:27:08.291Z","dependency_job_id":null,"html_url":"https://github.com/andynur/rapid-wallet","commit_stats":null,"previous_names":["andynur/rapid-wallet"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/andynur/rapid-wallet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andynur%2Frapid-wallet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andynur%2Frapid-wallet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andynur%2Frapid-wallet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andynur%2Frapid-wallet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andynur","download_url":"https://codeload.github.com/andynur/rapid-wallet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andynur%2Frapid-wallet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32009089,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["guzzle","laravel","pest","postgresql","redis","scribe","spatie-laravel-permission"],"created_at":"2024-11-29T23:15:45.177Z","updated_at":"2026-04-19T13:31:52.110Z","avatar_url":"https://github.com/andynur.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rapid Wallet\n\nThis project is built with Laravel 11, providing functionalities for deposits and withdrawals. It includes asynchronous processing, Redis caching, testing with Pest, comprehensive API documentation using Scribe and simple authorization.\n\n## Features\n\n- **Deposit and Withdrawal**: Allows users to deposit and withdraw funds from their wallet.\n- **Asynchronous Processing**: Uses event-driven architecture for processing transactions asynchronously.\n- **Redis Caching**: Implements Redis caching for frequently accessed data to improve performance.\n- **Detailed Logging**: Includes detailed logging for transactions and error handling.\n- **Automated Testing**: Contains unit tests and integration tests using Pest to ensure code quality.\n- **API Documentation**: Generates comprehensive API documentation using Scribe.\n- **Role-based Access Control**: Uses `spatie/laravel-permission` to manage roles and permissions.\n\n## Libraries and Tools Used\n\n- **Laravel**: The PHP framework used for building the application.\n- **Redis**: Used for caching frequently accessed data.\n- **Scribe**: Generates API documentation.\n- **Pest**: Used for unit and integration testing.\n- **Laravel Horizon**: Manages Redis queues.\n- **spatie/laravel-permission**: Manages roles and permissions for RBAC.\n- **GuzzleHTTP**: Simplifies HTTP requests and integrations.\n\n## Techniques Implemented\n\n- **Event-Driven Architecture**: Uses events and listeners for asynchronous processing.\n  - [Laravel Events and Listeners](https://laravel.com/docs/11.x/events)\n- **Redis Caching**: Implements caching strategy to improve performance.\n  - [Laravel Redis](https://laravel.com/docs/11.x/redis)\n- **Automated Testing**: Ensures code quality through unit and integration tests.\n  - [Pest](https://pestphp.com/)\n- **API Documentation**: Generates API documentation automatically.\n  - [Scribe](https://scribe.knuckles.wtf/)\n- **Role-based Access Control (RBAC)**: Manages user roles and permissions.\n  - [spatie/laravel-permission](https://spatie.be/docs/laravel-permission/v4/introduction)\n\n## Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/andynur/rapid-wallet.git\n   cd rapid-wallet\n   ```\n\n2. Install dependencies:\n   ```bash\n   composer install\n   yarn # or npm install\n   ```\n\n3. Copy the `.env` file and configure your environment variables:\n   ```bash\n   cp .env.example .env\n   ```\n\n4. Generate application key:\n   ```bash\n   php artisan key:generate\n   ```\n\n5. Set up the database and run migrations:\n   ```bash\n   php artisan migrate\n   ```\n\n6. Seed the database with roles and permissions:\n   ```bash\n   php artisan db:seed\n   ```\n\n7. Start the local development server:\n   ```bash\n   php artisan serve\n   ```\n\n8. Start the queue listener\n   ```bash\n   php artisan queue:work\n   ```   \n\n## Usage\n\n### UI Client\n\nAccess the login page at `http://localhost:8000/login`.\n\n![Login UI Preview](./public/img/ss-login.png)\n\n### Running Tests\n\nRun the unit and integration tests using Pest:\n```bash\nphp artisan test\n```\n\n### Documentation\n\nGenerate API documentation using Scribe:\n```bash\nphp artisan scribe:generate\n```\n\nAccess the generated documentation at `http://localhost:8000/docs`.\n\n![Scribe UI Preview](./public/img/ss-docs.png)\n\n\n## Role-based Access Control\n\nThis project uses `spatie/laravel-permission` to manage roles and permissions. The default roles are:\n\n- **Admin**: Has access to all endpoints and can manage users.\n- **User**: Has access to their own transactions and wallet operations.\n\n## Contributing\n\n1. Fork the repository.\n2. Create a new branch (`git checkout -b feature/your-feature`).\n3. Make your changes and commit them (`git commit -am 'Add some feature'`).\n4. Push to the branch (`git push origin feature/your-feature`).\n5. Create a new Pull Request.\n\n## License\n\nThis project is licensed under the MIT License.\n\n## References\n\n- [Laravel Documentation](https://laravel.com/docs)\n- [Laravel Events and Listeners](https://laravel.com/docs/11.x/events)\n- [Laravel Redis](https://laravel.com/docs/11.x/redis)\n- [Pest](https://pestphp.com/)\n- [Scribe](https://scribe.knuckles.wtf/)\n- [spatie/laravel-permission](https://spatie.be/docs/laravel-permission/v4/introduction)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandynur%2Frapid-wallet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandynur%2Frapid-wallet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandynur%2Frapid-wallet/lists"}