Serviço com responsabilidade de centralizar e disparar notificações de diversos tipos para sistemas e plataformas que utilizam.
O projeto foi divido em 4 módulos:
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
- Docker
- PHP 7 (php-fpm)
- Lumen Framework
- Eloquent ORM
- PSR4, PSR7, ...
- Nginx
- Javascript
- Node
- VueJS + VueX + Vuetify
- Postgres
API + WebSocket + WebServer + WebAPP
docker-compose up --build --force-recreate
- 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
- usuario
- infra
- notification-service
- 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
- plataforma
- 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
- painel administrativo
- notification-service