//import sequilizeconstSequelize=require("sequelize");//Conection databse ("namedv", "user Workbench", "password user")constsequelize=newSequelize("...","...","...",{host: "localhost",//Execcting in localhostdialect: "mysql",//logging: false,});//Send Messagesequelize.authenticate().then(function(){console.log("Conexão com banco de dados!");}).catch(function(erro){console.log("Erro na conexão com o banco de dados"+erro);});//exportmodule.exports=sequelize;
Criação da tabela de usuarios
Localização: backend/models/Users.js
Autenticação de usuario e Senha criptografada
Localização: backend/middleware/auth.js
Rota de Registro de usuário
app.post("/register",async(req,res)=>{vardados=req.body;dados.password=awaitbcrypt.hash(dados.password,6);awaitUsers.create(dados).then(()=>{returnres.json({mensagem: "Usuário cadastrado com sucesso!",});}).catch(()=>{returnres.status(400).json({mensagem: "Erro: Usuário não cadastrado com sucesso!",});});});
Autenticação de usuario e Senha criptografada
Localização: backend/middleware/uploadIamge.js
Armazena os arquivos na pasta: ./public/upload/docUsers
Rota de Upload de documentos PDF
app.post("/upload-docs",uploadDocs.single("image"),(req,res)=>{//Registrando no banco de dadosif(req.file){Docs.create({name: req.body.name,documentType: req.body.documentType,documentCode: req.body.documentCode,documentCpf: req.body.documentCpf,documentRg: req.body.documentRg,documentDate: req.body.documentDate,image: req.file.filename,}).then(()=>{returnres.json({mensagem: "Upload realizado com sucesso!",});}).catch(()=>{returnres.status(400).json({mensagem: "Erro: Upload não realizado!",});});}});
Lista de Rotas implementadas no Sistema
/ -> Main
/register -> Cadastro de usuários
/listUsers -> Listagem de Usuários e implementação da Páginação das tabelas no Front-End
/vizualizar-usuario/:id -> Vizualizar usuário pelo ID quando selecionado
/edit-user/:id -> Editar usuário com o ID seleionado
/deleteUsers/:id -> Apagar usuário do sistema pelo ID selecionado
/login -> Login com email e Senha(Senha criptografada)
/upload-docs -> Upload de documentos tipo PDF
/list-files -> Listagem dos documentos
/vizualizar-documento/:id -> Vizualizar documento pelo ID quando selecionado
/list-prontuario -> Apagar documento do sistema pelo ID selecionado
/deleteFiles/:id -> Listagem de tipo de documento (Prontuarios)
Autentificação de usuário: frontend/contexts/auth.jsx:
Pagina criadas
Arquivos
EditUser
Home
Login -> Privado, somente para usuários autenticados
Prontuarios
UsersList -> Privado, somente usuários com permissão de Adminstrador e Gerente
VizualizarDocs
API
Services: frontend/services/api.jsx:
//User Authentication//JWTconstjwt=require('jsonwebtoken');const{
promisify
}=require('util');//Export JWTmodule.exports={eAdmin: function(req,res,next){constauthHeaders=req.headers.authorization;if(!authHeaders){returnres.status(400).json({erro: true,message: "Erro: Necessario realizar o login para acessar a página!"});}const[bearer,token]=authHeaders.split(' ');console.log("bearer: "+bearer+" Token: "+token)if(!token){returnres.status(400).json({erro: true,message: "Erro: Necessario realizar o login para acessar a página!"});}//if valid TOKENtry{constdecode=promisify(jwt.verify)(token,"95d30169a59c418b52013315fc81bc99fdf0a7b03a116f346ab628496f349ed5");req.userId=decode.id;returnnext();}catch(error){returnres.status(400).json({erro: true,message: "Erro: Necessario realizar o login para acessar a página!"});}}}```