|
| 1 | +# 🧠 Postmortem – Projeto DermAlert |
| 2 | + |
| 3 | +## 1. 👥 Equipe |
| 4 | + |
| 5 | +- Esther Sena |
| 6 | +- Izabella Alves |
| 7 | +- Leticia Martins |
| 8 | +- Davi Rodrigues |
| 9 | +- Davi Casseb |
| 10 | +- Renan Araújo |
| 11 | +- Guilherme Brito |
| 12 | +- Vitor Carvalho |
| 13 | +- Caio Lelis |
| 14 | +- Henrique Galdino |
| 15 | + |
| 16 | +--- |
| 17 | + |
| 18 | +## 2. 🌐 Contextualização |
| 19 | + |
| 20 | +O **DermAlert** é um aplicativo mobile que auxilia na detecção de possíveis doenças de pele (como acne, manchas e tumores) a partir de imagens tiradas pelo próprio usuário. O sistema utiliza técnicas de MLOps para avaliar a qualidade da imagem, classificá-la e retornar um **pré-diagnóstico** com recomendações. |
| 21 | + |
| 22 | +### Módulos do Projeto: |
| 23 | +- **Frontend:** Interface do aplicativo para o envio de imagens e visualização dos resultados (modais). |
| 24 | +- **Backend:** Processamento das imagens, avaliação da qualidade e classificação via modelo de machine learning. |
| 25 | +- **Documentação:** Estruturação do projeto, instruções de instalação, guias de uso e contribuição. |
| 26 | + |
| 27 | +--- |
| 28 | + |
| 29 | +## 3. 🧭 Ambientação da Equipe |
| 30 | + |
| 31 | +A ambientação incluiu: |
| 32 | +- Estudo dos repositórios existentes no GitHub. |
| 33 | +- Leitura e análise da documentação. |
| 34 | +- Configuração dos ambientes (Python, React Native). |
| 35 | +- Definição de papéis e responsabilidades. |
| 36 | + |
| 37 | +**Dificuldade inicial:** Falta de instruções claras para rodar o backend e o frontend, e escolha de bibliotecas e dependências. |
| 38 | +**Solução:** Produção de documentação prática com exemplos e passo a passo de instalação, e buscas e testes de ferramentas adequadas para o objetivo do projeto. |
| 39 | + |
| 40 | +--- |
| 41 | + |
| 42 | +## 4. 📄 Melhorias na Documentação |
| 43 | + |
| 44 | +- Atualização do `README.md` com instruções claras e objetivas, dentro dos repositórios da Documentação, Backend, Frontend e Machine Learning. |
| 45 | +- Adição de diagramas explicativos sobre a arquitetura do projeto em alguns modelos do README. |
| 46 | +- Detalhamento dos endpoints da API (métodos, parâmetros e retornos). |
| 47 | +- Inclusão de um guia de contribuição e checklist de boas práticas. |
| 48 | +- Automação de Issues e Pull-Requests, facilitando e tornando os mais fáceis e seguindo padrões. |
| 49 | + |
| 50 | +--- |
| 51 | + |
| 52 | +## 5. 🧠 Melhorias e Adições no Backend |
| 53 | + |
| 54 | +- Verificação de qualidade de imagem com o algoritmo BRISQUE |
| 55 | +- Integração do modelo de classificação (acne, mancha, possível tumor) |
| 56 | +- Criação de endpoint para geração de alerta em casos suspeitos |
| 57 | +- Refatoração do código para maior clareza e padronização |
| 58 | + |
| 59 | +--- |
| 60 | + |
| 61 | +## 6. 📱 Melhorias e Adições no Frontend |
| 62 | + |
| 63 | +- Integração com novos endpoints |
| 64 | +- Criação de um novo modal de pré-diagnóstico com visual menos alarmante |
| 65 | +- Uso de cores suaves e mensagens explicativas |
| 66 | +- Ajustes de layout e acessibilidade |
| 67 | + |
| 68 | +--- |
| 69 | +## 7. 🔄 Pipeline do Projeto |
| 70 | + |
| 71 | +A equipe implementou uma pipeline MLOps utilizando **Airflow** e **GitHub Actions**, visando automatizar etapas críticas como: |
| 72 | + |
| 73 | +- Validação da qualidade da imagem (com BRISQUE) |
| 74 | +- Execução do modelo de classificação |
| 75 | +- Geração de logs e alertas em tempo real |
| 76 | +- Testes automatizados antes de cada deploy no backend |
| 77 | + |
| 78 | +**Dificuldades:** |
| 79 | +Configurar a execução paralela das tarefas e lidar com erros silenciosos no Airflow. |
| 80 | + |
| 81 | +**Soluções:** |
| 82 | +- Criação de DAGs bem segmentadas |
| 83 | +- Monitoramento com alertas por log |
| 84 | +- Padronização de diretórios e volumes no Docker |
| 85 | + |
| 86 | +--- |
| 87 | + |
| 88 | +## 8. 🧩 Desenvolvimento da Nova Funcionalidade |
| 89 | + |
| 90 | +**Funcionalidade desenvolvida:** Classificação da imagem enviada pelo usuário. |
| 91 | + |
| 92 | +### Principais Dificuldades: |
| 93 | +- Escolher uma métrica eficaz de qualidade de imagem que funcionasse bem sem ter que ter uma imagem de referência. |
| 94 | +- Ajustar a sensibilidade do modelo para evitar falsos alarmes |
| 95 | +- Tornar a comunicação dos resultados clara e tranquila para o usuário |
| 96 | + |
| 97 | +**Soluções Encontradas:** |
| 98 | +- Uso da métrica BRISQUE para validar a imagem |
| 99 | +- Testes iterativos com imagens reais |
| 100 | +- Reformulação do modal de pré-diagnóstico com linguagem cuidadosa |
| 101 | +- Utilização de pipeline automatizada para validação e inferência do modelo |
| 102 | +- Pipeline MLOps com etapas de verificação de qualidade, classificação e geração de alerta |
| 103 | + |
| 104 | + |
| 105 | +--- |
| 106 | + |
| 107 | +## 9. ⚠️ Problemas Encontrados e Soluções |
| 108 | + |
| 109 | +| Problema | Solução | |
| 110 | +|---------|---------| |
| 111 | +| Backend mal documentado | Atualização completa do `README.md` e adição de documentação relacionada ao projeto e automoção de issue e pullrequests | |
| 112 | +| Resultado alarmante para usuário final | Modal com linguagem moderada e ícones visuais | |
| 113 | +| Falta de versionamento da API | Padronização de rotas (`/api/v1/`) | |
| 114 | +| Ambiente local difícil de configurar | Criação de script de setup automatizado | |
| 115 | + |
| 116 | +--- |
| 117 | + |
| 118 | +## 10. 🎓 Lições Aprendidas |
| 119 | + |
| 120 | +- Esther Sena - Aprendi a importância de manter uma documentação bem estruturada e sempre atualizada, refletindo com precisão o que o projeto realmente possui e realiza. Também percebi que nem sempre as soluções encontradas na Internet são corretas ou funcionais. Em alguns casos, se algo só funciona localmente e não pode ser adaptado para outros ambientes, utilizá-lo pode representar perda de tempo e esforço. Além disso, compreendi ainda mais o valor da automação de processos e do uso de bibliotecas de código aberto, que tornam o desenvolvimento mais ágil e eficiente. |
| 121 | + |
| 122 | + |
| 123 | +- Henrique Galdino - A disciplina foi muito importante para meu aprendizado, principalmente no que diz respeito ao trabalho em equipe. Em outras disciplinas que envolviam projetos em grupo, sempre trabalhei de forma mais “individual”, porém em GCES foi fundamental me manter alinhado com os demais membros da equipe e suas tarefas. Também aprendi bastante sobre tópicos e técnicas que eu nunca havia trabalhado anteriormente, como Machine Learning, conceitos de CI/CD, análise de imagens e documentações técnicas. |
| 124 | + |
| 125 | + |
| 126 | +- Izabella Alves - Durante a disciplina, minha equipe trabalhou em um projeto que ainda não tinha quase nada do Checklist de Software Livre. Por isso, consegui aprender desde o início como montar uma documentação realmente útil, que pudesse ajudar novos contribuidores. Fizemos isso baseadas em nossa própria experiência ao tentar contribuir com o DermAlert. Já na segunda entrega, nossa equipe conseguiu encontrar bons modelos de machine learning e integrá-los ao código usando somente quatro dependências. Eu considero isso uma vitória e tanto para nós! São dependências confiáveis, e durante a disciplina, aprendi a gerenciar melhor o uso de dependências, evitando usá-las de forma desnecessária. |
| 127 | + |
| 128 | + |
| 129 | +- Leticia Torres - Nesta disciplina, aprendi bastante sobre gerência de software e como funciona um projeto real que precisa seguir alguns requisitos para ser considerado um software livre, como licenciamento, documentação e abertura para colaboração. Além dos aspectos técnicos, a organização da equipe foi fundamental: cada membro teve seu papel claramente definido, o que garantiu uma colaboração eficiente e estruturada. Essa experiência me mostrou como a gestão tanto do código quanto das pessoas é crucial para que um projeto evolua de forma sustentável. |
| 130 | + |
| 131 | + |
| 132 | +- Davi Rodrigues - Nessa disciplina, tive a oportunidade de aprender automação de programas, uma área que sempre me interessou. Trabalhar em um projeto com uma grande equipe me proporcionou desafios no quesito de comunicação, mas também me proporcionou uma visão valiosa sobre como gerenciar atividades para um grande número de pessoas através da Izabella. Além disso, aprendi muito ao trabalhar em um projeto já existente, o que me mostrou a complexidade de lidar com bugs e tentar entender códigos preexistentes. Por fim, aprendi também o quão crucial é documentar tudo o que fazemos e estabelecer regras claras para o funcionamento eficaz de uma comunidade. |
| 133 | + |
| 134 | + |
| 135 | +- Davi Araújo - Ao longo da disciplina pude ver quais eram meus pontos fortes e fracos, além de aprender o funcionamento de um projeto real no dia a dia, vivendo cada etapa dos processos de entrega. Pude viver na pele como é manter um repositório no GitHub que esteja recebendo atualizações constantes, prezando pelo funcionamento integrado do software. Além disso, pude melhorar minhas habilidades para redigir documentos técnicos e descritivos. Também pude aprender muito sobre o funcionamento de APIs e modelos de IA, e também sobre pipelines CI/CD. |
| 136 | + |
| 137 | + |
| 138 | +- Guilherme Brito - Com essa disciplina consegui aprender e desenvolver minhas habilidades e conhecimentos sobre versionamento, configuração e evolução de um projeto real. Dentre os aspectos aprendidos pode se destacar principalmente como manter um projeto evoluindo pelo GitHub e como o controle de versionamento é importante para que o projeto caminhe bem. Outras habilidades desenvolvidas foram sobre conhecimento de APIs, pipelines CI/CD e modelos de IA, em que nos ajudaram a desenvolver novas habilidades e aprimorar outras. |
| 139 | + |
| 140 | + |
| 141 | +- Renan Araújo - A disciplina foi muito importante para mim porque mexemos mais com os conceitos de Git/GitHub e isso me fortaleceu bastante, porque tinha conceitos que eu nunca tinha mexido antes, como Pipelines CI/CD, e também desenvolver mais sobre a parte de API e Machine Learning, ao qual eu me aprofundei bastante indo atrás de modelos e implementando, além de mexer com um projeto real e software livre, que eu acho que foi a primeira experiência que aprendi de fato, já tive disciplinas que mexeram com isso, mas a experiência não foi tão aprofundada igual essa. |
| 142 | + |
| 143 | + |
| 144 | +- Vitor Carvalho – Durante a disciplina, tive a oportunidade de expandir meus conhecimentos técnicos e práticos sobre automação, controle de versão e integração de pipelines em um projeto real. Uma das maiores lições que levo foi a importância da padronização na documentação e na estrutura do repositório, algo essencial quando se trabalha com software livre e colaboração aberta. Além disso, aprendi bastante sobre como gerenciar dependências de forma eficiente e como decisões aparentemente pequenas, como a escolha de uma biblioteca ou framework, podem impactar diretamente na manutenção e escalabilidade do projeto. |
| 145 | + |
| 146 | + |
| 147 | +- Caio Lucas - Ao longo da disciplina, pude vivenciar de forma prática como é contribuir para um projeto real de software livre. Uma das lições mais marcantes foi entender a importância de uma documentação clara e acessível, especialmente para quem está chegando no projeto agora. Também aprofundei bastante meus conhecimentos sobre a integração de ferramentas como CI/CD, controle de versão com Git e GitHub o que tornou o desenvolvimento mais eficiente. A experiência de trabalhar em equipe ,exclusivamente com a equipe do Dermalet foi muito legal, precisei me alinhar com os demais membros, dividir responsabilidades e manter uma comunicação constante, algo essencial em projetos colaborativos. Outro ponto importante foi lidar com código feito por outras pessoas: entender e adaptar algo já existente exige paciência, leitura e respeito pelo que já foi feito. Além disso, a vivência com dependências e bibliotecas me ensinou a avaliar melhor o que realmente vale a pena ser incluído no projeto, pensando sempre na manutenção a longo prazo. |
| 148 | + |
| 149 | + |
| 150 | + |
| 151 | +--- |
| 152 | + |
| 153 | +## 11. 💬 Feedback Pessoal e de Grupo |
| 154 | + |
| 155 | +- Esther Sena - Em relação ao meu desempenho, tanto individualmente quanto do grupo, acredito que fiz o máximo possível, sempre me esforçando para ir além quando surgiam novas demandas. O meu grupo é composto por pessoas dedicadas, com conhecimentos abrangentes, e que estão sempre dispostas a participar ativamente, esclarecer dúvidas e ajudar uns aos outros. |
| 156 | + |
| 157 | +- Henrique Galdino - Diria que meu desempenho foi bom, consegui efetuar as tarefas sem maiores dificuldades (embora tenha passado do prazo definido pela equipe por duas vezes) e tentei sempre estar disposto a ajudar os demais colegas caso necessário. Em relação ao grupo, todos os membros foram bastante proativos, executando as tarefas com muito esforço e dedicação. A comunicação do grupo também foi impecável, sempre buscando fazer reuniões pontuais para discutir certos tópicos e realizar tarefas em conjunto. Sou muito grato a dedicação de cada um dos membros, em especial a Izabella, que assumiu um papel de liderança no grupo e buscou sempre manter todos a par das tarefas e prazos e aos maintainers, Davi Rodrigues e Davi Araújo, que a todo momento estavam acompanhando o andamento das tarefas e garantindo que os repositórios estavam devidamente organizados. |
| 158 | + |
| 159 | +- Izabella Alves - Acredito que tive um bom desempenho, realizando todas as tarefas que me foram designadas e tentando ajudar o grupo ao máximo. Nossa equipe também trabalhou muito bem, mantendo a constância nas entregas e reuniões, o que foi crucial para o desenvolvimento do projeto. Com reuniões e novas tarefas semanais, conseguimos revisar o que havia sido feito e fazer entregas contínuas, chegando ao final do projeto com todos os nossos objetivos alcançados. |
| 160 | + |
| 161 | +- Leticia Torres - O trabalho em grupo foi um dos pontos mais positivos da disciplina para aprender de fato a matéria. Todos contribuíram de forma ativa e competente, sempre dispostos a colaborar e compartilhar ideias. A comunicação entre a gente foi constante e eficiente e estávamos sempre nos falando, alinhando tarefas e resolvendo as coisas juntos. No meu desempenho pessoal, também me mantive bem presente: participei das reuniões, cumpri as tarefas semanais e busquei contribuir com o grupo de forma consistente. Foi uma experiência muito colaborativa, e acredito que nosso comprometimento coletivo fez toda a diferença no sucesso do projeto além de uma boa gerência do grupo feita pela Izabella. |
| 162 | + |
| 163 | + |
| 164 | +- Davi Rodrigues - Na minha visão, tive um bom desempenho na disciplina, consegui cumprir minhas tarefas e aprender bastante sobre as áreas que me interessavam, como automação. Considero o nosso trabalho em equipe muito bom. Todos se dedicaram e entregaram suas partes dentro do prazo. Sinto que as orientações por parte da Izabella foram fundamentais para a organização e o bom andamento do projeto, garantindo que todos estivéssemos alinhados e conseguíssemos alcançar nossos objetivos. Estou muito satisfeito com o resultado do nosso trabalho em grupo e com o meu próprio desempenho. |
| 165 | + |
| 166 | + |
| 167 | +- Davi Araújo - Acredito que tive um bom desempenho na matéria, na qual pude contribuir em todas as etapas do projeto, atuando com outros membros e aprendendo as técnicas que nos foi transmitida na sala de aula. A matéria foi uma experiência extremamente positiva. O grupo funcionou durante todo o projeto de maneira totalmente sinérgica, em parte devido ao alto nível demonstrado pelos membros, mas principalmente pelo fato do grupo ter agido em completa sintonia. Fica meus sinceros agradecimentos à todos os integrantes do grupo, e em especial à Izabella por gerir o grupo de maneira primorosa. Ao Henrique por me corrigir e ensinar quando tive dúvidas, ao Davi Rodrigues por me ajudar a manter o repositório, e ao restante do grupo, Esther, Renan, Vitor, Caio, Leticia e Guilherme por também me ajudarem quando precisei e por fazerem cada um sua parte de maneira perfeita. |
| 168 | + |
| 169 | +- Guilherme Brito - Nesta disciplina tive um bom desempenho, realizando as tarefas que foram propostas pelo grupo, trabalhando em equipe, aprendendo novas habilidades e funcionalidades, além da organização para conseguir realizar as tarefas em grupo sempre que eram propostas. O grupo sempre se esforçou ao máximo para atender todas as demandas do projeto, dedicando tempo e esforço para que ninguém ficasse sobrecarregado e que todos pudessem ter uma boa participação e aprendizado do que era exigido na disciplina. Acredito que o ponto chave para que o grupo tivesse um desempenho tão satisfatório foram as reuniões semanais para descrever o que já havia sido feito, o que iria ser feito a partir daquela reunião e tirar e esclarecer as dúvidas. |
| 170 | + |
| 171 | + |
| 172 | +- Renan Araújo - Na disciplina eu vejo que meu desempenho foi muito bom, participei de todas as reuniões, me disponibilizava para ajudar meus colegas em qualquer questão, corri atrás de soluções para o desenvolvimento do nosso projeto, não creio que tive dificuldades na matéria, os prazos eram bastante grandes, então eu conseguia fazer tudo no meu tempo e com qualidade. Sobre meu grupo eu creio que foram ótimos, todo mundo fez as tarefas que foram designados, participativos, não tivemos nenhum embate e todo mundo se ajudava também, agradeço em especial a Izabella por ter assumido o papel de liderança e ter gerido a equipe muito bem, foi muito importante para a continuidade e organização do nosso projeto. |
| 173 | + |
| 174 | +- Vitor Carvalho – Acredito que tive um bom desempenho ao longo da disciplina, contribuindo com constância para o desenvolvimento do projeto e me mantendo presente nas tarefas e discussões em grupo. Busquei sempre alinhar minhas entregas com os prazos definidos e me comprometi com o avanço técnico do repositório, especialmente nas partes que envolviam automação e organização de código. O grupo como um todo trabalhou de forma muito colaborativa, com apoio mútuo. Destaco a liderança da Izabella, que foi essencial para manter o grupo organizado e engajado. Estou satisfeito com os resultados que alcançamos juntos e com o aprendizado adquirido nessa experiência. |
| 175 | + |
| 176 | +- Caio Lucas - Acredito que tive um bom desempenho ao longo da disciplina, participando ativamente das discussões, reuniões e execuções das tarefas propostas. Busquei sempre manter minhas entregas em dia e colaborar com os colegas sempre que possível. Em relação ao grupo, foi uma das experiências mais positivas que já tive trabalhando em equipe na FGA. Todos os membros se mostraram extremamente comprometidos, proativos e dispostos a ajudar uns aos outros. A comunicação sempre fluiu de forma clara e constante, o que facilitou muito a organização do projeto e o cumprimento dos prazos. Gostaria de destacar especialmente o papel da Izabella, que assumiu a liderança do grupo de forma muito natural e eficiente. Ela foi essencial para manter todos alinhados, coordenar as tarefas e garantir que não deixássemos nenhum ponto importante de lado. Também sou muito grato ao apoio dos demais membros que acompanharam de perto a organização dos repositórios, e todos os colegas que estiveram sempre prontos a compartilhar conhecimento e colaborar. |
| 177 | + |
| 178 | + |
| 179 | +--- |
0 commit comments