agenda-faculdade
Agenda Faculdade
Agenda academica para provas e trabalhos, com frontend Next.js, backend Crystal/Kemal, Postgres, PWA e sincronizacao por usuario com Google Calendar.
Desenvolvimento
npm install
docker compose up --build postgres api
npm run dev:web
O frontend fica em http://localhost:3000 e a API em http://localhost:4000.
Deploy em VPS
- Copie
.env.examplepara.env. - Configure dominio, segredos e credenciais OAuth do Google.
- No Google Cloud Console, cadastre os redirects:
https://SEU_DOMINIO/auth/google/callbackhttps://SEU_DOMINIO/auth/google/calendar/callback
- Suba tudo:
docker compose --env-file .env up --build -d
O servico proxy publica a aplicacao em HTTP_PORT e encaminha /api/* e /auth/* para a API.
Google OAuth em producao
Para liberar o app para qualquer usuario Google, publique e envie o app para verificacao no Google Cloud Console.
URLs publicas para preencher no OAuth consent screen:
- App home page:
https://calendario.felipeb.tech/sobre - Privacy policy:
https://calendario.felipeb.tech/privacidade - Terms of service:
https://calendario.felipeb.tech/termos - Authorized domain:
felipeb.tech
Redirect URIs do OAuth client web:
https://calendario.felipeb.tech/auth/google/callbackhttps://calendario.felipeb.tech/auth/google/calendar/callback
Scopes usados pelo app:
openidemailprofilehttps://www.googleapis.com/auth/calendar.events.owned
Justificativa do Calendar: a Agenda Faculdade cria, atualiza e remove eventos academicos no calendario principal do proprio usuario, para que ele receba lembretes do Google Calendar. O app nao le eventos pessoais existentes para exibicao no produto.
Verificacao
npm run test --workspace @agenda/web
npm run lint --workspace @agenda/web
npm run build --workspace @agenda/web
docker compose run --rm api crystal spec
docker compose run --rm api crystal build src/main.cr -o /tmp/agenda-api
docker compose run --rm api crystal build src/worker.cr -o /tmp/agenda-worker
npm run e2e --workspace @agenda/web
O E2E usa ENABLE_TEST_AUTH=true, FAKE_GOOGLE_CALENDAR=true e valida desktop/mobile com Playwright.
agenda-faculdade
- 0
- 0
- 0
- 0
- 0
- about 3 hours ago
- May 15, 2026
Fri, 15 May 2026 19:00:33 GMT