GithubHelp home page GithubHelp logo

processo-seletivo-ledes's Introduction

Falcão

Bot developer | CS undergraduate | Robotics enthusiast | Cat owner | 🐍🤖🐱

Twitter Linkedin gmail npm dev.to

github followers

🐱‍💻 About me:

  • 👨‍💻 Gabriel Falcão, 18 years
  • 📊 I aim to be a data scientist one day
  • 🤖 I love building discord bots and studying data structures
  • 📚 Currently studying Python, Data Science and Backend development
  • 🧠 I'm enthusiastic about robotics and educational programs
  • 🌐 I like creating and supporting open source projects
  • 💜 I'm always trying to be a reference for everyone in my topics of interest

💻 Skills and Tools

My skills and tools: html,css,js,nodejs,typescript,c,cpp,vue,nuxtjs,django,express,netlify,postgres,mongodb,bots,raspberrypi,linux,bash,git,vscode,github,vercel,markdown,arduino,postman

✍️ My dev.to articles:

🐦 My Threads on Twitter (PT-BR):

🔍 Programação competitiva (Python)

gitstats favorite langs

processo-seletivo-ledes's People

Contributors

davilnogueira avatar falcao-g avatar neural-matheus avatar pedro-varela avatar wagnerrdev avatar

Stargazers

 avatar

Watchers

 avatar

processo-seletivo-ledes's Issues

Aprovar ou Reprovar um cadastro

O perfil deve administrador deve ser responsável por aprovar ou reprovar um cadastro.Para realizar a tal situação o cadastro do usuário deve estar em "SITUACAO" análise .Para validar se é o usuario é administrator, confiar no JWT TOKEN.

Requisição HTTP para Aprovacao/Reprovacao Cadastro

Método: PATCH

Parâmetros da Solicitação

  • Headers:
    • Authorization: Bearer SEU_TOKEN_DE_AUTENTICACAO
    • Content-Type: application/json

Corpo da Solicitação

{
 "id_usuario" : "1"
  "situacao": "Reprovado",
}

Responses

{
"status": 204,
"message": "Alterado com sucesso"
}

Mensagem de erro

{
  "status": 0,
  "message": "Mensagem de erro"
}

Fix: Situações na edição do usuário

Na edição do usuário, não está sendo incluído o campo "situation" como "ANALYSIS" e também não está sendo verificado se o campo "situation" está como "APPROVED" ou "DISAPPROVED", que são as únicas duas situações que podem ser editadas.

Arquivos para alteração :

  • src/user/user.controller.js
  • src/database/user.js

Criar novo usuário

Requisição HTTP para Criar Novo Usuário

Método: POST

Parâmetros da Solicitação

  • Headers:
    • Authorization: Bearer SEU_TOKEN_DE_AUTENTICACAO
    • Content-Type: application/json

Corpo da Solicitação

{
  "nome": "João",
  "cargo": "Desenvolvedor",
  "cpf": "98765432100",
  "nascimento": "1990-05-15",
  "foto" : "base64",
  "password" : "senha"
}

No campo "situacao" e salvar com o tipo "ANALISE"
Sucesso ao salvar deve retornar :

{
  "nome": "João",
  "cargo": "Desenvolvedor",
  "cpf": "98765432100",
  "nascimento": "1990-05-15",
  "foto" : "base64",
  "situacao" : "ANALISE"
}

Mensagem de erro ao executar a ação:

{
  "status": 0,
  "message": "Mensagem de erro"
}

Criar uma rota de desautenticação

A página de desautenticação joga o usuário de volta para a página de login/cadastro, entretanto isso não limpa o JWT armazenado nos cookies, embora como o usuário seja jogado para essas páginas novamente, o único jeito de ele voltar a acessar as informações é logando de novo, então está "funcionando" mesmo que não 100% do jeito que deveria

Configurar a autenticação com JWT

um dos requisitos é a autenticação do usuário, decidimos fazer isso com o uso de JWT (json web token), acho que é importante já deixar esse middleware pronto, assim nossas outras rotas recebem as informações do usuário atráves do JWT

Padronização de pastas

Pessoal já tivemos uma pequena discordância em relação as pastas, o back quer criar uma pasta node e o front quer criar uma pasta Web com uma pasta Html dentro, que tal seguirmos a seguinte estrutura:

├── src
│   ├── html
│   ├── css
│   ├── middleware
│   ├── auth
│   ├── database
│   ├── media
│   ├── index.js
├── .gitignore
├── package.json
├── package-lock.json

E aí a gente vai vendo quais outras pastas são necessárias

Editar usuário

Para editar o usuário deve ser apenas permitido aqueles que estão com campo "situacao" "APROVADO" ou "REPROVADO", caso contrário deve emitir uma mensagem de erro não permitindo a edição. Apenas o usuário pode atualizar suas informação.

Requisição HTTP para Atualizar usuário

Método: PUT

Parâmetros da Solicitação

  • Headers:
    • Authorization: Bearer SEU_TOKEN_DE_AUTENTICACAO
    • Content-Type: application/json

Corpo da Solicitação

{
 "id" : "1"
  "nome": "João",
  "cargo": "Desenvolvedor",
  "cpf": "98765432100",
  "nascimento": "1990-05-15",
  "foto" : "base64"
}

"situacao" como salvar com o tipo "ANALISE"
Mensagem de erro ao executar a ação:

{
  "status": 0,
  "message": "Mensagem de erro"
}

Algumas runs do linter falhando

Em alguns pull requests o linter acusa um erro, porém ao ver a mensagem de erro é só ele acusando que não conseguiu achar um módulo, sendo que o módulo está presente no package.json, talvez isso seja um problema de configuração do linter ou um bug da própria ferramenta

Aplicação não está salvando as imagens dos usuários

Embora o back-end esteja todo configurado para receber imagens, e o front-end esteja também configurado para mostrar imagens, não consegui implementar a ação de realmente o usuário fazer o upload da imagem e ela ser salva no back-end, então infelizmente isso não está funcionando

Criar as migrations do banco de dados

Precisamos criar as migrations do banco de dados, assim o banco será criado igualmente para todos, definimos o seguinte modelo do banco de dados para ser seguido:

erDiagram
    USUARIO {
        uuid uuid
        string nome
        string cargo
        string cpf
        string senha
        bytea foto
        date nascimento
        int matricula
        enum situacaoCracha
        enum papel
    }
Loading

nesse caso "cargo" seria o cargo dentro da empresa e "papel" seria o campo enum (administrador | padrao) para diferenciarmos administradores de usuários normais e "situacao" seria um enum (analise | aprovado | reprovado) em relação a edições de informações

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.