How gmiranda21ml/cem works
CEM is an academic monitoring and mentoring management system. Users work through a React frontend and backend API to manage access and invitations, communications, and monitoring activities such as sessions, absences, make-up suggestions, and evaluations; certificates are another domain capability. The sampled services show domain rules coordinating repository ports and related services, with infrastructure providing persistence. The README documents MariaDB/MySQL and real email delivery. Several UI-to-application and application-to-infrastructure links are unverified in the sampled files, so they are shown as dashed.
Main entry points: IUsuarioRepositorio.java User repository port · AvaliacaoServico.java Session evaluation · BackendAplicacao.java Backend API · UsuarioServico.java Access domain
Components 24
User interfaces
- React application
ui-frontend/src/main/react/src/app/App.tsx - Backend API
ui-backend/src/main/java/br/com/cem/BackendAplicacao.java
Application services
- Access use cases
aplicacao/src/main/java/br/com/cem/aplicacao/acesso - Communication use cases
aplicacao/src/main/java/br/com/cem/aplicacao/comunicacao - Monitoring use cases
aplicacao/src/main/java/br/com/cem/aplicacao/monitoria
Domain rules
- Access domain
dominio-acesso/src/main/java/br/com/cem/dominio/acesso/usuario/UsuarioServico.java - User identity
dominio-acesso/src/main/java/br/com/cem/dominio/acesso/usuario/UsuarioIdentificador.java - Institutional email
dominio-acesso/src/main/java/br/com/cem/dominio/acesso/usuario/UsuarioEmail.java - User repository port
dominio-acesso/src/main/java/br/com/cem/dominio/acesso/usuario/spi/IUsuarioRepositorio.java - Invitation lifecycle
dominio-acesso/src/main/java/br/com/cem/dominio/acesso/convite/ConviteServico.java - Communications
dominio-comunicacao/src/main/java/br/com/cem/dominio/comunicacao/certificado/CertificadoServico.java - Certificate issuance
dominio-comunicacao/src/main/java/br/com/cem/dominio/comunicacao/certificado/CertificadoServico.java - Monitoring domain
dominio-monitoria/src/main/java/br/com/cem/dominio/monitoria/sessao/SessaoServico.java - Session scheduling
dominio-monitoria/src/main/java/br/com/cem/dominio/monitoria/sessao/SessaoServico.java - Absence and make-up
dominio-monitoria/src/main/java/br/com/cem/dominio/monitoria/falta/FaltaServico.java - Session evaluation
dominio-monitoria/src/main/java/br/com/cem/dominio/monitoria/avaliacao/AvaliacaoServico.java - Evaluation record
dominio-monitoria/src/main/java/br/com/cem/dominio/monitoria/avaliacao/Avaliacao.java - Evaluation identifier
dominio-monitoria/src/main/java/br/com/cem/dominio/monitoria/avaliacao/AvaliacaoIdentificador.java - Authorization roles
dominio-compartilhado/src/main/java/br/com/cem/dominio/Autorizacao.java
Persistence and integrations
- Certificate repository
infraestrutura/src/main/java/br/com/cem/infraestrutura/comunicacao/certificado/CertificadoRepositorio.java - MariaDB / MySQL
- Email delivery
dominio-compartilhado/src/main/java/br/com/cem/dominio/spi/IEnviadorEmailServico.java
Other components
- CEM user
- Gmail SMTP
Connections 28
- CEM user → React application: uses
- React application → Backend API: proxies requests
- Backend API → Access use cases: dispatches
- Backend API → Communication use cases: dispatches
- Backend API → Monitoring use cases: dispatches
- Access use cases → Access domain: invokes
- Communication use cases → Communications: invokes
- Monitoring use cases → Monitoring domain: invokes
- Access domain → User repository port: reads and writes
dominio-acesso/src/main/java/br/com/cem/dominio/acesso/usuario/UsuarioServico.java - Access domain → Institutional email: validates
dominio-acesso/src/main/java/br/com/cem/dominio/acesso/usuario/UsuarioServico.java - Access domain → Authorization roles: checks roles
dominio-acesso/src/main/java/br/com/cem/dominio/acesso/usuario/UsuarioServico.java - Invitation lifecycle → User repository port: creates account
dominio-acesso/src/main/java/br/com/cem/dominio/acesso/convite/ConviteServico.java - Invitation lifecycle → Email delivery: sends invite code
dominio-acesso/src/main/java/br/com/cem/dominio/acesso/convite/ConviteServico.java - Invitation lifecycle → Authorization roles: checks roles
dominio-acesso/src/main/java/br/com/cem/dominio/acesso/convite/ConviteServico.java - Communications → Certificate issuance: includes
dominio-comunicacao/src/main/java/br/com/cem/dominio/comunicacao/certificado/CertificadoServico.java - Certificate issuance → Certificate repository: persists certificate
dominio-comunicacao/src/main/java/br/com/cem/dominio/comunicacao/certificado/CertificadoServico.java - Certificate repository → MariaDB / MySQL: stores records
- Certificate issuance → User repository port: looks up beneficiary
dominio-comunicacao/src/main/java/br/com/cem/dominio/comunicacao/certificado/CertificadoServico.java - Certificate issuance → Authorization roles: checks roles
dominio-comunicacao/src/main/java/br/com/cem/dominio/comunicacao/certificado/CertificadoServico.java - Monitoring domain → Session scheduling: includes
dominio-monitoria/src/main/java/br/com/cem/dominio/monitoria/sessao/SessaoServico.java - Session scheduling → User repository port: checks participants
dominio-monitoria/src/main/java/br/com/cem/dominio/monitoria/sessao/SessaoServico.java - Absence and make-up → Session scheduling: reads and creates sessions
dominio-monitoria/src/main/java/br/com/cem/dominio/monitoria/falta/FaltaServico.java - Absence and make-up → Authorization roles: checks permissions
dominio-monitoria/src/main/java/br/com/cem/dominio/monitoria/falta/FaltaServico.java - Session evaluation → Evaluation record: creates and edits
dominio-monitoria/src/main/java/br/com/cem/dominio/monitoria/avaliacao/AvaliacaoServico.java - Session evaluation → Evaluation identifier: identifies records
dominio-monitoria/src/main/java/br/com/cem/dominio/monitoria/avaliacao/AvaliacaoServico.java - Session evaluation → Session scheduling: checks session eligibility
dominio-monitoria/src/main/java/br/com/cem/dominio/monitoria/avaliacao/AvaliacaoServico.java - Session evaluation → User repository port: resolves author
dominio-monitoria/src/main/java/br/com/cem/dominio/monitoria/avaliacao/AvaliacaoServico.java - Email delivery → Gmail SMTP: delivers mail