{"id":27215520,"url":"https://github.com/thomas-dev7/finwallet","last_synced_at":"2026-03-07T10:31:55.754Z","repository":{"id":271326471,"uuid":"913088053","full_name":"Thomas-DEV7/finwallet","owner":"Thomas-DEV7","description":"finWallet é uma aplicação fullstack desenvolvida com Laravel para gestão financeira pessoal. Inclui funcionalidades de cadastro, autenticação, depósitos, transferências e histórico de transações, com foco em segurança, validações e código limpo.","archived":false,"fork":false,"pushed_at":"2025-03-20T11:53:46.000Z","size":320,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-10T04:34:06.603Z","etag":null,"topics":["alpinejs","breeze","challenge","cripto","css","deployment","framework","fullstack","laravel","mobile","mysql","php","responsive-design","security","tailwindcss","wallet"],"latest_commit_sha":null,"homepage":"https://beta.i3finance.com.br","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/Thomas-DEV7.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":"2025-01-07T02:25:24.000Z","updated_at":"2025-02-09T06:19:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"2f1d564c-c4f7-433c-9909-a97c8cd708bf","html_url":"https://github.com/Thomas-DEV7/finwallet","commit_stats":null,"previous_names":["thomas-dev7/finwallet"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Thomas-DEV7/finwallet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomas-DEV7%2Ffinwallet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomas-DEV7%2Ffinwallet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomas-DEV7%2Ffinwallet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomas-DEV7%2Ffinwallet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Thomas-DEV7","download_url":"https://codeload.github.com/Thomas-DEV7/finwallet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomas-DEV7%2Ffinwallet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30212049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T09:02:10.694Z","status":"ssl_error","status_checked_at":"2026-03-07T09:02:08.429Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["alpinejs","breeze","challenge","cripto","css","deployment","framework","fullstack","laravel","mobile","mysql","php","responsive-design","security","tailwindcss","wallet"],"created_at":"2025-04-10T04:25:49.784Z","updated_at":"2026-03-07T10:31:55.708Z","avatar_url":"https://github.com/Thomas-DEV7.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **FinWallet - Digital Wallet Application**\n\n## **Overview**\nFinWallet is a secure, efficient, and user-friendly digital wallet application. Designed for modern financial management, it supports functionalities like balance management, secure transactions, deposit handling, and detailed reversal request workflows. This application is ideal for both end-users and administrators, providing a seamless experience with robust backend capabilities.\n\n---\n\n## **Features**\n- **User Features:**\n  - View current balance.\n  - Perform secure deposits and transfers.\n  - View transaction history with detailed information.\n  - Request transaction reversals.\n\n- **Admin Features:**\n  - Admin dashboard with metrics:\n    - Total users.\n    - Total transactions.\n    - Pending reversal requests.\n  - Manage users:\n    - Edit user information.\n    - Delete user accounts.\n  - Handle reversal requests:\n    - Approve or reject with real-time updates.\n  - View and analyze detailed transaction logs.\n\n---\n\n## **Tech Stack**\n- **Backend:** Laravel 11 (PHP 8.2)\n- **Frontend:** Tailwind CSS, Blade Templates\n- **Database:** MySQL\n- **Authentication:** Laravel Breeze\n- **Containerization:** Docker\n- **Version Control:** Git\n- **Observability:** Logging and request monitoring with Laravel Telescope (optional)\n\n---\n\n## **System Requirements**\n- **PHP:** \u003e= 8.2\n- **Laravel:** 11\n- **Composer:** \u003e= 2.0\n- **Node.js:** \u003e= 18.x with npm or Yarn\n- **Database:** MySQL 8.0 or compatible\n- **Optional:** Docker with Docker Compose\n\n---\n\n## **Installation**\n\n### **Prerequisites**\n1. Ensure PHP, Composer, and Node.js are installed.\n2. Set up a MySQL database for the project.\n\n### **Steps**\n1. Clone the repository:\n   ```bash\n   https://github.com/Thomas-DEV7/finwallet\n   cd finwallet\n   ```\n\n2. Install PHP dependencies:\n   ```bash\n   composer install\n   ```\n\n3. Install Node.js dependencies:\n   ```bash\n   npm install\n   npm run build\n   ```\n\n4. Set up the environment:\n   ```bash\n   cp .env.example .env\n   php artisan key:generate\n   ```\n\n5. Configure the `.env` file with:\n   - **Database credentials**\n   - **Mail settings** (for password recovery emails)\n\n6. Run database migrations and seeders:\n   ```bash\n   php artisan migrate --seed\n   ```\n\n7. Start the development server:\n   ```bash\n   php artisan serve\n   ```\n\n8. Access the application at:\n   ```\n   http://localhost:8000\n   ```\n\n---\n## **Docker Setup**\n\n### **Steps**\n1. Build and start the Docker containers:\n   ```bash\n   docker-compose up -d --build\n   ```\n\n2. Install dependencies:\n   ```bash\n   docker exec -it finwallet-app composer install\n   docker exec -it finwallet-app npm install\n   docker exec -it finwallet-app npm run build\n   ```\n\n3. Set up the environment and application key:\n   ```bash\n   docker exec -it finwallet-app cp .env.example .env\n   docker exec -it finwallet-app php artisan key:generate\n   ```\n\n4. Run database migrations and seeders:\n   ```bash\n   docker exec -it finwallet-app php artisan migrate --seed\n   ```\n\n5. Start Laravel's development server:\n   ```bash\n   docker exec -it finwallet-app php artisan serve --host=0.0.0.0 --port=8000\n   ```\n\n6. Access the application at:\n   ```\n   http://localhost:8000\n   ```\n---\n# Users of system (Seeds) \n###  Important utility to run the system\n\n\nemails: \n   \n   'admin@exemplo.com' (ADMIN)\n\n   'carlos@exemplo.com' (User)\n\n   'ana@exemplo.com' (User)\n\n   'maria@exemplo.com' (user)\n\npassword for all: 'secret'\n---\n## **Folder Structure**\n```\n- app/\n  - Http/\n    - Controllers/        # Application controllers\n    - Middleware/         # Custom middlewares\n  - Models/               # Eloquent models\n- database/\n  - migrations/           # Database migrations\n  - seeders/              # Database seeders\n- resources/\n  - views/                # Blade templates\n  - css/                  # Custom styles\n  - js/                   # JavaScript files\n- routes/\n  - web.php               # Web routes\n- public/\n  - images/               # Static assets (e.g., logo)\n```\n\n---\n\n## **Key Models**\n### **User**\nRepresents users in the application.\n- **Attributes:** `uuid`, `name`, `email`, `password`, `role`, `balance`.\n\n### **Transaction**\nTracks all user transactions.\n- **Attributes:** `uuid`, `user_id`, `sender_id`, `recipient_id`, `amount`, `type`, `related_transaction_id`.\n\n### **ReversalRequest**\nHandles requests for transaction reversals.\n- **Attributes:** `uuid`, `user_uuid`, `transaction_uuid`, `comment`, `status`.\n\n---\n\n## **Core Routes**\n### **User Routes**\n| Method | Endpoint                  | Action                        |\n|--------|---------------------------|-------------------------------|\n| GET    | /dashboard                | Show user dashboard           |\n| POST   | /wallet/deposit           | Handle deposit transactions   |\n| POST   | /wallet/transfer          | Handle balance transfers      |\n| POST   | /transactions/reversal-request | Submit reversal request |\n\n### **Admin Routes**\n| Method | Endpoint                          | Action                        |\n|--------|-----------------------------------|-------------------------------|\n| GET    | /admin/dashboard                  | Admin dashboard overview      |\n| GET    | /admin/users                      | Manage users                  |\n| POST   | /admin/reversal-requests/{uuid}/approve | Approve reversal request   |\n| POST   | /admin/reversal-requests/{uuid}/reject  | Reject reversal request    |\n\n---\n\n## **Admin Dashboard**\nDisplays key metrics:\n- Total users.\n- Total transactions.\n- Pending reversal requests.\n- Logs of recent transactions (latest 10).\n\n---\n\n## **Development Notes**\n\n### **Transactions**\n- Transaction types include:\n  - `deposit`: Adding funds to a user's account.\n  - `transfer`: Moving funds between users.\n  - `refund`: Reversal of a previous transaction.\n\n### **Reversal Requests**\n- Prevent duplicate requests for the same transaction.\n- Admins can approve or reject requests.\n\n### **Database Seeders**\n- Creates initial users and transaction records for testing:\n  - **Users:** Includes admin and multiple regular users.\n  - **Transactions:** Various types to simulate real-world data.\n\n---\n\n\n\n\u003c!-- ## **Screenshots**\n### **User Dashboard**\n![User Dashboard](path-to-user-dashboard.png)\n\n### **Admin Dashboard**\n![Admin Dashboard](path-to-admin-dashboard.png)\n\n--- --\u003e\n\u003c!-- \n## **Contributing**\n1. Fork the repository.\n2. Create a feature branch:\n   ```bash\n   git checkout -b feature-name\n   ```\n3. Commit and push your changes:\n   ```bash\n   git commit -m \"Add feature\"\n   git push origin feature-name\n   ```\n4. Submit a pull request.\n\n--- --\u003e\n\u003c!-- \n## **License**\nThis project is licensed under the MIT License. --\u003e\n\n\n## **User Test**\n\n### **Descrição**\nO teste verifica a criação de um usuário no banco de dados, assegurando que a senha seja armazenada como um hash seguro.\n\n### **Código**\n```php\n\u003c?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Models\\User;\nuse Illuminate\\Foundation\\Testing\\RefreshDatabase;\nuse Illuminate\\Support\\Facades\\Hash;\n\nclass UserTest extends TestCase\n{\n    use RefreshDatabase;\n\n    /** @test */\n    public function it_creates_a_user_successfully()\n    {\n        // Dados simulados de um usuário\n        $userData = [\n            'uuid' =\u003e (string) \\Illuminate\\Support\\Str::uuid(),\n            'name' =\u003e 'Test User',\n            'email' =\u003e 'testuser@example.com',\n            'password' =\u003e Hash::make('password123'), // Usando Hash::make\n            'role' =\u003e 'user',\n            'balance' =\u003e 500.00,\n        ];\n\n        // Criar o usuário\n        $user = User::create($userData);\n\n        // Verificar se o usuário foi criado corretamente no banco de dados\n        $this-\u003eassertDatabaseHas('users', [\n            'email' =\u003e 'testuser@example.com',\n            'name' =\u003e 'Test User',\n        ]);\n\n        // Verificar se a senha foi armazenada como um hash\n        $this-\u003eassertTrue(Hash::check('password123', $user-\u003epassword));\n    }\n}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomas-dev7%2Ffinwallet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthomas-dev7%2Ffinwallet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomas-dev7%2Ffinwallet/lists"}