Muito legal essa proposta @alifersouza!! Me lembra um projeto em Google Apps Script que desenvolvi para uma ONG que fazia um trabalho voluntário há alguns anos atrás. Vou dar um pouco mais de detalhes, quem sabe se for útil / interessante adapto o código para algo público.
Contexto do problema
Éramos uma ONG focada em educação e cursos para alavancar a carreira de alunos de uma universidade pública, coisa muito caseira e com poucos recursos para investir em sistemas ou desenvolvedores. Boa parte das inscrições, cadastros e controle de presença dos programas era feito em Google Forms (nosso impacto só chegaria a ~5000 alunos/ano se a gente conseguisse atender a faculdade inteira, não fazia sentido muito mais sofisticaçãoq ue isso).
A complicação (sempre tem uma)
Mesmo com poucos "usuário", conforme escalamos os programas, acabamos com muitos processos manuais e erros, que acabava desmotivando os próprios voluntários, que fazia tudo aquilo acontecer. Foi então que tentamos dar um salto de automatização usando Google Apps Script
para gerenciar nossos Google Forms
de input e Google Sheets
de output. Estava procurando por uma solução caseira mas funcional.
O projeto (conceitualmente)
Consegui desenvolver um projeto com o seguinte funcionamento: toda vez que alguém submetia uma resposta num formulário específico (digamos um formulário de inscrição para um curso), o sistema processava essa resposta e permitia tomar ações para "completar campos" na planilha onde as respostas do Google Forms são armazenadas (campos calculados, registros de contexto, etc), além de poder alterar outros formulários que entraria na rotina dessa pessoa (como por exemplo adicionar o nome da pessoa no formulário que controlava presença no curso, ou no formulário de feedback das sessões que o aluno participava).
Usei para isso o conceito de Web App
do Google Apps Script
onde criava triggers
associado ao evento de envio de uma resposta
a determinados formulários, inclusive com poder de mensageria dos erros / log caso algo desse errado. Tudo 100% web ... e funcionava bem.
Nesse projeto, o Google Forms
servia como front-end, o Google Sheets
era o nosso banco de dados e o Web App
do Google Apps Script servia como nosso back-end. Conseguimos ainda codar tudo em typescript
usando npm
, o webpack
para consolidar tudo num arquivo Code.gs
que subíamos para a google usando a ferramenta clasp
(command line apps script), além de workflows do Github Actions
para construir um CI/CD funcional para o projeto toda vez que subíamos um novo código para a branch main
(prod) ou develop
(qa). Realmente foi muito massa.
Único porém disso tudo foi que não consegui um jeito legal de criar testes automatizados e.. Google Sheets não foi nem nunca será um banco de dados bom com características ACID, etc. Nunca passará de um projeto quick and dirty, mas foi bom para aprendizado.
Conclusões
O Google Apps Script é uma ferramenta incrível, dá para explorar muita coisa. Fica aqui uma recomendação de canal que me ajudou muito nessa jornada Learn Google Sheets & Excel Spreadsheets