From 69e36133cbaffe74a80d1fa46377fa2cd2c077c6 Mon Sep 17 00:00:00 2001 From: D'jalmar Gutierrez Date: Tue, 8 Nov 2016 10:25:04 -0400 Subject: [PATCH] se realizaron cambios para la puesta en produccion del sistema --- Gruntfile.js | 39 ++++-- INSTALL.md | 193 ++++++++++++---------------- README.md | 13 +- client/app/app.constant.js | 2 +- client/app/app.js | 13 +- client/index.html | 4 +- server/config/environment/shared.js | 2 +- server/config/local.env.sample.js | 4 +- 8 files changed, 127 insertions(+), 143 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 59819df..32f8cc0 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,11 +1,11 @@ // Generated on 2016-03-11 using generator-angular-fullstack 3.3.0 'use strict'; -module.exports = function (grunt) { +module.exports = function(grunt) { var localConfig; try { localConfig = require('./server/config/local.env'); - } catch(e) { + } catch (e) { localConfig = {}; } @@ -176,7 +176,9 @@ module.exports = function (grunt) { options: { map: true, processors: [ - require('autoprefixer')({browsers: ['last 2 version']}) + require('autoprefixer')({ + browsers: ['last 2 version'] + }) ] }, dist: { @@ -208,14 +210,14 @@ module.exports = function (grunt) { env: { PORT: process.env.PORT || 9001 }, - callback: function (nodemon) { - nodemon.on('log', function (event) { + callback: function(nodemon) { + nodemon.on('log', function(event) { console.log(event.colour); }); // opens browser on initial server start - nodemon.on('config:update', function () { - setTimeout(function () { + nodemon.on('config:update', function() { + setTimeout(function() { require('open')('http://localhost:8080/debug?port=5859'); }, 500); }); @@ -282,6 +284,15 @@ module.exports = function (grunt) { js: [ [/(assets\/images\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm, 'Update the JS to reference our revved images'] ] + }, + blockReplacements: { + base: function(block) { + if (!localConfig.BASE_URL) { + return [''].join(''); + } else { + return [''].join(''); + } + } } } }, @@ -572,10 +583,10 @@ module.exports = function (grunt) { server: { options: { compass: false, - precision:8 + precision: 8 }, files: { - '.tmp/app/app.css' : '<%= yeoman.client %>/app/app.scss' + '.tmp/app/app.css': '<%= yeoman.client %>/app/app.scss' } } }, @@ -653,12 +664,12 @@ module.exports = function (grunt) { }); // Used for delaying livereload until after server has restarted - grunt.registerTask('wait', function () { + grunt.registerTask('wait', function() { grunt.log.ok('Waiting for server reload...'); var done = this.async(); - setTimeout(function () { + setTimeout(function() { grunt.log.writeln('Done waiting!'); done(); }, 1500); @@ -668,7 +679,7 @@ module.exports = function (grunt) { this.async(); }); - grunt.registerTask('serve', function (target) { + grunt.registerTask('serve', function(target) { // if (target === 'dist') { // return grunt.task.run(['build', 'env:all', 'env:prod', 'express:prod', 'wait', 'open', 'express-keepalive']); // } @@ -701,7 +712,7 @@ module.exports = function (grunt) { ]); }); - grunt.registerTask('server', function () { + grunt.registerTask('server', function() { grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.'); grunt.task.run(['serve']); }); @@ -783,7 +794,7 @@ module.exports = function (grunt) { // // else { // return grunt.task.run([ - // 'env:all', + // '|:all', // 'env:test', // 'mocha_istanbul', // 'istanbul_check_coverage' diff --git a/INSTALL.md b/INSTALL.md index 597cd0c..7ddd798 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,24 +1,8 @@ ___ -## INSTALACIÓN +# INSTALACIÓN ___ -Prerrequisitos --------------- - -La siguiente instalación y configuración realizado en Sistema Operativo -Debian Jessie - -**Creacion de Usuario en Sistema Operativo** - -``` {.sourceCode .sh} -$ sudo adduser usuario_proyecto -``` - -**Agregar Usuario al grupo sudo del Sistema Operativo** - -``` {.sourceCode .sh} -$ sudo adduser usuario_proyecto sudo -``` +## Prerrequisitos **Instalando GIT** @@ -29,7 +13,7 @@ confiabilidad del mantenimiento de versiones de aplicaciones cuando Para la instalación realizar: -``` {.sourceCode .sh} +``` $ sudo apt-get install git ``` @@ -44,7 +28,7 @@ a través de su administrador **NPM**. Durante el proceso de instalación necesitaremos este binario. -``` {.sourceCode .sh} +``` $ sudo apt-get install curl ``` @@ -52,7 +36,7 @@ $ sudo apt-get install curl Para añadir los repositorios de node.js version 4.x debemos de ejecutar: -``` {.sourceCode .sh} +``` $ sudo curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - ``` @@ -60,7 +44,7 @@ $ sudo curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - Ahora realizaremos la instalación de node v4.4.0 -``` {.sourceCode .sh} +``` $ sudo apt-get install -y nodejs ``` @@ -72,13 +56,13 @@ permitira descargar librerias y enlazarlas. Antes debemos de hacer la instalación de paquetes necesarios para un copilado correcto. -``` {.sourceCode .sh} +``` $ sudo apt-get install build-essential ``` Debemos de seguir de la siguiente manera: -``` {.sourceCode .sh} +``` $ git clone http://github.com/isaacs/npm.git $ cd npm $ sudo make install @@ -86,7 +70,7 @@ $ sudo make install Para verificar si esta instalado correctamente: -``` {.sourceCode .sh} +``` $ npm info ``` @@ -95,59 +79,19 @@ $ npm info Un manejador de tareas, permite minimización, compilación, pruebas unitarias, y mucho más. -``` {.sourceCode .sh} +``` $ sudo npm install -g grunt-cli ``` -Backend-End -=========== **Instalando SASS** -``` {.sourceCode .sh} -$ sudo gem install sass -``` - -**Instalando PostgreSQL** - -PostgreSQL es un potente sistema de base de datos objeto-relacional de -código abierto. - -- Instalación - -``` {.sourceCode .sh} -$ sudo apt-get install postgresql postgresql-client postgresql-contrib -``` - -- Configuración - -Para poder realizar operaciones relacionadas con - -``` {.sourceCode .sql} -PostgreSQL: > -$ sudo su - postgres ``` - -Creando usuario para el sistema: - -``` {.sourceCode .sql} -postgres=# CREATE USER usuarioPersonal PASSWORD 'password'; -``` - -Cambiando privilegios de usuario: - -``` {.sourceCode .sql} -postgres=# ALTER ROLE usuarioPersonal WITH SUPERUSER; -``` - -Creando la Base de Datos para el sistema - -``` {.sourceCode .sql} -postgres=# CREATE DATABASE moduloPersonalDb WITH OWNER usuarioPersonal; +$ sudo gem install sass ``` **Clonar repositorio** -``` {.sourceCode .sh} +``` $ sudo su - usuario_proyecto $ cd ~ $ git clone git@gitlab.geo.gob.bo:SistemaGestionAdministrativa/ModuloPersonal.git @@ -156,19 +100,16 @@ $ cd ModuloPersonal Para instalar las dependencias del servidor -``` {.sourceCode .sh} +``` $ npm install ``` Para iniciar el servidor de desarrollo en el puerto 9000 -``` {.sourceCode .sh} +``` $ grunt serve ``` -Front-End -========= - **Instalando BOWER** Bower te permite administrar los componentes que contienen HTML, CSS, @@ -176,7 +117,7 @@ JavaScript, fuentes e incluso archivos de imagen. Bower no concatenar o minify código o hacer cualquier otra cosa - sólo instala las versiones correctas de los paquetes que necesita y sus dependencias. -``` {.sourceCode .sh} +``` $ npm install -g bower ``` @@ -184,90 +125,120 @@ $ npm install -g bower Un lenguaje de programación dinámico y de código abierto. -``` {.sourceCode .sh} +``` $ sudo apt-get install ruby-full ``` **Clonar repositorio** -``` {.sourceCode .sh} +``` $ sudo su - usuarioPersonal $ cd ~ -$ git clone git@gitlab.geo.gob.bo:SistemaGestionAdministrativa/ModuloPersonalCliente.git -$ cd ModuloPersonal +$ git clone https://gitlab.geo.gob.bo/SistemaGestionAdministrativa/ModuloPersonalCliente.git +$ cd ModuloPersonalCliente ``` Para instalar las dependencias del servidor -``` {.sourceCode .sh} +``` $ npm install ``` Para ara instalar las dependecias del cliente -``` {.sourceCode .sh} +``` $ bower install ``` Para iniciar el servidor de desarrollo en el puerto 9000 -``` {.sourceCode .sh} +``` $ grunt serve ``` -Servidor NGinx -============== +## Configuración de variables + +**Url del backend** + +Se debe configurar la url del backend al cual se esta conectando. El archivo que se debe modificar es */server/config/enviroment/shared.js*, en el cual se debe cambiar el contenido actual por la url del backend que sera consumido: + +``` +serverAddress: 'http://192.168.1.171:9000', +``` + +### Configuración adicional + +En el caso que el dominio sea de la forma: + +``` +http://dominio/carpeta +``` + +Se debe configurar en la aplicación, una variable en la cual se especifica la terminación de la url, en el caso del ejemplo se debe agregar */carpeta/* ya que la aplicación solo consideraria el dominio como *http://dominio/*. Esta configuración se la realiza en el archivo: */server/config/local.env.js*, en el caso de no existir el archivo, se puede usar como base el archivo local.env.sample.js, haciendo un renombramiento del mismo al nombre anteriormente dado, la variable que se debe configurar es: + +``` +BASE_URL: '/carpeta/', +``` + +## Puesta en producción + +### Generación del compilado + +Para compilar el proyecto se debe ejecutar el siguiente comando: + +``` +$ grunt build +``` + +Este comando genera la estructura de carpetas */dist/client/* dentro de la cual se encuentra el proyecto compilado + +**La compilación debe realizarse despues de modificar los archivos de configuración, para que los cambios en estos tengan efectos** -Servidor nginx (pronunciado en inglés “engine X”) es un servidor -web/proxy inverso ligero de alto rendimiento, optimizado para -aplicaciones Node.js. +### Servidor -A continuación, instalar Nginx +El servidor que se utilizara para publicar el sitio es *nginx* -``` {.sourceCode .sh} +#### Instalar Nginx + +``` $ sudo apt-get install nginx ``` Ahora abre el archivo de configuración del bloque servidor por defecto para la edición: -``` {.sourceCode .sh} +``` $ sudo nano /etc/nginx/sites-available/default ``` Insertar la siguiente configuración. Asegúrese de sustituir su propio nombre de dominio para el server (o la dirección IP si usted no tiene un -dominio configurado), y la aplicación dirección IP-Privada del servidor -para el APP\_PRIVATE\_IP\_ADDRESS . Además, cambiar el puerto ( 9000 ) -si la aplicación está configurado para escuchar en un puerto diferente: +dominio configurado) en el campo *server_name*. +Tambien debe configurar el path, este debe apuntar a la carpeta */dist/client/* del compilado +en el campo *root* -``` {.sourceCode .sh} +``` server { - listen 80; + listen 80; + server_name test.adsib.gob.bo/carpeta; + root /home/frontend/client; + + location /carpeta { #reemplazar la terminacion del dominio si tiene la forma http://dominio/carpeta + rewrite ^/carpeta(.*) $1 break; + expires -1; + add_header Pragma "no-cache"; + add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"; + try_files $uri$args $uri$args/ $uri $uri/ /index.html =404; + } - server_name sitio-de-prueba.gob.bo; - location / { - proxy_pass http://APP_PRIVATE_IP_ADDRESS:9000; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header Host $host; - proxy_cache_bypass $http_upgrade; - } } + ``` Una vez que haya terminado de añadir los bloques de localización para sus aplicaciones, guardar y salir. En el servidor, reiniciar Nginx: -``` {.sourceCode .sh} +``` $ sudo /et c/init.d/nginx restart ``` - -Esto configura la web del servidor para responder a las solicitudes en -su raíz. Suponiendo que nuestro servidor está disponible en example.com, -el acceso a a través de un navegador -web que enviar la solicitud a la dirección IP privada del servidor de -aplicaciones en el puerto 9000 , que se recibió y respondió a la Node.js -solicitud. diff --git a/README.md b/README.md index e0a4444..878a358 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,23 @@ Readme ====== -Este es el modulo de personal pertenece al sistema de gestión -administrativa. +Este es el cliente__(página web)__ del sistema de Gestion de Personal. +Esta aplicación esta desarrollada usando Angular 1.4 +Se conecta con el backend del sistema de Gestion de Personal. Equipo ------ **Programadores** - * D'jalmar Gutierrez + * D'jalmar Gutierrez - * Teodoro Nina + * Teodoro Nina **Pasante** - * Gustavo Callejas + * Gustavo Callejas Prerequisitos @@ -25,7 +26,6 @@ Prerequisitos - [Git] - [Node.js and npm] Node \^4.2.3, npm \^2.14.7 - [Grunt] (`npm install --global grunt-cli`) -- [Postgresql] Ejecución --------- @@ -53,4 +53,3 @@ integración) del proyecto [Git]: https://git-scm.com/ [Node.js and npm]: nodejs.org [Grunt]: http://gruntjs.com/ - [Postgresql]: http://www.postgresql.org.es/ diff --git a/client/app/app.constant.js b/client/app/app.constant.js index 06cbb4b..440c1ec 100644 --- a/client/app/app.constant.js +++ b/client/app/app.constant.js @@ -3,7 +3,7 @@ angular.module('moduloPersonalApp.constants', []) -.constant('appConfig', {userRoles:['guest','user','ADMINISTRATOR'],serverAddress:'http://localhost:9000',clientAddress:'http:localhost:9000'}) +.constant('appConfig', {userRoles:['guest','user','ADMINISTRATOR'],serverAddress:'http://test.adsib.gob.bo/api_contratacion',clientAddress:'http:localhost:9000'}) ; })(angular); \ No newline at end of file diff --git a/client/app/app.js b/client/app/app.js index a2ab6a6..a7b5c79 100644 --- a/client/app/app.js +++ b/client/app/app.js @@ -16,21 +16,22 @@ angular.module('moduloPersonalApp', [ 'ui.tree' ]) .run( - ['$rootScope', '$state', '$stateParams', - function ($rootScope, $state, $stateParams) { + ['$rootScope', '$state', '$stateParams','appConfig','$location', + function ($rootScope, $state, $stateParams, appConfig, $location) { // It's very handy to add references to $state and $stateParams to the $rootScope // so that you can access them from any scope within your applications.For example, //
  • will set the
  • // to active whenever 'contacts.list' or one of its decendents is active. + // $location.path('/asd/'); $rootScope.$state = $state; $rootScope.$stateParams = $stateParams; } ] ) - .config(function ($urlRouterProvider, $locationProvider) { - - $urlRouterProvider - .otherwise('/'); + .config(function ($urlRouterProvider, $locationProvider,appConfig) { + // + // $urlRouterProvider + // .otherwise('/'); $locationProvider.html5Mode(true); }); diff --git a/client/index.html b/client/index.html index 4c6dba9..0a4af73 100644 --- a/client/index.html +++ b/client/index.html @@ -9,7 +9,9 @@ + + Modulo Personal @@ -78,7 +80,7 @@ - + diff --git a/server/config/environment/shared.js b/server/config/environment/shared.js index 7dc434f..253ec24 100644 --- a/server/config/environment/shared.js +++ b/server/config/environment/shared.js @@ -3,6 +3,6 @@ module.exports = module.exports = { // List of user roles userRoles: ['guest', 'user', 'ADMINISTRATOR'], - serverAddress: process.env.SERVER_ADDRESS || 'http://localhost:9000', + serverAddress: 'http://test.adsib.gob.bo/api_contratacion', clientAddress: 'http:localhost:9000' }; diff --git a/server/config/local.env.sample.js b/server/config/local.env.sample.js index 8f41563..8af2cf5 100644 --- a/server/config/local.env.sample.js +++ b/server/config/local.env.sample.js @@ -6,9 +6,9 @@ // You will need to set these on the server you deploy to. module.exports = { - DOMAIN: 'http://localhost:9000', + DOMAIN: 'http://test.adsib.gob.bo/contratacion', SESSION_SECRET: 'modulopersonal-secret', - + // BASE_URL:'/contratacion/' // Control debug level for modules using visionmedia/debug DEBUG: '' }; -- GitLab