O projeto tem como objetivo o desenvolvimento de uma aplicação dsitribuída para o gerenciamento de estoques de medicamentos disponíveis gratuitamente pelo SUS / ANVISA.
O grupo decidiu por usar o banco de dados MongoDB, com Javascript para realizar a modelagem dos modelos. Foi utilizado, também, Python para realizar o gerenciamento do Apache Kafka.
Os modelos usados na construção do projeto foram baseados no diagrama desenvolvido pelos alunos
Antes de iniciar o uso, certifique-se de instalar todas as depêndencias do projeto com:
npm iGarantir que o docker esteja instalado na sua máquina
sudo apt install dockerGarantir que o python esteja instalado na sua máquina
sudo apt install pythonInstalar os pacotes para python
pip install kafka-python bson json pymongoPara iniciar o frontend da aplicação, utilize o comando
npm run devUm vídeo exemplo do uso está disponível no link abaixo:https://drive.google.com/file/d/1v77TMqDas3fzIasBEZiqD9CtRhCmVRQC/view?usp=sharing Executar o terminal na pasta projetoSUS/Kafka e rodar o seguinte comando
docker-compose upIsso abrirá o ambiente docker, se você desejar rodar em segundo plano adicione a flag -d ao final do comando
Em um terminal separado, ainda no mesmo diretório execute o DBManager com o comando:
python3 DBManager.pyIsso irá deixar o consumidor do DBManager ouvindo as requisições Agora para ver as respostar precisamos configurar o consumidor da aplicação em um novo terminal, para isso execute o comando:
python3 consumer.pyPor fim vamos simular as requisições com o producer, para isso vamos executar o producer.py com o tipo de requisição de exemplo que queremos executar:
python3 producer.py <requisições>Lembrando que os comandos implementados são:
- put: adicona "Rivotril" à lista de medicamentos
- get: busca itens com o nome "Rivotril" na lista de medicamentos
- update: aumenta o preço de um médicamento com o nome "Rivotril" em 20%
- delete deleta um medicamento com o nome "Rivotril"
Com a execução feita de forma correta você poderá ver:
- A requisição que foi enviada pelo producer
- A requisição recebida pelo DBManager
- A resposta enviada pelo DBManager
- A resposta que chegou no consumer
