docs: more info

docs:  more info
This commit is contained in:
Leifer Mendez
2022-12-26 14:08:40 +01:00
committed by GitHub
17 changed files with 238 additions and 52 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -6,10 +6,10 @@
*
*/
@import url('./fonts.css');
@tailwind base;
@tailwind components;
@tailwind utilities;
@import url('./fonts.css');
@layer components {
.btn {
@@ -36,12 +36,16 @@
@apply mt-4 font-semibold text-lg;
}
.slot code {
@apply text-xs font-mono;
.slot p code {
@apply text-xs font-mono bg-stone-100 dark:bg-slate-600 dark:text-white text-red-500 p-1 rounded-sm;
}
.slot pre {
@apply bg-gray-800 dark:bg-slate-800 p-3 rounded w-full max-w-lg text-gray-100 flex my-2;
@apply w-full flex my-2;
}
.slot pre code {
@apply p-3 rounded-sm min-w-[32rem] w-fit bg-gray-800 dark:bg-slate-800 text-gray-100 text-xs;
}
.slot a {
@@ -53,7 +57,7 @@
}
.slot img {
@apply rounded drop-shadow-2xl;
@apply rounded-sm drop-shadow-2xl;
}
.slot ul {

View File

@@ -4,24 +4,22 @@ import { useLocation } from '@builder.io/qwik-city'
/**
* options = [] array con la lista de opciones de la documentacion
*/
export default component$(
({
options = [],
}: {
options: { link: string; name: string; class?: string }[]
}) => {
const { pathname } = useLocation()
const editUrl = ` https://github.com/codigoencasa/bot-whatsapp/edit/dev/packages/docs/src/routes${pathname}index.mdx`
return (
<div>
<ul>
{options.map((opt) => (
<li class={opt.class}>
<a href={editUrl}>{opt.name}</a>
</li>
))}
</ul>
</div>
)
}
)
export default component$(() => {
const { pathname } = useLocation()
const editUrl = ` https://github.com/codigoencasa/bot-whatsapp/edit/dev/packages/docs/src/routes${pathname}index.mdx`
return (
<div class={'pb-3'}>
<ul>
<li>
<a target={'_blank'} class={'font-semibold'} href={editUrl}>
📄 Editar esta pagina
</a>
<p class={'text-xs'}>
Forma parte de esta comunidad mejorando la documentación
siente libre de poder agregar o editar lo que quieras
</p>
</li>
</ul>
</div>
)
})

View File

@@ -0,0 +1,52 @@
import { component$ } from '@builder.io/qwik'
import { useLocation } from '@builder.io/qwik-city'
// @ts-ignore
import { src as qwik } from '~/assets/images/qwik.png?width=100&metadata'
// @ts-ignore
import { src as leanga } from '~/assets/images/leanga.png?width=40&metadata'
/**
* options = [] array con la lista de opciones de la documentacion
*/
export default component$(() => {
const { pathname } = useLocation()
const editUrl = ` https://github.com/codigoencasa/bot-whatsapp/edit/dev/packages/docs/src/routes${pathname}index.mdx`
return (
<div>
<ul>
<li>
<a target={'_blank'} class={'font-semibold'} href={editUrl}>
🙌 Sponsors
</a>
</li>
<li>
<a target={'_blank'} href="https://qwik.builder.io/">
<picture>
<img
src={qwik}
class="border border-slate-200 rounded my-2 p-1 bg-gray-50 dark:border-gray-600 dark:bg-gray-700"
alt="Qwind Hero Image (Cool dog)"
loading="eager"
decoding="async"
/>
</picture>
</a>
</li>
<li>
<a target={'_blank'} href="https://leangasoftware.es/">
<picture>
<img
src={leanga}
class="border border-slate-200 rounded my-2 p-1 bg-gray-50 dark:border-gray-600 dark:bg-gray-700"
alt="Qwind Hero Image (Cool dog)"
loading="eager"
decoding="async"
/>
</picture>
</a>
</li>
</ul>
</div>
)
})

View File

@@ -8,3 +8,5 @@ export interface DocumentationCtx {
export const GlobalStore =
createContext<DocumentationCtx[]>('documentation-site')
export const AppSetting = createContext<{ repo: string }>('app-settings')

View File

@@ -34,30 +34,30 @@ export default component$(() => {
list: [
{ name: 'Vista rápida', link: '/docs' },
{ name: 'Instalación', link: '/docs/install' },
{ name: 'Ejemplo', link: '/docs/example' },
{ name: 'Pruebalo', link: '/docs/example' },
],
},
{
title: 'Esenciales',
list: [
{ name: 'Resumen', link: '/docs/essential' },
{ name: 'Proveedores', link: '/docs/install' },
{ name: 'Base de datos', link: '/docss' },
{ name: 'Conceptos', link: '/docs/essential' },
{ name: 'Conversaciones', link: '/docs/flows' },
{ name: 'Proveedores', link: '/docs/providers' },
{ name: 'Base de datos', link: '/docs/database' },
],
},
{
title: 'Avanzado',
list: [
{ name: 'Migración', link: '/docs/migration' },
{ name: 'Extender funcionalidades', link: '/' },
{ name: 'Extender funcionalidades', link: '/docs/custom' },
],
},
{
title: 'Comunidad',
list: [
{ name: 'Unirme al proyecto', link: '/' },
{ name: 'Sponsors', link: '/' },
{ name: 'Roadmap', link: '/' },
{ name: 'Unirme al proyecto', link: '/docs/join' },
{ name: 'Sponsors', link: '/docs/sponsors' },
],
},
])

View File

@@ -0,0 +1,3 @@
# Extender Funcionalidades
...

View File

@@ -0,0 +1,32 @@
import Alert from '../../../components/widgets/Alert'
# DataBase (Base de datos)
<Alert>
⚡ Dependiendo del tipo de conector que utlices puede que necesites pasar
algunas configuracion adicional como **user, host, password** para esos
casos te recomendamos guiarte de los
**[starters](https://github.com/codigoencasa/bot-whatsapp/tree/dev/starters/apps)**
o si gustas puedes editar esta documentación para ir agregando más info
</Alert>
Es la pieza encargada de mantener el **"estado"** de una conversación, para mayor facilidad la libreria te proporcia diferentes conectores que se de adapten mejor a tu desarrollo
```js
const MongoAdapter = require('@bot-whatsapp/database/mongo')
....
const adapterDB = new MongoAdapter({
dbUri: 'mongodb://0.0.0.0:27017',
dbName: 'db_bot',
})
```
Los conectores disponibles hasta el momento son los siguientes:
`require('@bot-whatsapp/database/mock')`
`require('@bot-whatsapp/database/mongo')`
`require('@bot-whatsapp/database/mysql')`
`require('@bot-whatsapp/database/json')`

View File

@@ -1,6 +1,14 @@
import Alert from '../../../components/widgets/Alert'
# Conceptos
Durante el desarrollo de este sistema se elaboraron tres (3) conceptos principales que conformar el funcionamiento
El desarrollo de la librería se base en tres (3) piezas claves para su correcto funcionamiento:
- **Flow:** Encargado de construir todo el contexto de la conversación, finalmente su objetivo es brindar una capa amigable al desarrollador.
- **Provider:** Como si de un [conector](https://www.dignited.com/wp-content/uploads/2019/06/Plug-type-768x432.jpg) se tratara el objetivo es poder cambiar facilmente de proveedor de Whatsapp en minutos
sin el riesgo de dañar otras partes del bot
- **Database:** Siguiendo la linea de pensamiento de conectores, de igual manera que el provider nos brinda la capacidad de poder cambiar de capa de persistencia de datos (guardar datos) sin invertir tiempo en
reescribir nuestro flujo.
---
@@ -29,6 +37,14 @@ const flowPrincipal = addKeyword(['hola', 'alo'])
## Provider (Proveedor)
<Alert>
⚡ Dependiendo del tipo de proveedor que utlices puede que necesites pasar
algunas configuracion adicional como **token, api, etc.** para esos casos te
recomendamos guiarte de los
**[starters](https://github.com/codigoencasa/bot-whatsapp/tree/dev/starters/apps)**
o si gustas puedes editar esta documentación para ir agregando más info
</Alert>
Es la pieza que conectara tu flujo con Whatsapp. En este chatbot tenemos varios proveedores disponibles la mayoria gratis pero tambien tenemos integracion la api oficial de whatsapp o twilio
```js
@@ -39,26 +55,45 @@ const adapterProvider = createProvider(WhatsappProvider)
Los proveedores disponibles hasta el momento son los siguientes:
### [whatsapp-web.js](https://github.com/pedroslopez/whatsapp-web.js)
[whatsapp-web.js](https://github.com/pedroslopez/whatsapp-web.js) `require('@bot-whatsapp/provider/web-whatsapp')`
**require('@bot-whatsapp/provider/web-whatsapp')**
[Venom](https://github.com/orkestral/venom) `require('@bot-whatsapp/provider/venom')`
### [Venom](https://github.com/orkestral/venom)
[Baileys](https://github.com/adiwajshing/Baileys) `require('@bot-whatsapp/provider/baileys')`
**require('@bot-whatsapp/provider/venom')**
[Meta Official](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages) `require('@bot-whatsapp/provider/meta')`
### [Baileys](https://github.com/adiwajshing/Baileys)
**require('@bot-whatsapp/provider/baileys')**
### [Meta Official](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages)
**require('@bot-whatsapp/provider/meta')**
### [Twilio Official](https://www.twilio.com/es-mx/messaging/whatsapp)
**require('@bot-whatsapp/provider/twilio')**
[Twilio Official](https://www.twilio.com/es-mx/messaging/whatsapp) `require('@bot-whatsapp/provider/twilio')`
---
## DataBase (Base de datos)
<Alert>
⚡ Dependiendo del tipo de conector que utlices puede que necesites pasar
algunas configuracion adicional como **user, host, password** para esos
casos te recomendamos guiarte de los
**[starters](https://github.com/codigoencasa/bot-whatsapp/tree/dev/starters/apps)**
o si gustas puedes editar esta documentación para ir agregando más info
</Alert>
Es la pieza encargada de mantener el **"estado"** de una conversación, para mayor facilidad la libreria te proporcia diferentes conectores que se de adapten mejor a tu desarrollo
```js
const MongoAdapter = require('@bot-whatsapp/database/mongo')
....
const adapterDB = new MongoAdapter({
dbUri: 'mongodb://0.0.0.0:27017',
dbName: 'db_bot',
})
```
Los conectores disponibles hasta el momento son los siguientes:
`require('@bot-whatsapp/database/mock')`
`require('@bot-whatsapp/database/mongo')`
`require('@bot-whatsapp/database/mysql')`
`require('@bot-whatsapp/database/json')`

View File

@@ -0,0 +1,20 @@
# Flow (Flujos)
Los flujos hace referencia al hecho de construir un flujo de conversion. Esto es un flow podemos observar que estan presente dos metodos importantes **addKeyword** y el **addAnswer**.
Tan sencillo como decir **palabra/s clave** y **mensaje a responder**
Ambos metodos **[addKeyword](https://github.com/codigoencasa/bot-whatsapp/blob/dev/packages/bot/io/methods/addKeyword.js)** y el **[addAnswer](https://github.com/codigoencasa/bot-whatsapp/blob/dev/packages/bot/io/methods/addAnswer.js)** tienen una serie opciones disponibles
```js
const {
createBot,
createProvider,
createFlow,
addKeyword,
} = require('@bot-whatsapp/bot')
const flowPrincipal = addKeyword(['hola', 'alo'])
.addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
.addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
```

View File

@@ -11,7 +11,7 @@ import Alert from '../../components/widgets/Alert'
## ¿Que es esto?
Esto es una librería que te permitirá **crear chatbot para WhatsApp** en tan solo minutos de una manera ágil y rápida. A lo largo de esta documentación encontrarás ejemplos y material de ayuda.
**@bot-whatsapp** es una librería que te permitirá **crear chatbot para WhatsApp** en tan solo minutos de una manera ágil y rápida. A lo largo de esta documentación encontrarás ejemplos y material de ayuda.
Si eres una persona con **poco tiempo y gran capacidad** de comprensión con conocimientos, ejecutando proyectos en Node.js y manejo de terminal.
Esta documentación te ayudará a instalar tu bot de WhatsApp en simples pasos con el propósito de que tengas un chatbot funcional **en solo minutos.**

View File

@@ -0,0 +1,3 @@
# Unirme
...

View File

@@ -1,8 +1,10 @@
import { component$, Slot, useContext } from '@builder.io/qwik'
import type { DocumentHead } from '@builder.io/qwik-city'
import ExtraBar from '~/components/widgets/ExtraBar'
import Footer from '~/components/widgets/Footer'
import Header from '~/components/widgets/Header'
import NavBar from '~/components/widgets/NavBar'
import SponsorBar from '~/components/widgets/SponsorBar'
import { GlobalStore } from '~/contexts'
// import Navigation from '~/components/widgets/Navigation'
// import Collaborators from '~/components/widgets/Collaborators'
@@ -37,7 +39,8 @@ export default component$(() => {
'hidden lg:block fixed z-20 inset-0 top-[4rem] right-[max(0px,calc(50%-48rem))] left-auto w-[14.5rem] py-5 px-8 overflow-y-auto'
}
>
<NavBar options={store} />
<ExtraBar />
<SponsorBar />
</div>
</div>
</main>

View File

@@ -0,0 +1,31 @@
import Alert from '../../../components/widgets/Alert'
# Provider (Proveedor)
<Alert>
⚡ Dependiendo del tipo de proveedor que utlices puede que necesites pasar
algunas configuracion adicional como **token, api, etc.** para esos casos te
recomendamos guiarte de los
**[starters](https://github.com/codigoencasa/bot-whatsapp/tree/dev/starters/apps)**
o si gustas puedes editar esta documentación para ir agregando más info
</Alert>
Es la pieza que conectara tu flujo con Whatsapp. En este chatbot tenemos varios proveedores disponibles la mayoria gratis pero tambien tenemos integracion la api oficial de whatsapp o twilio
```js
const WhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
....
const adapterProvider = createProvider(WhatsappProvider)
```
Los proveedores disponibles hasta el momento son los siguientes:
[whatsapp-web.js](https://github.com/pedroslopez/whatsapp-web.js) `require('@bot-whatsapp/provider/web-whatsapp')`
[Venom](https://github.com/orkestral/venom) `require('@bot-whatsapp/provider/venom')`
[Baileys](https://github.com/adiwajshing/Baileys) `require('@bot-whatsapp/provider/baileys')`
[Meta Official](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages) `require('@bot-whatsapp/provider/meta')`
[Twilio Official](https://www.twilio.com/es-mx/messaging/whatsapp) `require('@bot-whatsapp/provider/twilio')`

View File

@@ -0,0 +1,3 @@
# Sponsors
...