KleversonEller / test-amais

CV registration application

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contexto do projeto

A aplicação se trata de uma página para cadastro de currículo, o usuário pode criar uma conta, efetuar login, cadastrar e editar um currículo. A pagina conta com uma área para administradores, onde é listado todos os currículos cadastrados e faz um relatório visual da pretensão salarial dos usuários, alterando a cor do valor indicado pelo usuário conforme a média salarial entre todos os usuários.

img

As seguintes regras de negocio foram utilizadas para a construção dessa aplicação

*Quando entrar no sistema o usuário precisa ser direcionado para a página de cadastro de seu currículo. As informações a serem preenchidas são: Nome, E-mail, Login, Senha, CPF, Data de Nascimento, Sexo, Estado Civil, Escolaridade, Cursos/ Especializações, Experiência Profissional e pretensão salarial. Você precisa salvar na base de dados a data e hora que o currículo foi registrado no sistema.

*O usuário pode querer alterar seu próprio currículo outro dia. Para isso, desenvolva também uma página de login

*Após estar logado, ou ter completado o cadastro, o usuário poderá registrar ( ou alterar ) seu currículo no sistema.

*O cliente também precisa de um acesso a uma página que liste todos os currículos cadastrados. Esta página deve exibir na lista a "pretensão salarial”. Ao final da lista, em formato de relatório exibir a soma total de "pretensão salarial” de todos os candidatos e a média de pretensão salarial. O sistema deve pintar na lista os salários em verde que estão abaixo da média salarial e em Azul os que estão acima da média salarial.

*Após o envio do form do currículo mostrar uma mensagem de inserção ou alteração.

*Se o usuário já tiver um currículo registrado, permitir a alteração do mesmo ( mostrando os campos já cadastrados pelo usuário )

*Os campos de formato Data devem ser tratados na inserção/alteração. Lembrando que o usuário deve digitar “dia/mês/ano” e na base deve ficar salvo como “ano-mês-dia”.


A aplicação foi construida utilizando React.js juntamente com Node.js e Typescript.
Logo abaixo segue todas as stack que foram utilizadas na construção da aplicação.

Stacks utilizadas no projeto

Stacks Compartilhadas
  • Lint - Mantém um padrão de código na aplicação.

  • Axios - Foi utilizado para fazer as requisições das API's.

  • TypeScript - Mantém um código legível e evitando erros comuns.

Stacks Front-End
  • React-Router-dom - Gerenciamento de rotas no React.

  • Vite.js - Ferramenta de configuração para uma aplicação React.

  • Zustand - Ferramenta para gerenciamento de estados globais.

  • Vitest - Ferramenta de construção de testes automatizados.

  • Tailwind-css - Ferramenta para estilização de componentes.

  • uuid-react - Ferramenta para geração de ID's únicos.

Stacks Back-End
  • Jest - Ferramenta de construção de testes automatizados.

  • Prisma ORM - ORM de bancos relacionais e não relacionais para Node.js.

  • SQLite - Banco de dados relacional.

  • Cors - Ferramenta de exibição de domínios.

  • Express - Ferramenta para Node.js para construção de servidores web.

  • Express-async-errors - Ferramenta para captura de erros da aplicação.

  • HTTP-status-codes - Padroniza códigos de status HTTP.

  • JOI - Ferramenta para validação de dados.

  • JWT - Ferramenta de criptografia de dados.


Como iniciar o projeto localmente


Para rodar a aplicação localmente sera necessário ter o Node.js instalado em sua máquina. Voce pode conferir como instalar pela Documentação oficial do Node.

Vamos começar clonado o repositório, para isso utilize o comando a seguir:
git clone git@github.com:KleversonEller/test-amais.git

Após ter clonado o repositório entre na pasta raiz do projeto `./teste-amais` :
cd teste-amais/

Em seguida execute o seguinte comando para fazer a instalação de todas as dependências:
npm run pre:start

Esse comando ira instalar as dependências de todos os servers e da aplicação web, isso pode demorar um pouco.
Caso queira pode executar separadamente navegando até a raiz de cada aplicação e utilizar o comando:

npm install

Para inicializar cada aplicação execute os seguintes comando em terminais diferentes:

API de Usuários

npm run dev:users

Ela ira utilizar a porta 3010 da sua máquina.
Ja existem quatro usuários cadastrados para testar a aplicação, sendo eles:

User 1
Email: user1@test.com
Password: test321

User 2
Email: user2@test.com
Password: test321

User 3
Email: user3@test.com
Password: test321

Admin
Email: admin@admin.com
Password: admin321

Caso queira conferir as informações no banco de dados utilize o seguinte comando para visualizar o banco de dados.
Caso esteja na raiz do projeto navegue ate a aplicação back-end:

cd packages/server/users/

Estando na aplicação back-end utilize o comando abaixo:

npx prisma studio

Esse comando ira abrir uma interface do banco de dados no navegador.

Para saber mais sobre a API veja sua Documentação.

Pagina Web

npm run dev:web

A pagina web ira rodar na porta 5173 da sua máquina (http://localhost:5173/).

Para rodar todos os testes da aplicação, na raiz do projeto ./teste-amais execute o seguinte comando:

npm test

Isso ira executar os testes de cada aplicação de uma única vez.
Caso queira executar os teste separadamente pode utilizar o mesmo comando na raiz de cada aplicação.

About

CV registration application


Languages

Language:TypeScript 89.3%Language:JavaScript 10.1%Language:HTML 0.6%Language:CSS 0.1%