Skip to content

CECSMH/Formulario-de-devs

Repository files navigation

Formulario-de-devs

Catalogo de devs, feito em fullMVC, neste catalogo você pode cadastrar, atualizar e excluir seu perfil, e também pode ver outros devs cadastrados, esse projeto foi feito inspirado no video FORMULÁRIOS COM HTML e CSS! da Rafaella Ballerini.


Tecnologias

  • NodeJS
  • BcryptJS
  • Express
  • Express-session
  • Connect-mongo
  • MongoDB
  • Mongoose
  • Path
  • Dotenv
  • Sucrase
  • Validator
  • Ejs
  • Webpack
  • Babel

Como usar

Primeiro, faça o download do projeto e extrai-o em alguma pasta, na mesma pasta abra o prompt/terminal, e execute o comando
npm install ou yarn install

Depois da conclusão do processo, crie um arquivo com o nome .env com as seguintes linhas

strConection=<sua string de conexão com o mongo>
sessionSecret=<algum secret aleatorio de sua preferencia>

logo após, rode o comando npm start ou yarn start, a aplicação estará rodando em http://localhost:3030/.

Caso queira editar o codigo do front-end rode o comando npm run web ou yarn run web.


Endpoints

  • Verbo get baseUrl/, Direciona para pagina inicial.

  • Verbo get baseUrl/fetchAll, Busca todos os registos e paginação, com ou sem base em filtros, exemplos:
    baseUrl/fetchAll?limit=10&offSet=6
    baseUrl/fetchAll?limit=10&offSet=6&fn=carlos&ds=Back-end
    baseUrl/fetchAll?limit=10&offSet=6&fn=carlos&ds=Back-end+Front-end&st=HTML+CSS+Java
    baseUrl/fetchAll?limit=10&offSet=6&fn=carlos&ds=Back-end+Front-end&st=HTML+CSS+Java/html
    

    filtros:

    • fn, pesquisa por nome, recebe desde uma letra, até um nome completo.
    • st, pesquisa por stacks, pode receber os valores: HTML, CSS, JavaScript, PHP, Java, C, Python. Podem ser enviados um ou mais, com o separador + entre eles.
    • ds, pesquisa por lado de atuação, pode receber os valores: Front-end, Back-end, Full-stack. Podem ser enviados um ou mais, com o separador + entre eles.
    • sr, pesquisa por senioridade, pode receber os valores: Junior, Pleno, Senior. Podem ser enviados um ou mais, com o separador + entre eles.
    • limit, determina um limite para a quantidade de resultados, recebe apenas um valor inteiro.
    • offSet, determina o ponto de partida dos resultados, recebe apenas um valor interio.

    Os filtros podem ser usados desde um até todos eles com todos os valores juntos. O retorno será em JSON, ou em HTML caso o parâmetro /html seja passado ao final, resultando em cards na home.


  • Verbo get baseUrl/fetchOne/:id/:type?, Busca apenas um resgistro JSON com base no id, exemplo:
    baseUrl/fetchOne/6166bf4145cba414db02c538 se for passado o parâmetro /html, retonará um html montado que resultará em um modal na pagina incial, exemplo: baseUrl/fetchOne/6166bf4145cba414db02c538/html.

  • Verbo get baseUrl/cadastrar, Direciona para pagina de cadastro.

  • Verbo post baseUrl/cadastrar, Realiza o cadastro de devs, deve receber informações atraves do body da requisição, exemplo:
    {
      "devSide": "Back-end",
      "fullName": "carlos",
      "email": "carlos@email.com",
      "seniority": "Junior",
      "experience": "alguma experiencia",
      "password": "40028922",
      "stacks": ["HTML", "CSS"]
    }
    

    Todas as informações são obrigatorias, e caso omitidas ou invalidas, resultará em Bad request(400).
    Se cadastrado com sucesso, será redirecionado para home, já logado.


  • Verbo get baseUrl/login, Retorna um html com formulario de login, que resulta em um modal na home.

  • Verbo post baseUrl/login, Realiza o login de usuário, deve receber informações atraves do body da requisição, exemplo:
    {
    	"email": "carlos@email.com",
    	"password": "40028922"
    }
    

    Ambos os campos são obrigatorios e caso omitidos ou invalidos podem retornar Bad resquest(400) ou Unauthorized(401).
    Se realizado o login com sucesso, será redirecionado(reload da pagina) para pagina inicial já logado.


  • Verbo get baseUrl/logout, Destroi a sessão atual (desloga o usuário).

  • Verbo get baseUrl/edit, Direciona para a pagina de atualização de cadastro, o usuário deve estár logado para realizar esta ação.

  • Verbo put baseUrl/edit, Realiza a atualização do registro do usuário, deve receber informações atraves do body da requisição, exemplo:
    {
      "devSide": "Front-end",
      "stacks": ["Java", "C"]
    }
    

    Um ou mais campos podem ser alterados, inclusive senha e e-mail, contudo, campos invalidos(email ou senha fora dos principios estabelecidos) resultarão em Bad request(400) e campos vazios serão ignorados.
    O usuário deve estár logado para realizar esta ação, se atualizado com sucesso, será redirecionado para home.


  • Verbo delete baseUrl/del, Exclui a conta do usuário, o usuário deve estár logado para realizar esta ação.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published