Tecnologias Utilizadas • Ferramentas Utilizadas • Instalando e Executando • Pré-requisitos • API Endpoints • Colaboradores
Workshop de Tecnologia da Informação do Sertão Central (WTISC) é um evento da Universidade Federal do Ceará Campus Quixadá, realizado anualmente no primeiro semestre do ano, pelo grupo PET – Sistemas de Informação.
O objetivo do evento é promover e difundir o conhecimento sobre as diversas áreas de Tecnologia da Informação, de forma a fortalecer e motivar a formação técnico-profissional, por meio da troca de experiências entre profissionais e acadêmicos.
O WTISC é evento público realizado desde 2008, e consiste na oferta de palestras e minicursos. Buscando apresentar aos alunos/participantes um pouco da realidade do mercado de trabalho.
Nas palestras, os profissionais contam sua experiência profissional e temas acadêmicos: área de atuação, dicas para se tornar um bom profissional, tecnologias utilizadas, além de diversos temas tecnológicos.
Nos minicursos, são apresentados aos alunos/participantes várias técnicas e ferramentas utilizadas em diversas áreas de atuação no mercado e na academia.
🚧 Em desenvolvimento 🚧
- Gerenciamento de usuários
- Inscrição em minicursos e palestras
- Emissão de certificados
- Criação e gerenciamento de produtos
- Node.js: Plataforma de execução de código JavaScript no servidor.
- Express: Framework para criação de APIs e servidores HTTP.
- Prisma: ORM para manipulação do banco de dados.
- @prisma/client: Cliente gerado automaticamente pelo Prisma para interação com o banco de dados.
- bcrypt: Biblioteca para criptografia de senhas.
- jsonwebtoken: Implementação de JWT para autenticação segura.
- EJS (Embedded JavaScript): Motor de templates para renderizar HTML a partir de JavaScript.
- dotenv: Carrega variáveis de ambiente a partir de um arquivo
.env. - cookie-parser: Middleware para parsing de cookies nas requisições HTTP.
- Jest: Framework de testes em JavaScript para validação das funcionalidades do projeto.
- Puppeteer: Biblioteca para controle de navegadores via código.
- Nodemon: Ferramenta para reiniciar o servidor automaticamente em desenvolvimento.
- Postman: Utilizado para testar e documentar as APIs.
- Node.js
- NPM
- MongoDB (ou acesso ao MongoDB Atlas)
Clone o repositório:
git clone https://github.com/GustavoErick/wtisc-project.gitEntre no diretório do projeto:
cd apinpm installAjueste as variáveis de ambiente. Use o .env.properties.example como referência para criar seu arquivo de configuração .env com suas credenciais de conexão com o banco de dados e chave secreta JWT
DATABASE_URL={Sua URL de conexão ao banco de dados}
JWT_SECRET_KEY={Sua chave secreta JWT}Após isso, podemos gerar o client do Prisma a partir do schema definido no arquivo schema.prisma:
npx prisma generateAgora para execute o servidor:
npm run devApós configurar e rodar o projeto, você pode testar as rotas da API utilizando o Postman. Siga os passos abaixo:
- Instale o Postman: Caso ainda não tenha, baixe e instale o Postman.
- Crie uma nova coleção: No Postman, crie uma nova coleção para agrupar as requisições.
- Adicione as requisições que deseja testar usando a URL http://localhost:8800:
Aqui você encontra uma lista de algumas rotas da API e o que cada uma faz:
| Rota | Descrição |
|---|---|
| POST /auth/register | Registra um usuário detalhes de registro |
| POST /auth/login | Realiza o login/autentica o usuário detalhes de login |
| UPDATE /users/6643fcfdbf78a93ed89008cd | Atualiza dados do usuário detalhes de atualização |
| GET /minicourses | Retorna todos os minicursos detalhes do minicurso |
| POST /subscriptions/minicourses/ | Inscreve-se em um minicurso detalhes da inscrição |
| DELETE /subscriptions/minicourses/66a98e1dd4ec13c270ad4b74 | Deleta uma inscrição detalhes da inscrição deletada |
REQUEST
{
"name": "Antonio",
"surname": "Mágico da Silva",
"cpf": "121212",
"email": "ontoin@email.com",
"password": "cubomagico123"
}RESPONSE
{
{"message": "Usuário criado com sucesso!"}
}REQUEST
{
"cpf": "121212",
"password": "cubomagico123"
}RESPONSE
{
"message": "Login efetuado com sucesso!"
}REQUEST
{
"name": "Anthony"
}RESPONSE
{
"userId": "6643fcfdbf78a93ed89008cd",
"name": "Anthony",
"surname": "Mágico da Silva",
"cpf": "121212",
"Role": "USER"
}RESPONSE
{
"minicourseId": "6642ae53d0d0d582ca8a6448",
"title": "Node.js para iniciantes",
"description": "Aqui você aprenderá o básico de Node.js!",
"prequisites": "Javascript básico",
"instructor": "Regis Pires",
"date": "2024-08-31T15:00:00.000Z",
"time": "15:00",
"location": "Auditório",
"capacity": 60,
"workload": 2,
"enrolled": 4
}REQUEST
{
"minicourseId": "6642ae53d0d0d582ca8a6448"
}RESPONSE
{
"enrollmentId": "66a98e1dd4ec13c270ad4b74",
"userId": "6643fcfdbf78a93ed89008cd",
"minicourseId": "6642ae53d0d0d582ca8a6448",
"status": "ABSENT"
}RESPONSE
{
"message": "Inscrição no minicurso deletada com sucesso!"
}Agradecimento especial a todos aqueles que contribuíram com este projeto!
|
Gustavo Erick |
Beatriz Nascimento |
Samuel Nascimento |
Elysson Alves |
Danilo Gomes |