ADS Integrador

mongodbexpressreactnodejs
GitHub|Out 2022 - Dez 2022

Desde o início do curso de Análise e Desenvolvimento de Sistemas, já haviam nos informado que o Trabalho de Conclusão de Curso teria um peso muito mais prático do que teórico — embora este último não fosse deixado de lado. Ainda assim, durante os primeiros períodos, enquanto aprendia programação, eu não fazia ideia do que apresentaria ao final da graduação.

Com o passar do tempo e a aproximação dos prazos, minha ideia inicial foi desenvolver um sistema agregador de serviços para a prefeitura. Cheguei a implementar uma parte considerável da solução, mas, quando faltavam apenas três meses para a apresentação final, percebi que não estava realmente satisfeito com o projeto. Foi então que tomei uma decisão que, para muitos, parecia imprudente: recomeçar tudo do zero.

Meu professor orientador foi abertamente contra a ideia. Ele me apresentou diversos motivos para desistir, sendo o prazo o principal deles. Mas eu estava convencido de que conseguiria entregar algo melhor. Assim, abandonei o sistema que já estava em desenvolvimento e comecei novamente.

Eu não queria criar apenas mais um projeto com um nome genérico e uma dúzia de CRUDs. Queria desenvolver algo que eu mesmo gostaria de usar, que tivesse personalidade e até um pouco de senso de humor. Foi assim que nasceu o PromoCão — O Farejador de Promoções.

Nos três meses seguintes, dediquei praticamente todo o meu tempo livre ao projeto. À medida que ele evoluía, fui adicionando detalhes, refinamentos e pequenas sutilezas que ajudavam a construir sua identidade.

No fim das contas, além de arrancar alguns sorrisos dos veteranos e da banca avaliadora, o projeto me rendeu a nota máxima na apresentação. Mais importante do que isso, foi a primeira vez que senti que havia criado um software com personalidade própria, e não apenas mais um trabalho acadêmico.

As documentações podem ser consultadas nos links a seguir:

Funcionalidades

Entre as principais funcionalidades implementadas estão:

  • Cadastro e autenticação de usuários comuns e administradores;
  • Envio de promoções pela comunidade;
  • Fluxo de aprovação e moderação de promoções;
  • Visualização pública das promoções aprovadas;
  • Área administrativa para gerenciamento do conteúdo da plataforma.

Tecnologias Utilizadas

Na época, optei por utilizar a stack MERN, uma das combinações mais populares para aplicações JavaScript full stack:

  • MongoDB: banco de dados NoSQL utilizado para armazenamento das informações;
  • Express.js: framework responsável pela construção da API backend;
  • React.js: biblioteca utilizada para o desenvolvimento da interface web;
  • Node.js: ambiente de execução que permitiu utilizar JavaScript tanto no frontend quanto no backend.