/comunication-service

Docker + NodeJS + VueJS + Vuex + PHP 7 + Postgres

Primary LanguagePHPGNU Affero General Public License v3.0AGPL-3.0

NotificationService (notification-service)

Sobre

Serviço com responsabilidade de centralizar e disparar notificações de diversos tipos para sistemas e plataformas que utilizam.

Módulos

O projeto foi divido em 4 módulos:

  • API
  • Database - Porta 5432
  • WebApp -
  • WebSocket

Para reunir todos os módulos acima, foi criada uma stack Docker da aplicação, contendo os serviços abaixo:

  • webapp-service - Porta 8080
  • api-service - Porta 9000
  • webserver-service - Porta 80
  • websocket-service - Porta 8001
  • database-service - Porta 5432
Tecnologias utilizadas
  • Docker
  • PHP 7 (php-fpm)
    • Lumen Framework
    • Eloquent ORM
    • PSR4, PSR7, ...
  • Nginx
  • Javascript
    • Node
    • VueJS + VueX + Vuetify
  • Postgres

Como inicializar a Stack?

API + WebSocket + WebServer + WebAPP

docker-compose up --build --force-recreate

To-Do

  • Backend
    • notification-service
      • infra
        • nginx
        • php-fpm
        • postgres
        • websocket
      • api
        • usuario
          • consultar ( getOne && getAll )
          • cadastrar
          • alterar
          • remover
        • plataforma
          • consultar ( getOne && getAll )
          • cadastrar
          • alterar
          • remover
        • sistema
          • consultar ( getOne && getAll )
          • cadastrar
          • alterar
          • remover
        • tipo_notificao
          • consultar ( getOne && getAll )
          • cadastrar
          • alterar
          • remover
        • tipo_notificacao_has_plataforma
          • consultar ( getOne && getAll )
          • cadastrar
          • alterar
          • remover
        • notificacoes
          • consultar ( getOne && getAll )
          • cadastrar
          • alterar
          • remover
        • Authenticação**
          • Criar camada de autenticação na aplicação
          • Definir rotas e grupos para aplicar tratamentos de acordo com login válido
        • JSON Web Token (JWT)
          • Criar Controller para Autenticação
          • Criar de JSON Web Token (JWT) encapsulando dados do usuário e de expiração da token
          • Criar Middleware para interceptar requisições HTTP e validar dados informados
  • Database
    • modelagem
    • criação
    • entry-point
    • script com dados iniciais
  • Frontend
    • notification-service
      • painel administrativo
        • plataforma
          • listar
          • cadastrar
          • alterar
          • remover
        • sistema
          • listar
          • cadastrar
          • alterar
          • remover
        • notificacoes
          • enviar
          • listar
        • mensagem
          • listar
          • cadastrar
          • remover
        • usuario
          • listar
          • cadastrar
          • alterar
          • remover
      • autenticacao
        • login (senha mestra temporariamente)
        • login - utilizando Backend
        • login - utilizando JWT
        • Controle de Acesso
      • Componente Sininho
        • observar WebSocket
        • exibir 5 últimas notificações
        • visualizar todas as notificações do usuário
        • visualizar todas as notificações do usuário em um sistema específico
        • marcar notificação como lida
        • diálogo para visualização de todas as notificações
      • Outros
        • Definição de usuario como administrador
        • Restrição de acesso a alguns recursos para quem não tem perfil admin
        • Estudo de utilização de CORS somente para sistemas cadastrados
        • Definição de vinculo entre usuario e sistemas para que a aplicação cadastrada consiga consumir o serviço
        • Criação dinâmica de token para acesso pelos sistemas cadastrados ao sistema de notificacao