Sistema de gerenciamento de rede desenvolvido utilizando JavaScript (Node.JS e Electron.JS) para a Interface e gerenciamento de usuário e Python com scripts para comunicação com a placa de rede e obtenção de dados da rede.
.
├── interface
│ ├── assets/
│ ├── db/
│ ├── modules/
│ ├── *.html
│ └── *.js
├── network_scan.py
├── wifi_password.py
├── requirements.txt
├── .gitignore
└── README.md
interface/*
- Pasta destinada ao código da interface e fluxo de login
interface/db/
- Diretório de armazenamento dos arquivos de banco de dados
interface/assets/*
- Contém arquivos da estilização do programa (Front da aplicação)
interface/modules/
- Códigos referente ao core da comunicação do projeto (Node.JS)
network_scan.py
- Script responsável pelo escaneamento da rede para descoberta de dispositivos
wifi_password.py
- Script responsável pela obtenção dos dados de conexão de Wifis conhecidos
requirements.txt
- Arquivo contendo os requisitos de instalação do Python para o projeto
O princípio do projeto é ter uma autenticação funcional para o administrador e funcionalidades para auxiliar no controle da rede.
A lógica desse fluxo é feita em JavaScript (Node.JS)
sequenceDiagram
Interface ->> Main: Is my first time?
Main -->> Interface : Yes
Interface ->> Registration: user_data: {id, password}
Registration-->>Interface: Save on DB and restart app
Interface ->> Main: Is my first time?
Main -->> Interface : No
Interface -x Login: user_data: {id,wrong password}
Interface ->> Login: user_data: {id, password}
Login->> Dashboard App: Open App
- Verificação se é a primeira vez usando o app -- É realizada uma leitura no arquivo .db/.sqlite para verificar se possui algum registro de usuário. Caso não, é exibida a tela de Registro, caso sim, é direcionado a tela de Login
Todas as senhas são armazenas em Hash para melhor segurança.
- Exibição de erros -- Caso sejam enviados dados inválidos ou incompatíveis com o Login criado anteriormente, é exibida uma mensagem de erro para o usuário
- Varredura na rede para descobrir quais dispositivos estão conectados; -- Depois da varredura, é exibida uma tabela com IP, Endereço MAC e o Nome do Dispositvo identificado pelo roteador.
- Design Amigável;
- Loading para simbolizar carregamento e melhor a experiência do usuário;
- Busca de Wifis conhecidos e suas senhas;
- Opção de deletar os dados fornecidos de acordo com os requisitos da LGPD;
Este projeto foi desenvolvido com as seguintes tecnologias:
- Estar em um sistema Windows para melhor funcionamento do programa.
- Ter Git para clonar o projeto.
- Ter Python instalado.
- Ter Node.JS instalado.
- Ter Npcap de driver instalado para comunicação com a placa de rede.
- Ter Microsoft Visual C++ 14.0 ou mais recentes instalado para o funcionamento do netifaces do Python.
# Iniciar a aplicação:
$ pip install -r requirements.txt
$ cd Interface
$ npm install
$ npm start