Sobre o projeto

Um projeto escolar sobre um problema real.

O PortãoSeguro é o projeto final da UFCD 10790 — Projeto de Programação, do 3.º ano de um curso profissional de programação.

O problema

Numa escola, saber quem entrou, quem saiu e a que horas costuma depender de papel ou da memória de quem está na portaria. Daí é difícil saber se um aluno chegou atrasado, se faltou, ou se podia mesmo sair a meio de uma aula.

O PortãoSeguro regista cada passagem no momento, cruza-a com o horário da turma, e calcula a assiduidade a partir desses registos — sem ninguém ter de a escrever à mão.

Como funciona

  1. 1O aluno gera o códigoNa sua área, no telemóvel, carrega em "Gerar código QR". O código vale 1 minuto.
  2. 2O porteiro lê-oCom a câmara, no ecrã da portaria. Confirma pela fotografia que é mesmo aquele aluno.
  3. 3O sistema decideConsulta o horário da turma e regista a entrada ou a saída — a horas, com atraso, ou a precisar de autorização dos pais.

Tecnologias

Next.js + React

O site e a lógica do servidor

TypeScript

JavaScript com tipos, para apanhar erros antes de o site correr

MongoDB Atlas

A base de dados, na cloud

Auth.js

Login com email e palavra-passe ou conta Google

Argon2id

Proteção das palavras-passe

Tailwind CSS

O aspeto visual, com modo claro e escuro

Vitest

Testes automáticos das regras de entrada e saída

Vercel

Onde o site está publicado

Como foi feito

Começou com a análise — requisitos, casos de uso e modelo de dados — e foi construído por fases, cada uma testada antes de avançar. As regras que decidem entradas, saídas e atrasos têm testes automáticos para os casos-limite, como a hora exata em que uma aula começa ou os dias em que muda a hora.