Skip to content

DUP-Developer/M

Repository files navigation

DATABASE

install

(https://www.rethinkdb.com/docs/install/ubuntu/)[RethinkDB]

Back-end

  • Nodejs

Route

the access and eat the we API, just connect this url:

POST http://address/api/m?message=message_here

About M

M é composto por 3 partes principais que são:

  • DB: configuração de banco de dados onde faz as inserções e gerais e gerenciamento de banco de dados
  • engime: responsavel por traduzir o que o cliente esta dizendo, é o recognagion de M a interpretação de ações(é quem sabe o que ou quem chamar)
  • forward: carinha responsavel por socar as libs kk, ou seja, usado para fazer as chamadas de ações referente com o que foi traduzido no engimeM. Tipo ele sabe quem chamar depois de receber algumas informações de engimeM e tbm é responsavel por manter a conversação entre cliente e servidor (contexto)

Esses são os 3 pilares de M para execução geral de coisas.

contexto de conversação de M

Abaixo se encontra o objeto que é passado de uma lado para outro enviando informaões entre as duas partes

{
    //    limpar modulo  
    clear: () => {
        this.context.module = false
    },
    //    inserir mensagem
    write: (message) => {
        this.context.message = message
    },

    message: "", //messagens enviadas para o server
    goBack: false,
    module: false,
    drive: false

}

Funcionamento de letters or protocols*

Todas as letters/protocols possuem algumas coisas que são obrigatorias para seu funcionamento. esses itens(methods) são completamente importantes para que M funcione de forma correta.

Lembrando que para todo o funcionamento da solução M ela usa um esquema onde o nome do modulo é basicamente o involucro de determinadas ações, ou seja, ao definir o nome de um modulo M tenha cuidado em escolher algo bem sugestivo a ação que ela vai promover.

Segue a baixo os metodos de um module de M.

  • m: metodo responsavel para conter o contexto do kernel para manipulações de mensagens cliente/M
  • close: methodo responsavel por finalizar as conexões(destuindo a instancia de M no modulo) [Não exigido com rigidez]
  • engime: esse metodo é um metodo base para operações especiais que o modulo possa precisar, dentro dele e definido varios sub metodos para servirem o modulo durante sua execução
  • helpers: esse é um metodo importante que vai indicar o que cada metodo cadastrado no myTerms faz, com ele podemos ter ideia do que o sistema pode nos prover
  • myTerms: metodo principal de cadastro de modulo no ecosistema de M, pois e nele que esta as informações que seram armazenadas npo banco de dados e que no futuro servirão de base para a traduçao de ações
  • run: esse é o metodo masi importante de todo o modulo, pois ele é chamado por M para ser executado os modulos posteriormente criados e que foram traduzidos por M

Exemplos

run:

run: (m) => {
    //instanciando M
    financas.m = m
        
    //executando o metodo que o translator diz que é o certo
    financas[m.context.module.method]()
}

myTerms: aqui nos termos definimos quais palavras podem chamar o modulo e metodo, então a tradução de M verifica e já recupera essa informação e execura quem ela acha ser a coisa correta

    myTerms: [{
            terms: [
                "dinheiro", 'posso', 'gastar', 'tenho', 'quanto'
            ],
            method: 'disponivel',
            name: 'financas',
            found: 0
        },
        {
            terms: [
                "comprei", 'parada', 'uma', 'negocio'
            ],
            method: 'what',
            name: 'financas',
            found: 0
        }
    ]

About

the assistent virtual simple and cool

Resources

Stars

Watchers

Forks

Packages

No packages published