Coder Social home page Coder Social logo

adrianorsouza / incident-app Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 467 KB

RESTFul API + CRUD SPA React App em um monolítico repo composto por Docker containers

License: BSD 3-Clause "New" or "Revised" License

Shell 0.28% Dockerfile 0.33% PHP 81.88% Blade 15.98% HTML 1.53%
react docker php crud-application incident laravel mysql crud styled-components material-ui docker-compose nodejs

incident-app's Introduction

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

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-app

docker-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 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 item

Tests:  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

Licence

Copyright © 2021, Adriano Rosa [email protected]
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.

incident-app's People

Contributors

adrianorsouza avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.