Seja bem-vindo ao Hackathon 2024 da WeeNow 🚀. A seguir, você encontrará todas as informações necessárias para participar do evento.
Seguir as instruções abaixo e ler atentamente a descrição do desafio que será divulgado na data do evento.
- Ler todos os tópicos deste documento;
- Executar as instruções para participar do evento mecionadas abaixo;
- Aguardar o desafio ser divulgado.
As duplas serão formadas no dia do evento de forma aletória.
As pessoas que não quiserem formar duplas, poderão participar individualmente.
Estou remoto. Poderei participar? Sim, poderá participar remotamente.
- Node.js
- Express
- Background Job Processing
- OCR
- Docker
Bibliotecas recomendadas para auxiliar no desenvolvimento do desafio:
No dia 09/05/2024, às 16:00h, será divulgado aqui neste README.md o desafio. Após a leitura e entendimento do contexto, siga as instruções abaixo para participar:
- Faça um
forkdeste repositório; - Clone o repositório para a sua máquina;
- Crie uma
branchcom o seu nome ou nome da dupla; - Copie e renomeie a pasta
templatepara/participants/nome-da-dupla; - Execute o desafio e faças os
commitsna suabranch; - Faça os
pushpara o seu repositório; - Assim que finalizar o desafio, crie um
pull requestpara este repositório com a sua solução; - Agora é só aguardar a avaliação.
Confome mencionado acima, a entrega deve ser feita via pull request para este repositório.
A aplicação deve rodar em um container Docker. Para isso, você deve criar um Dockerfile e um docker-compose.yml para subir a aplicação.
Na pasta do seu projeto, você deve criar um arquivo
README.mdcom as instruções de como rodar a aplicação.
Para vencer o Hackathon 2024 🚀, você precisará pontuar em cada critério abaixo:
- 🐙
Forkdo repositório ePull Requestcom a tentativa de solução do desafio; (5 pontos) - 📜
README.mdcom instruções de como rodar a aplicação; (5 pontos) - 🐋
Dockerfileedocker-compose.ymlpara subir a aplicação; (5 pontos) - 🎖️
Módulo Fila e APIdo desafio entregue e funcional; (30 pontos) - 🤴
Módulo OCRdo desafio entregue e funcional; (55 pontos)
Cada critério terá uma quantidade específica de pontos conforme mencionado anteriormente em cada item. O valor máximo de pontuação será de 100 pontos. A equipe/pessoa que obtiver a maior pontuação será a vencedora.
Em caso de empate, será avaliado a funcionalidade da aplicação e qualidade de código.
Implementar uma API que receba um arquivo de imagem e faça o upload para um serviço de fila usando. O serviço de fila deve processar a imagem através do Módulo OCR e retornar o objeto no formato JSON extraído da imagem.
Dicas:
- Utilize os endpoints já criados no arquivo
src/routes.jspara efetuar o upload da imagem e inserir na fila de processamento; - Utilize o
bullmqpara gerir a fila de processamento;
Implementar um serviço que receba o arquivo de imagem, faça o processamento da imagem e retorne o JSON com o objeto para o Módulo File e API.
Dicas:
-
Faça o processamento da imagem para remover ruídos e preservar a qualidade dos textos;
-
Converta a imagem para escala de cinza (isso ajuda a melhorar a qualidade da imagem e leitura das ROI's);
-
Faça a extração dos textos utilizando ROI (Region of Interest)
-
Utilize o
tesseract.jspara processar a imagem e extrair o texto; -
Utilize o
opencv-jspara processar a imagem e extrair o objeto; -
Não esqueça de fazer a detecção de faces.
Utilize os endpoints já criados no arquivo
src/routes.jspara implementar a solução.
Não precisa implementar nada além do que foi solicitado.
Veja a imagem de arquitetura em
./architecture.png.