How gianse/zapchat works
ZapChat is a Node.js/MongoDB messaging application. Its main workflow is user interaction through the terminal menu or optional web interface, followed by coordinated account, contact, conversation, message, and reaction operations that persist in MongoDB. The graph includes the shared model and validation layers. The README documents messaging capabilities beyond the sampled excerpts; those are represented as product responsibilities, while uncertain implementation links are omitted. Source excerpts and the SOURCE INDEX support the shown internal wiring.
Main entry points: ChatService.js Chat workflows · Modelo.js Entity CRUD · Manutencao.js Database maintenance · Usuario.js User accounts
Components 20
User interfaces
- Terminal menu
src/cli/Menu.js - Terminal output
src/cli/Terminal.js - Web test UI
web/publico/app.js - Web server
web/ServidorWeb.js - Web routes
web/rotas.js - Application lifecycle
src/Aplicacao.js
Messaging domain
- Chat workflows
src/services/ChatService.js - User accounts
src/models/Usuario.js - Contacts
src/models/Contato.js - Conversations
src/models/Conversa.js - Messages
src/models/Mensagem.js - Reactions
src/models/Reacao.js
Persistence
- Entity CRUD
src/models/Modelo.js - MongoDB connection
src/database/Database.js - Database maintenance
src/database/Manutencao.js
Shared services
- Validation
src/utils/Validador.js - Password security
src/utils/Seguranca.js - Logging
src/utils/Logger.js
Other components
- User
- MongoDB
Connections 34
- User → Terminal menu: uses
README.md - Terminal menu → Chat workflows: invokes
src/cli/Menu.js - Terminal menu → Terminal output: displays through
src/cli/Menu.js - User → Web test UI: uses optionally
README.md - Web test UI → Web server: sends requests
- Web server → Web routes: dispatches
web/ServidorWeb.js - Web routes → Chat workflows: invokes
web/rotas.js - Web routes → User accounts: uses
web/rotas.js - Web routes → Database maintenance: uses
web/rotas.js - Application lifecycle → MongoDB connection: connects
src/Aplicacao.js - Application lifecycle → Terminal output: reports errors
src/Aplicacao.js - Chat workflows → User accounts: coordinates
src/services/ChatService.js - Chat workflows → Contacts: coordinates
src/services/ChatService.js - Chat workflows → Conversations: coordinates
src/services/ChatService.js - Chat workflows → Messages: coordinates
src/services/ChatService.js - Chat workflows → Reactions: coordinates
src/services/ChatService.js - Chat workflows → MongoDB connection: accesses
src/services/ChatService.js - User accounts → Entity CRUD: inherits CRUD
README.md - Contacts → Entity CRUD: inherits CRUD
README.md - Conversations → Entity CRUD: inherits CRUD
README.md - Messages → Entity CRUD: inherits CRUD
README.md - Reactions → Entity CRUD: inherits CRUD
README.md - Entity CRUD → MongoDB connection: reads and writes
src/models/Modelo.js - MongoDB connection → MongoDB: connects to
src/database/Database.js - Database maintenance → User accounts: maintains indices
src/database/Manutencao.js - Database maintenance → Contacts: maintains indices
src/database/Manutencao.js - Database maintenance → Conversations: maintains indices
src/database/Manutencao.js - Database maintenance → Messages: maintains indices
src/database/Manutencao.js - Database maintenance → Reactions: maintains indices
src/database/Manutencao.js - User accounts → Validation: validates with
src/models/Usuario.js - User accounts → Password security: hashes passwords
src/models/Usuario.js - Entity CRUD → Validation: validates through
src/models/Modelo.js - Application lifecycle → Logging: records events
src/Aplicacao.js - Chat workflows → Logging: records events
src/services/ChatService.js