{"id":22781854,"url":"https://github.com/reinaldoper/myprojectlaravel","last_synced_at":"2025-10-25T22:35:04.735Z","repository":{"id":245929603,"uuid":"819486109","full_name":"reinaldoper/myprojectlaravel","owner":"reinaldoper","description":"Tecnical test for job opportunity at BE backend software house.","archived":false,"fork":false,"pushed_at":"2024-07-03T00:34:29.000Z","size":89,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-05T16:19:11.567Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/reinaldoper.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-06-24T15:44:53.000Z","updated_at":"2024-07-03T00:34:32.000Z","dependencies_parsed_at":"2025-02-05T16:19:16.443Z","dependency_job_id":"59a5b0df-8f14-4c07-a0ec-391d6a008573","html_url":"https://github.com/reinaldoper/myprojectlaravel","commit_stats":null,"previous_names":["reinaldoper/myprojectlaravel"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reinaldoper%2Fmyprojectlaravel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reinaldoper%2Fmyprojectlaravel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reinaldoper%2Fmyprojectlaravel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reinaldoper%2Fmyprojectlaravel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reinaldoper","download_url":"https://codeload.github.com/reinaldoper/myprojectlaravel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246333931,"owners_count":20760638,"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-12-11T21:08:55.768Z","updated_at":"2025-10-25T22:35:04.640Z","avatar_url":"https://github.com/reinaldoper.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Projeto Laravel com MySQL e Docker\n\nEste projeto é um projeto de API construída com Laravel, utilizando MySQL como banco de dados e Docker para facilitar o desenvolvimento e a execução do ambiente.\n\n## Pré-requisitos\n\n- Docker e Docker Compose instalados na máquina.\n- Git instalado para clonar o repositório.\n- Composer instalado na máquina(V2x).\n\n## Passos para Clonar e Configurar o Projeto\n\n1. Clone o repositório:\n\n    ```sh\n    git clone \u003cURL\u003e\n    cd myprojectlaravel\n    ```\n\n2. Crie um arquivo `.env` na raiz do projeto e adicione as seguintes configurações:\n\n    ```env\n    APP_NAME=Laravel\n    APP_ENV=local\n    APP_KEY=base64:1p7qVkorm6QM2KVc1iy+K6Zaz2/dyb9yCeKG5kOQor4=\n    APP_DEBUG=true\n    APP_URL=http://localhost\n\n    LOG_CHANNEL=stack\n    LOG_DEPRECATIONS_CHANNEL=null\n    LOG_LEVEL=debug\n\n    DB_CONNECTION=mysql\n    DB_HOST=127.0.0.1\n    DB_PORT=3306\n    DB_DATABASE=laravel\n    DB_USERNAME=laravel_user\n    DB_PASSWORD=secret\n\n    JWT_SECRET=o0gqNWvsQHv2PDabGQkjUs1bQ5j2QtwIu0zpeDcJIUmJjkurF8hFdWqUKra2JyEE\n    ```\n\n3. Suba o ambiente Docker na raiz da aplicação:\n\n    ```sh\n    docker-compose up -d\n    ```\n\n4. Instale as dependências do Laravel:\n\n    ```sh\n    composer install\n    ```\n\n5. Gere a chave secret da aplicação:\n\n    ```sh\n    php artisan jwt:secret\n    ```\n\n6. Comando para expor a chave secret da aplicação:\n\n    ```sh\n    php artisan vendor:publish --provider=\"Tymon\\JWTAuth\\Providers\\LaravelServiceProvider\"\n    ```\n\n7. Execute as migrações para criar as tabelas no banco de dados:\n\n    ```sh\n    php artisan migrate\n    ```\n\n8. Execute o servidor:\n\n    ```sh\n    php artisan serve\n    ```\n\n## Estrutura do Projeto\n\n- **app/Http/Controllers**: Contém os controladores da aplicação.\n- **app/Models**: Contém os modelos Eloquent.\n- **routes/api.php**: Define as rotas da API.\n- **.env**: Arquivo de configuração de ambiente.\n\n## Rotas da API\n\n### Autenticação\n\n- **Cadastro de Usuário (signup)**\n  \n    ```sh\n    curl -X POST http://localhost:8000/api/signup \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\"email\": \"user@example.com\", \"password\": \"password\"}'\n    ```\n\n- **Login de Usuário (login)**\n  \n    ```sh\n    curl -X POST http://localhost:8000/api/login \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\"email\": \"user@example.com\", \"password\": \"password\"}'\n    ```\n\n### Clientes\n\n- **Listar Clientes**\n  \n    ```sh\n    curl -X GET http://localhost:8000/api/clientes \\\n    -H \"Authorization: Bearer SEU_TOKEN\"\n    ```\n\n- **Adicionar Cliente**\n  \n    ```sh\n    curl -X POST http://localhost:8000/api/clientes \\\n    -H \"Content-Type: application/json\" \\\n    -H \"Authorization: Bearer SEU_TOKEN\" \\\n    -d '{\n        \"nome\": \"Cliente Nome\",\n        \"cpf\": \"320.583.140-34\",\n        \"telefones\": [\n            {\"numero_telefone\": \"(11) 98765-4321\"},\n            {\"numero_telefone\": \"(11) 12345-6789\"}\n        ],\n        \"enderecos\": [\n            {\"rua\": \"Rua Principal\", \"cidade\": \"São Paulo\", \"estado\": \"SP\", \"cep\": \"12345-678\"},\n            {\"rua\": \"Avenida Secundária\", \"cidade\": \"Rio de Janeiro\", \"estado\": \"RJ\", \"cep\": \"54321-098\"}\n        ]\n        }'\n    ```\n\n- **Mostrar Cliente**\n  \n    ```sh\n    curl -X GET http://localhost:8000/api/clientes/1 \\\n    -H \"Authorization: Bearer SEU_TOKEN\"\n    ```\n\n- **Trazer Cliente com Vendas Filtradas por Mês e Ano**\n  \n    ```sh\n    curl -X GET \"http://localhost:8000/api/clientes/1?mes=6\u0026ano=2024\" \\\n    -H \"Content-Type: application/json\" \\\n    -H \"Authorization: Bearer SEU_TOKEN\"\n\n    ```\n\n- **Atualizar Cliente**\n  \n    ```sh\n    curl -X PUT http://localhost:8000/api/clientes/1 \\\n    -H \"Content-Type: application/json\" \\\n    -H \"Authorization: Bearer SEU_TOKEN\" \\\n    -d '{\n        \"nome\": \"Cliente Novo\",\n        \"cpf\": \"320.583.140-34\",\n        \"telefones\": [\n            {\"numero_telefone\": \"(11) 98765-4321\"},\n            {\"numero_telefone\": \"(11) 12345-6789\"}\n        ],\n        \"enderecos\": [\n            {\"rua\": \"Rua Principal\", \"cidade\": \"São Paulo\", \"estado\": \"SP\", \"cep\": \"12345-678\"},\n            {\"rua\": \"Avenida Secundária\", \"cidade\": \"Rio de Janeiro\", \"estado\": \"RJ\", \"cep\": \"54321-098\"}\n        ]\n        }'\n    ```\n\n- **Excluir Cliente**\n  \n    ```sh\n    curl -X DELETE http://localhost:8000/api/clientes/1 \\\n    -H \"Authorization: Bearer SEU_TOKEN\"\n    ```\n\n### Produtos\n\n- **Listar Produtos**\n  \n    ```sh\n    curl -X GET http://localhost:8000/api/produtos \\\n    -H \"Authorization: Bearer SEU_TOKEN\"\n    ```\n\n- **Adicionar Produto**\n  \n    ```sh\n    curl -X POST http://localhost:8000/api/produtos \\\n    -H \"Content-Type: application/json\" \\\n    -H \"Authorization: Bearer SEU_TOKEN\" \\\n    -d '{\"nome\": \"Produto Nome\", \"preco\": 100.00}'\n    ```\n\n- **Mostrar Produto**\n  \n    ```sh\n    curl -X GET http://localhost:8000/api/produtos/1 \\\n    -H \"Authorization: Bearer SEU_TOKEN\"\n    ```\n\n- **Atualizar Produto**\n  \n    ```sh\n    curl -X PUT http://localhost:8000/api/produtos/1 \\\n    -H \"Content-Type: application/json\" \\\n    -H \"Authorization: Bearer SEU_TOKEN\" \\\n    -d '{\"nome\": \"Produto Nome\", \"preco\": 100.00}'\n    ```\n\n- **Excluir Produto**\n  \n    ```sh\n    curl -X DELETE http://localhost:8000/api/produtos/1 \\\n    -H \"Authorization: Bearer SEU_TOKEN\"\n    ```\n\n### Vendas\n\n- **Registrar Venda**\n  \n    ```sh\n    curl -X POST http://localhost:8000/api/vendas \\\n    -H \"Content-Type: application/json\" \\\n    -H \"Authorization: Bearer SEU_TOKEN\" \\\n    -d '{\"cliente_id\": 2, \"produto_id\": 1, \"quantidade\": 2, \"preco_unitario\": 100.00}'\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freinaldoper%2Fmyprojectlaravel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freinaldoper%2Fmyprojectlaravel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freinaldoper%2Fmyprojectlaravel/lists"}