🤔E SE EU TE CONTAR COMO DESENVOLVI UMA SOLUÇÃO RECENTEMENTE NO “MEU” DORMITÓRIO USANDO Nodejs e Reactjs!
Há um ano pensei em resolver um problema no dormitório da universidade em que estudo (Rússia
).
Usando algumas das habilidades
que fui adquirindo ao longo do tempo, felizmente tornou-se possível.
Como tudo começou?
No dormitório aonde estou alojado vive muitos estrangeiros
e eu sou um deles.
Mas durante os meus primeiros anos aqui no dormitório, eu enfrentei algumas dificuldades
que não queria que os próximos/atuais estudantes estrangeiros
passassem.
Por esse motivo tive uma ideia e creio que é/será útil.
Mas antes porém, deixa-me xplicar qual é/era o problema…
Problema:
Quando os estrangeiros chegam no dormitório (nos seus primeiros anos), sabendo que ainda não dominam o idioma, fica complicado para eles a comunicação
, principalmente quando querem explicar algo para alguém.
Normalmente nos dormitórios (cá na Rússia
) existem Profissionais Técnicos (Eletricistas e Encanadores)
. Eles são responsáveis pela resolução de todos problemas técnicos que acontecem aqui no dormitório, mas isso funciona da seguinte maneira…
Ex:
Estudante
está com problema na lâmpada do seu quarto. Ele deve fazer o seguinte:
- Ir até os/as vigilantes do dormitório
- Explicar o problema
- Pedir o livro de apontamento de problemas
- Escrever o problema
em Russo
no livro (explicar detalhadamente
), colocando o andar em que está, o número do quarto e etc. - E esperar até o dia seguinte ou um outro dia em que o Técnico irá trabalhar, para que o problema seja resolvido.
RESOLUÇÃO DO PROBLEMA
Então eu tive a seguinte ideia:
E se eu criasse um App (Web), aonde os estudantes não precisassem fazer todo o processo acima citado.
Neste caso o App funcionará da seguinte maneira:
- O estudante cria uma
conta
. - Após a criação da conta, ele terá a possibilidade de reportar o problema a partir do App, sem precisar passar por todo aquele processo, que chega a ser muito
complicado
para quem ainda não tem o domínio do idioma.
Por exemplo:
Fazer fotos do local/material danificado (lâmpada, porta, tomada etc).
Escrever detalhadamente sobre o problema (EM QUALQUER IDIOMA).
Especificar o número do andar, do bloco e do quarto.
Após a reportagem do problema.
Esses dados serão enviados ao Técnico
, que por sua vez também terá uma conta
.
E o Técnico poderá:
- Receber estes problemas reportados, mas
em RUSSO
. - Poderá não precisar sair de casa para saber se foi registrado algum problema.
- Caso for registrado algum problema, ele poderá analizar e estar preparado para resolvê-lo.
- E após resolver o problema, marca como resolvido e o Estudante nota pelo Status do problema em sua conta (
Problema Resolvido
).
Uma visão geral das ferramentas e tecnologias que usei:
Backend
-
Node.js + Fastify
Criei rotas para
reportar
,buscar
,resolver
elistar
problemas reportados. -
Drizzle ORM + PostgreSQL
Gerenciei as
Tabelas
eresoluções
dos problemas reportados com o Drizzle, que por sua vez também gerou as migrações. -
Docker e NEON para Banco de Dados
Usei o
Docker
localmente para criar e gerenciar instâncias PostgreSQL durante o desenvolvimento. ONeon
por ser uma das muitas soluções PostgreSQL (com plano gratuito), optei para usar em produção.
Frontend
-
Reactjs
-
Clerk (
para autenticação
)Usei uma funcionalidade do
Clerk
que me permitiu criar restrições de usuários a partir do email, podendo assim dar acesso paraCadastro
apenas aos estudantes do "meu" Dormitório. -
Cloudinary
Enviei para o
Cloudinary
as imagens reportadas pelos usuários, para me retornar URL públicas e salvar noBanco de Dados
para serem exibidas nofrontend
. -
Google Translate API
Tal como descrevi acima, uma das principais funcionalidades seria o App suportar multiplos idiomas. Então optei por traduzir as descrições dos problemas para Russo ao serem exibidas na conta dos
Técnicos
.
Todas as ferramentas e serviços que usei têm planos gratuitos.
Fiz o deploy do
Backend
naVercel
e doFrontend
naNetlify
.Apresentei o projeto a direção do Dormitório, foi aceite e está sendo utilizado atualmente.
É isso, software foi feito para resolver problemas reais de pessoas reais. Também sou muito fã de programas personalizados, mas aí vai uma dica, pode ser interessante o mesmo tipo de programa em condomínios de prédios com zeladores próprios ou empresas terceirizadas, se você conseguir fazer uma versão genérica pode apresentar seu programa para mais pessoas.
Muito interessante essa iniciativa, as vezes as melhores soluções criadas são aquelas que resolvem os nossos próprios problemas ksksks, as vezes gastamos horas pensando em problemas para resolver, porem se olhar com cuidado como é o nosso dia a dia, podemos identificar problemas e gerar soluções para elas, ja que temos o poder de criação de software.
Cara, sensacional a iniciativa! Aqui na minha faculdade (IFPB) eu estou pensando em fazer algo parecido para o gerenciamento de chaves da instituição, simplesmente até hoje é tudo feito no papel via assinatura, então acaba sendo muito complicado para poder ver o histórico de onde uma chave passou, ou até mesmo ver onde ela está atualmente, o seu projeto me deu umas ideias de como fazer e até uma inspiração, abraço.
Para guardar as imagens usou algum serviço de bucket?
Achei bem interessante a ideia da tradução. Uma ideia seria verificar as traduções feitas por IA, ja que muitas vezes o google tradutor efetua uma tradução literaria, sem muita noção de contexto, a ideia é que usando algo como o GPT ou GEMINI, você consiga traduções mais proximas da realidade ou ate mesmo mais complexas.
Tenho pouca experiencia com uso de Api, mas sei dizer que ao longo do tempo eu tenho usado com mais frequencia o GPT para traduzir textos, pois ja me ocorreu problemas com as traduções 'brutas' do google tradutor.
Alguem sabe dizer se isso que eu disse faz sentido ou é apenas efeito placebo causado pelo enfeitamento que as IAs fazem nos textos?
A ideia é excelente! No entanto, pelas telas apresentadas, é possível perceber que algumas partes estão em russo, enquanto outras estão em inglês. Para uma experiência mais dinâmica e inclusiva, o ideal seria que o site identificasse automaticamente o idioma do usuário — seja ele um técnico de manutenção ou um estudante — e apresentasse todo o conteúdo na língua correspondente, sem misturar idiomas.
Que ideia incrível! Vi há pouco um vídeo do Filipe falando do surgimento de um projeto com uma proposta semelhante ao Photoshop. Tudo começou com a resolução de um problema simples e pessoal, depois tudo expandiu e foi ganhando forma, até que ganhou o mercado por sua praticidade e gratuidade. Trata-se do Photopea.
Os conceitos chave do vídeo que mais me chamaram atenção foram, como denominou o Filipe, desenvolvimento Orgânico vs Impressão 3D.
Orgânico
O desenvolvimento orgânico faz alusão, por exemplo, aos processos de desenvolvimento de um ser humano. Tudo começa com uma célula que se agrupa com outra para cumprir um propósito e este ciclo se repete várias e várias vezes. A ideia é que desde a primeira célula já se tenha algo aproveitável.
Impressão 3D
O conceito que remete à impressão 3D faz alusão a algo que tem um modelo definido desde a sua concepção e que só tem proveito após o término de todos os processos, tornando-o custoso em cumprir o seu propósito.
Seu projeto me remete ao desenvolvimento orgânico, e já está produzindo bons frutos, você vai conseguir beneficiar muitos estudantes com essa iniciativa, desde os mais novos até os mais velhos. Parabéns pelo seu trabalho.
A propósito este é o vídeo do Filipe.