O Dilema

Nesses últimos anos tenho tentado fazer um “desintoxicação das redes sociais”. Mesmo antes da pandemia, estava numa fase de tentar me distanciar das redes sociais simplesmente porque não era mais divertido. Os algoritmos que vieram prometendo melhorar o tempo de qualidade das redes sociais criam bolhas impossíveis de estourar. Desinformação, más notícias, negatividade, pessoas compartilhando demais online… Tudo isso me afastou de sentir vontade de fazer login.

No entanto, há um lado das redes sociais que sinto muita falta: compartilhar notícias pessoais com meus amigos mais próximos. Sinto falta de não me preocupar com curtidas, compartilhamentos ou minha timeline sendo inundada por conteúdo que não pedi; sinto falta daqueles bons tempos em que eu logava apenas para conversar e focar em conversas reais com amigos e familiares. Sinto falta de compartilhar minhas fotos de momentos especiais e ter conversas significativas sobre elas.

Falando em fotos, eu adoraria ter uma ferramenta que me permitisse criar álbuns e escrever descrições com contexto sobre elas, mesmo que fosse apenas uma forma de manter um diário local. Tentei encontrar soluções de código aberto que atendesse minhas necessidades, mas nada realmente se encaixava no que eu estava procurando. Até que…

Se você não consegue encontrar, por que não construir do zero?

A essa altura, já tinha um tempo não tinha nenhum projeto grande em Node.js. Então eu tive a “ótima” ideia de combinar o útil com o agradável e construir meu próprio gerenciador de álbuns/fotos usando Node.js e React. Só para deixar claro, eu não sou um grande especialista em tecnologias web/front-end (sofri bastante nesse projeto haha), então essa foi uma maneira de me empurrar para fora da minha zona de experiência também. A ideia era simples: construir um projeto se inspirando no Instagram onde eu pudesse fazer “upload” de imagens e agrupá-las em álbuns, com descrições.

Mãos à obra!

Opengram foi criado com isso em mente. É um projeto muito simples com escopo limitado. Aqui estão alguns prints de alguns recursos:

Algumas dependências foram usadas para construir este projeto, como bcrypt, express, multer, bootstrap, axios, entre muitas outras, juntamente com o MongoDB como banco de dados. O front-end e o back-end foram divididos em dois repositórios, ambos dockerizados. No começo, tentei emular um aplicativo local do tipo Instagram, com login e vários usuários, mas… pensando no uso no mundo real, parece meio bobo ter vários usuários em um aplicativo da web local, não é? Ainda assim mantive o sistema de login que já havia implementado. Essa também foi minha primeira experiência com funções assíncronas em Node.js, foi interessante aprender mais sobre Promises.

Para saber mais sobre o código-fonte, clique aqui para conferir o repositório Opengram e aqui para acessar o Opengram Front.