Este projeto é uma API RESTful desenvolvida em Node.js com Express e Prisma, utilizando um banco de dados relacional para gerenciar usuários. A aplicação permite o cadastro, login, atualização e listagem de usuários.
- Cadastro de Usuário: Permite registrar novos usuários no banco de dados.
- Login de Usuário: Gera um token JWT para autenticação.
- Atualização de Usuário: Atualiza as informações do usuário autenticado (nome e senha).
- Listagem de Usuários: Exibe todos os usuários cadastrados (apenas para teste).
- Node.js: Plataforma para execução do código JavaScript no lado do servidor.
- Express: Framework web minimalista para Node.js.
- Prisma: ORM (Object-Relational Mapping) para facilitar a comunicação com o banco de dados.
- bcrypt: Biblioteca para hashing de senhas.
- JWT (JsonWebToken): Gerenciamento de autenticação por token.
- MongoDB: Banco de dados utilizado.
📦 Projeto
├── 📂 node_modules
├── 📂 routes
│ ├── public.js # Rotas públicas: Cadastro e Login
│ ├── private.js # Rotas privadas protegidas por autenticação
│ ├── userUpdate.js # Rota para atualização de usuário
│ └── userGet.js # Rota para buscar usuários
├── 📂 middlewares
│ └── auth.js # Middleware para autenticação via JWT
├── 📂 prisma
│ └── schema.prisma # Esquema do banco de dados Prisma
├── 📜 .env # Variáveis de ambiente
├── 📜 package.json # Configurações do projeto
├── 📜 server.js # Arquivo principal do servidor
└── 📜 README.md # Documentação do projeto
POST /public/cadastro
- Body:
{ "name": "Nome do usuário", "email": "email@example.com", "password": "senha123" }
POST /public/login
-
Body:
{ "email": "email@example.com", "password": "senha123" }
-
Resposta (200 OK):
{ "token": "JWT_Token_Aqui" }
PUT /private/usuario/:id
-
Headers:
Authorization: Bearer <JWT_Token>
-
Body (opcional):
{ "name": "Novo Nome", "password": "NovaSenha123" }
GET /listar-usuarios-publico
- Resposta:
{ "message": "Usuários listados com sucesso", "users": [ { "id": "1", "name": "Nome do usuário", "email": "email@example.com" } ] }
A API utiliza JWT (JSON Web Token) para proteger rotas privadas. Após o login, o token JWT deve ser incluído no cabeçalho Authorization
para acessar as rotas protegidas.
- Clone o repositório:
git clone https://github.com/seu-usuario/projeto-gerenciamento-usuarios.git
- Instale as dependências:
npm install
- Configure as variáveis de ambiente no arquivo
.env
:JWT_SECRET=seu_segredo_jwt DATABASE_URL=mongodb+srv://<usuario>:<senha>@<cluster>.mongodb.net/<database>?retryWrites=true&w=majority
- Execute as migrações do Prisma:
npx prisma migrate dev
- Inicie o servidor:
npm start
As seguintes variáveis de ambiente devem ser configuradas:
JWT_SECRET
: Segredo utilizado para assinar os tokens JWT.DATABASE_URL
: URL de conexão ao banco de dados MongoDB.
Este projeto é de uso acadêmico e faz parte de uma atividade avaliativa.
Este trabalho foi desenvolvido para a disciplina de Sistemas distribuidos e mobile, lecionada pelo professor Jean Paul. A equipe de desenvolvimento foi composta por:
- Juan Moraes Lopes – RA: 12523219000
- Bruno Almeida Vilela – RA: 323124929
- Luiz Henrique Fernandes do Carmo – RA: 323118606