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.
- NodeJS
- BcryptJS
- Express
- Express-session
- Connect-mongo
- MongoDB
- Mongoose
- Path
- Dotenv
- Sucrase
- Validator
- Ejs
- Webpack
- Babel
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.
- 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/htmlfiltros:
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
/htmlseja 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/6166bf4145cba414db02c538se 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.