How bit-or-byte-devs/abp-1-portal-de-certifcacao-scrum works
BorB is a Scrum/agile-methodology study and certification portal. A candidate registers or logs in, studies the topic material, then progresses through a randomized, timed question for each certification topic; answers and progress are recorded and certification results recalculated. Account recovery is a separate access workflow. The graph includes the documented UI and study capabilities, but sampled frontend excerpts do not establish specific browser-to-API calls, so those connections are not asserted. Several domain routes are represented at their exact source paths because their implementations were not sampled.
Main entry points: app.js Express application · db.js PostgreSQL pool · exames.js Exam workflow · autenticacao.js Session guard
Components 31
Accounts and access
- Portal interface
frontend/js/inicial.js - Registration UI
frontend/js/cadastro.js - Login and profile UI
frontend/js/form.js - Recovery UI
frontend/js/recuperacao.js - Authentication routes
backend/src/routes/auth.js - Authentication
backend/src/controllers/authController.js - Candidate registration
backend/src/controllers/candidatoController.js - Recovery routes
backend/src/routes/recuperacao.js - Password recovery
backend/src/controllers/recuperacaoController.js - Session guard
backend/src/middlewares/autenticacao.js
Study content
- Topic navigation
frontend/js/menu-temas.js - Study experience
frontend/js/estudos.js - Topic listing
backend/src/routes/temas.js - Study content API
backend/src/routes/estudos.js
Certification
- Exam experience
frontend/js/exame.js - Question timer
frontend/js/cronometro.js - Exam workflow
backend/src/routes/exames.js - Question closure
backend/src/services/encerramentoQuestao.js - Certification results
backend/src/services/certificacao.js
Platform and data
- Question import
backend/scripts/importar-questoes.js - Topic import
backend/scripts/importar-temas.js - Server and scheduler
backend/server.js - Express application
backend/src/app.js - Session configuration
backend/src/config/sessao.js - Candidate data
backend/src/models/candidatoModel.js - Recovery data
backend/src/models/recuperacaoModel.js - PostgreSQL pool
backend/src/config/db.js - Password hashing
backend/src/services/senha.js - Recovery codes
backend/src/services/codigoRecuperacao.js - Recovery email
backend/src/services/emailRecuperacao.js
Other components
- Candidate
Connections 42
- Candidate → Portal interface: uses portal
- Candidate → Registration UI: registers
- Candidate → Login and profile UI: signs in
- Candidate → Recovery UI: recovers access
- Candidate → Topic navigation: views topics
- Candidate → Study experience: studies topics
- Candidate → Exam experience: takes exam
- Express application → Authentication routes: mounts
backend/src/app.js - Express application → Recovery routes: mounts
backend/src/app.js - Express application → Study content API: mounts
backend/src/app.js - Express application → Exam workflow: mounts
backend/src/app.js - Express application → Topic listing: mounts
backend/src/app.js - Express application → Session configuration: uses sessions
backend/src/app.js - Express application → Session guard: guards pages
backend/src/app.js - Authentication routes → Authentication: routes to
backend/src/routes/auth.js - Authentication routes → Session guard: checks sessions
backend/src/routes/auth.js - Authentication → Candidate data: reads candidate
backend/src/controllers/authController.js - Authentication → Password hashing: verifies password
backend/src/controllers/authController.js - Candidate registration → Candidate data: creates candidate
backend/src/controllers/candidatoController.js - Candidate registration → Password hashing: hashes password
backend/src/controllers/candidatoController.js - Recovery routes → Password recovery: routes to
backend/src/routes/recuperacao.js - Password recovery → Recovery data: updates recovery
backend/src/controllers/recuperacaoController.js - Password recovery → Recovery email: sends code
backend/src/controllers/recuperacaoController.js - Password recovery → Recovery codes: generates code
backend/src/controllers/recuperacaoController.js - Session guard → Candidate data: checks candidate
backend/src/middlewares/autenticacao.js - Study content API → Session guard: requires session
backend/src/routes/estudos.js - Study content API → PostgreSQL pool: queries content
backend/src/routes/estudos.js - Topic listing → PostgreSQL pool: reads topics
backend/src/routes/temas.js - Exam workflow → Session guard: requires session
backend/src/routes/exames.js - Exam workflow → PostgreSQL pool: reads and writes
backend/src/routes/exames.js - Exam workflow → Question closure: closes expired
backend/src/routes/exames.js - Exam workflow → Certification results: recalculates results
backend/src/routes/exames.js - Server and scheduler → Express application: serves app
backend/server.js - Server and scheduler → PostgreSQL pool: opens connection
backend/server.js - Server and scheduler → Question closure: sweeps expired
backend/server.js - Server and scheduler → Certification results: recalculates results
backend/server.js - Candidate data → PostgreSQL pool: queries candidates
backend/src/models/candidatoModel.js - Recovery data → PostgreSQL pool: transacts recovery
backend/src/models/recuperacaoModel.js - Recovery data → Recovery codes: protects codes
backend/src/models/recuperacaoModel.js - Recovery data → Password hashing: hashes new password
backend/src/models/recuperacaoModel.js - Question import → PostgreSQL pool: loads questions
backend/scripts/importar-questoes.js - Topic import → PostgreSQL pool: loads topics
backend/scripts/importar-temas.js