{"id":21959356,"url":"https://github.com/adrianorsouza/incident-app","last_synced_at":"2026-01-31T16:33:40.480Z","repository":{"id":73267179,"uuid":"349795595","full_name":"adrianorsouza/incident-app","owner":"adrianorsouza","description":"RESTFul API + CRUD SPA React App em um monolítico repo composto por Docker containers","archived":false,"fork":false,"pushed_at":"2021-03-21T15:24:42.000Z","size":467,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-10T20:46:54.728Z","etag":null,"topics":["crud","crud-application","docker","docker-compose","incident","laravel","material-ui","mysql","nodejs","php","react","styled-components"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adrianorsouza.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-03-20T17:44:06.000Z","updated_at":"2021-03-21T15:24:44.000Z","dependencies_parsed_at":"2023-02-26T11:30:29.375Z","dependency_job_id":null,"html_url":"https://github.com/adrianorsouza/incident-app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/adrianorsouza/incident-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianorsouza%2Fincident-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianorsouza%2Fincident-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianorsouza%2Fincident-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianorsouza%2Fincident-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adrianorsouza","download_url":"https://codeload.github.com/adrianorsouza/incident-app/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianorsouza%2Fincident-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28947656,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T14:26:55.697Z","status":"ssl_error","status_checked_at":"2026-01-31T14:26:52.545Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["crud","crud-application","docker","docker-compose","incident","laravel","material-ui","mysql","nodejs","php","react","styled-components"],"created_at":"2024-11-29T09:27:51.315Z","updated_at":"2026-01-31T16:33:40.462Z","avatar_url":"https://github.com/adrianorsouza.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"INCIDENT APP\n============\n\nSimples RESTFul API e SPA _(Single Page Application)_ App para gerenciar incidentes \ndesenvolvido com seguinte stack:\n\n#### Frontend\n\nFramework/Lib      | _\n------------------ | ---------------\nReactJS            | UI Interfaces\nRedux              | Data Store\nReact Router       | Routing\nMaterial UI        | UI Framework\nFormik             | Data Validation\n\n\n#### Backend\n\nFramework/Software | _\n------------------ | ---------------\nLaravel            | REST API\nMySQL              | Storage\n\n#### Infraestrutura\n\nPlataforma         | _\n------------------ | ---------------\nDocker             | Containerized development workflow\n\n\n## Instruções para teste/dev ambiente local\n\n### Requisitos para executar este projeto localmente\n\n- Git - https://git-scm.com\n- Docker - https://www.docker.com\n\n_Por questões de simplicidade, este projeto utiliza um simples Docker setup \npara execução em ambiente local/desenvolvimento **não recomendado para produção**._ \n\n## Setup Básico (Docker)\n\nClonar este projeto localmente:\n\n    git clone git@github.com:adrianorsouza/incident-app.git\n\n\nStart Docker Compose:\n    \n    cd incident-app\n\n    docker-compose up -d\n\nApós o start completo de todos os containers abra o browser e acesse o seguinte endereço: \n\nhttp://localhost:3000\n\n\n## Backend Setup\n\nApós start up dos containers o MySQL database estará pronto para receber conexões, no entanto, \né necessário efetuar o _migration_ da tabela `incidents` para o funcionamento correto\ndo app, conforme detalhado a seguir.\n\n\n### Database Migrations\n\nExecute o comando artisan migration no `backend` container: \n\n    docker-compose exec api bash -c \"php artisan migrate:install\" \n    docker-compose exec api bash -c \"php artisan migrate:status\"\n    docker-compose exec api bash -c \"php artisan migrate\"\n\n\n### Database seed 'fake' data\n\nO comando abaixo irá popular o database com dados fictícios de incidentes para melhor \nsimular os testes com a interface do frontend:\n\n    docker-compose exec api bash -c \"php artisan db:incident -n 100\"\n\nRemover todos os registros na tabela `incidents`:\n\n    docker-compose exec api bash -c \"php artisan db:incident --wipe\"\n\n\n## API Docs \n\nIncident REST API Docs pode ser acessada via [Postman](https://www.postman.com) no seguinte endereço: \n\nhttps://documenter.getpostman.com/view/4934683/Tz5v3avj\n\n\n### Unit Tests (Backend)\n    \n    docker-compose exec api bash -c \"php artisan test\"\n\n```\nPASS  Tests\\Feature\\IncidentControllerTest\n✓ list incidents\n✓ validation create new incident with empty data\n✓ validation create incident with invalid data\n✓ create incident\n✓ casting result type\n✓ show incident item\n✓ show incident item not found\n✓ update incident not found\n✓ validation update item\n✓ update incident\n✓ delete incident item\n\nTests:  11 passed\nTime:   1.28s\n```\n\n\u003e _Por questões de simplicidade e praticidade frontend não possui unit testes_\n\n\n### Data Structure / Validation\n\nNão foi considerado alguma regra de negócio para validação de dados, no entanto, \nuser input possuí o mínimo necessário para validação dos dados.\n\nColumn       | Type       | Max Length          | Default  | Required | Obs\n-------------|------------|---------------------| -------- | -------- | -----\ntitle        | varchar    | 255                 | NULL     | Sim      | --\ndescription  | text       | 500                 | NULL     | Sim      | (suporta ate 4096 bytes).\nlevel        | varchar    | 10                  | NULL     | Sim      | high, medium, low\ntype         | varchar    | 10                  | NULL     | Sim      | alarm, incident, others.\nstatus       | tinyint    | 1                   | 1        | Sim      | 0, 1.\n\n\n## Author\n\n[**Adriano Rosa**](https://adrianorosa.com)\n\n## Licence\n\nCopyright © 2021, Adriano Rosa  \u003cinfo@adrianorosa.com\u003e  \nAll rights reserved.\n\nFor the full copyright and license information, please view the LICENSE\nfile that was distributed within the source root of this project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrianorsouza%2Fincident-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadrianorsouza%2Fincident-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrianorsouza%2Fincident-app/lists"}