Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adrianorsouza/incident-app
RESTFul API + CRUD SPA React App em um monolítico repo composto por Docker containers
https://github.com/adrianorsouza/incident-app
crud crud-application docker docker-compose incident laravel material-ui mysql nodejs php react styled-components
Last synced: 15 days ago
JSON representation
RESTFul API + CRUD SPA React App em um monolítico repo composto por Docker containers
- Host: GitHub
- URL: https://github.com/adrianorsouza/incident-app
- Owner: adrianorsouza
- License: bsd-3-clause
- Created: 2021-03-20T17:44:06.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-03-21T15:24:42.000Z (almost 4 years ago)
- Last Synced: 2024-11-29T09:35:36.332Z (2 months ago)
- Topics: crud, crud-application, docker, docker-compose, incident, laravel, material-ui, mysql, nodejs, php, react, styled-components
- Language: PHP
- Homepage:
- Size: 456 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
INCIDENT APP
============Simples RESTFul API e SPA _(Single Page Application)_ App para gerenciar incidentes
desenvolvido com seguinte stack:#### Frontend
Framework/Lib | _
------------------ | ---------------
ReactJS | UI Interfaces
Redux | Data Store
React Router | Routing
Material UI | UI Framework
Formik | Data Validation#### Backend
Framework/Software | _
------------------ | ---------------
Laravel | REST API
MySQL | Storage#### Infraestrutura
Plataforma | _
------------------ | ---------------
Docker | Containerized development workflow## Instruções para teste/dev ambiente local
### Requisitos para executar este projeto localmente
- Git - https://git-scm.com
- Docker - https://www.docker.com_Por questões de simplicidade, este projeto utiliza um simples Docker setup
para execução em ambiente local/desenvolvimento **não recomendado para produção**._## Setup Básico (Docker)
Clonar este projeto localmente:
git clone [email protected]:adrianorsouza/incident-app.git
Start Docker Compose:
cd incident-appdocker-compose up -d
Após o start completo de todos os containers abra o browser e acesse o seguinte endereço:
http://localhost:3000
## Backend Setup
Após start up dos containers o MySQL database estará pronto para receber conexões, no entanto,
é necessário efetuar o _migration_ da tabela `incidents` para o funcionamento correto
do app, conforme detalhado a seguir.### Database Migrations
Execute o comando artisan migration no `backend` container:
docker-compose exec api bash -c "php artisan migrate:install"
docker-compose exec api bash -c "php artisan migrate:status"
docker-compose exec api bash -c "php artisan migrate"### Database seed 'fake' data
O comando abaixo irá popular o database com dados fictícios de incidentes para melhor
simular os testes com a interface do frontend:docker-compose exec api bash -c "php artisan db:incident -n 100"
Remover todos os registros na tabela `incidents`:
docker-compose exec api bash -c "php artisan db:incident --wipe"
## API Docs
Incident REST API Docs pode ser acessada via [Postman](https://www.postman.com) no seguinte endereço:
https://documenter.getpostman.com/view/4934683/Tz5v3avj
### Unit Tests (Backend)
docker-compose exec api bash -c "php artisan test"```
PASS Tests\Feature\IncidentControllerTest
✓ list incidents
✓ validation create new incident with empty data
✓ validation create incident with invalid data
✓ create incident
✓ casting result type
✓ show incident item
✓ show incident item not found
✓ update incident not found
✓ validation update item
✓ update incident
✓ delete incident itemTests: 11 passed
Time: 1.28s
```> _Por questões de simplicidade e praticidade frontend não possui unit testes_
### Data Structure / Validation
Não foi considerado alguma regra de negócio para validação de dados, no entanto,
user input possuí o mínimo necessário para validação dos dados.Column | Type | Max Length | Default | Required | Obs
-------------|------------|---------------------| -------- | -------- | -----
title | varchar | 255 | NULL | Sim | --
description | text | 500 | NULL | Sim | (suporta ate 4096 bytes).
level | varchar | 10 | NULL | Sim | high, medium, low
type | varchar | 10 | NULL | Sim | alarm, incident, others.
status | tinyint | 1 | 1 | Sim | 0, 1.## Author
[**Adriano Rosa**](https://adrianorosa.com)
## Licence
Copyright © 2021, Adriano Rosa
All rights reserved.For the full copyright and license information, please view the LICENSE
file that was distributed within the source root of this project.