Skip to content

Instantly share code, notes, and snippets.

@esbanarango
Created December 2, 2012 18:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save esbanarango/4190368 to your computer and use it in GitHub Desktop.
Save esbanarango/4190368 to your computer and use it in GitHub Desktop.
Descripción para aplicación de búsqueda de BDNG

#BDNG

Biblioteca Digital de Nueva Generación

###Búsquedas

La aplicación de búsquedas de BDNG está compuesta por dos partes, aplicación Front-end (JavaScript) y Back-end (xQuery). Se recomienda tener conocimiento previo de xQuery para poder entender mejor la estructura y funcionamiento del Back-end.

Aquí algunos links que pueden ser de gran utilidad.

####Organización de archivos

.
├── index.xq
├── layout
│   └── application_layout.xq
├── libraryModules
│   ├── busquedaAvanzada.xq
│   ├── busquedaBasica.xq
│   ├── certificacionRegistros.xq
│   ├── columnLeft.xq
│   ├── configVariables.xq
│   ├── display.xq
│   ├── features
│   │   └── liveSearch.xq
│   ├── feed.xq
│   ├── repositorios.xq
│   └── salidaFacetada.xq
├── navegacion.xql
├── procesarAdministracion.xq
├── procesarBusquedad.xq
├── procesarNavegacion.xq
├── repositoriosTree.xq
├── resources
│   ├── Images
│   ├── css
│   │   ├── app
│   │   │   ├── admin.css
│   │   │   ├── basic.css
│   │   │   └── displayRecords.css
│   │   ├── general
│   │   │   ├── chosen.css
│   │   │   ├── jackedup.css
│   │   │   ├── jquery.reject.css
│   │   │   ├── nanoscroller.css
│   │   │   ├── redmond
│   │   │   │   ├── images
│   │   │   │   └── jquery-ui-1.8.17.custom.css
│   │   │   ├── stylePaginate.css
│   │   │   └── tipTip.css
│   │   └── images
│   └── js
│       ├── app
│       │   ├── admin.js
│       │   ├── app.js
│       │   ├── commonFunctions.js
│       │   ├── navegacion.js
│       │   └── stopWords.js
│       └── general
│           ├── chosen.jquery.min.js
│           ├── humane.min.js
│           ├── jquery-1.7.1.min.js
│           ├── jquery-ui-1.8.17.custom.min.js
│           ├── jquery.jsonp.min.js
│           ├── jquery.nanoscroller.min.js
│           ├── jquery.paginate.js
│           ├── jquery.reject.min.js
│           ├── jquery.tipTip.minified.js
│           ├── jquery.xmlns.js
│           ├── modernizr.js
│           └── spin.min.js
├── temp.html
├── test
│   ├── test.js
│   ├── test_index.xq
│   └── test_procesarBusqueda.xq
└── user
    ├── Session.xq
    ├── User.xq
    ├── activarUsuario.xq
    ├── changePassword.xql
    ├── configWeb.xq
    ├── controllerLogin.xq
    ├── css
    │   ├── colorbox.css
    │   ├── default-style.css
    │   ├── display.css
    │   ├── front.css
    │   ├── register.css
    │   └── tipsy.css
    ├── images
    ├── js
    │   ├── captcha.js
    │   ├── jquery.colorbox.js
    │   ├── jquery.tipsy.js
    │   ├── jquery.validate.js
    │   ├── jsLogin.js
    │   ├── jsRegister.js
    │   ├── jsUsuarios.js
    │   └── load.js
    ├── loginF.xq
    ├── logout.xql
    ├── mail.xq
    ├── newAdmin.xq
    ├── profile.xql
    ├── recaptcha.xqm
    ├── recuperarPassword.xq
    ├── register.xq
    ├── retrievePass.xq
    ├── testmail.xq
    └── updateConf.xq

Front-end

Toda la parte del front-end se puede ver como una single-page application (SPA), ya que toda la interacción en esta, es a través de llamados asíncronos (Ajax) al Back-end. index.xq es el único archivo que es enviado directamente desde el servidor. La aplicación del Front-end se encuentra en:

$ resources/js/app

En esencia es Javascript puro, junto con jQuery. Se recomiendo en gran medida, para futuros desarrollos la utilización de algún framework del lado del cliente para el manejo y organización de todo el código JavaScript.

######Recomendaciones

Back-end

Archivos Básicos & Controladores

├── layout
│   └── application_layout.xq
├── index.xq
├── navegacion.xql
├── procesarAdministracion.xq
├── procesarBusquedad.xq
├── procesarNavegacion.xq
├── repositoriosTree.xq

Todos los archivos procesar*.xq (controladores) son los encargados de redireccionar las peticiones que llegan al servidor hacia las funciones especificas dentro de libraryModules.

######procesarAdministracion.xq

Este archivo recibe las peticiones para las acciones certify y delete cuando el usuario es un administrador. Estas acciones hacen parte de la funcionalidad de Validación de Documentos desde la aplicación de Búsquedas por parte del administrador.

######procesarBusquedad.xq

Este archivo recibe las peticiones de búsqueda para:

  • basica
  • avanzada
  • refineBusqueda
  • repInfo
  • Información de repositoríos por institucion para ser cargada dinámicamente en el panel de Búsqueda Avanzado
  • refineBusqueda
  • facetada

######procesarNavegacion.xq

Este archivo recibe la petición para navegacionFacetar; utilizada en la vista de navegación (navegacion.xql), la cual es cargada con Ajax.

Funcionalidades & Librería de Módulos

├── libraryModules
│   ├── busquedaAvanzada.xq
│   ├── busquedaBasica.xq
│   ├── certificacionRegistros.xq
│   ├── columnLeft.xq
│   ├── configVariables.xq
│   ├── display.xq
│   ├── features
│   │   └── liveSearch.xq
│   ├── feed.xq
│   ├── repositorios.xq
│   └── salidaFacetada.xq

Aquí es donde se encuentra toda la lógica de negocio para las funcionalidades específicas. Y es aquí donde se debe tener un buen conocimiento previo de xQuery.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment