Intrasocial's challenge
- O sistema deve permitir o cadastro de clientes, contendo as seguintes informações:
nome, e-mail, telefone, endereço e status.
- Ao se cadastrar, o cliente deve ser direcionado para ser atendido por um dos 20 agentes disponíveis de forma sequencial, ordenada pelo nome do agente.
- Cada agente deve ter uma lista de clientes atribuídos a ele, ordenada pelo momento em que foram cadastrados.
- Cada agente deve poder editar o status de cada cliente para
"Aguardando Atendimento", "Em Atendimento", "Proposta Feita", "Não Concluído" ou "Vendido"
. - A tela para exibir os clientes deve conter colunas, sendo cada coluna um status e contendo os clientes que pertencem a ele. Os clientes devem ser ordenados por ordem de chegada na lista do agente.
- As colunas devem ser ordenadas dessa forma:
"Aguardando Atendimento", "Em Atendimento", "Proposta Feita", "Não Concluído" ou "Vendido"
- A aplicação deve ser desenvolvida utilizando
Node.js, MongoDB, AngularJS e Bootstrap
. - A API deve seguir o padrão RESTful e suportar as operações CRUD.
- A interface web deve permitir o cadastro e edição de clientes, a visualização dos clientes atribuídos a cada agente, e a edição dos status dos clientes.
- A interface web deve ser responsiva e utilizar Bootstrap para a criação do layout.
- A aplicação deve ser hospedada online(ex.: Heroku) e o banco de dados deve estar no MongoDB Atlas.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
- Node 18
- Openssl
Cheque a versão do seu node com:
node -v
Caso não possua ssl na sua máquina, instale com (WSL e linux):
sudo apt install openssl
Instale as dependências do projeto
npm install
Crie um arquivo .env, a partir do template de .env.example. Troque as informações conforme sua necessidade. Na pasta raíz do projeto, use:
cp .env.example .env
Crie os schemas do prisma, com o comando:
npm run gen
Crie uma chave privada para o JWT, com o comando:
openssl genrsa -out private.pem 2048
Em seguida, crie uma publica, usando:
openssl rsa -in private.pem -pubout -out public.pem
Crie um agente admin com a senha do seu .env, a partir da seed, usando:
npx prisma db seed
Para testar localmente o código, depois de seguir o processo de instalação, escreva:
npm run dev
- MongoDB - Database
- Zod - Schema validation
- Prisma - Node & Typescript ORM
- Fastify - Server Framework
- NodeJs - Server Environment
- @ThiagoKS-7 - Initial work