Commit 4e79155f authored by D’jalmar Gutierrez Titirico's avatar D’jalmar Gutierrez Titirico 🚲
Browse files

Merge branch 'desarrollo' into 'master'

Primer release oficial



See merge request !67
parents a587ea51 29adaa96
// 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 ['<base href="/">'].join('');
} else {
return ['<base href="', localConfig.BASE_URL, '">'].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'
......
___
## INSTALACIÓN
# INSTALACIÓN
___
# Prerrequisitos
La siguiente instalación y configuración realizado en Sistema Operativo Debian Jessie
**Creacion de Usuario en Sistema Operativo**
```sh
$ sudo adduser usuarioPersonal
```
**Agregar Usuario al grupo sudo del Sistema Operativo**
```sh
$ sudo adduser usuarioPersonal sudo
```
## Prerrequisitos
**Instalando GIT**
Git (pronunciado "guit" ) es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente.
Git (pronunciado “guit” ) es un software de control de versiones
diseñado por Linus Torvalds, pensando en la eficiencia y la
confiabilidad del mantenimiento de versiones de aplicaciones cuando
éstas tienen un gran número de archivos de código fuente.
Para la instalación realizar:
```sh
```
$ sudo apt-get install git
```
**Instalando nodejs y npm**
>Node.js es un entorno de desarrollo basado en JavaScript que permite la ejecución de servicios y eventos del lado del servidor. Existen múltiples librerias que podriamos incorporar a Node,js, esto lo haremos a través de su administrador NPM.
Node.js es un entorno de desarrollo basado en JavaScript que permite la
ejecución de servicios y eventos del lado del servidor. Existen
múltiples librerías que podríamos incorporar a Node,js, esto lo haremos
a través de su administrador **NPM**.
**Instalar Curl**
>
**Instalar Curl***
Durante el proceso de instalación necesitaremos este binario.
>Durante el proceso de isntalación necesitaremos este binario.
```sh
```
$ sudo apt-get install curl
```
>
**Añadiendo los repositorios de NodeSource***
**Añadiendo los repositorios de NodeSource**
Para añadir los repositorios de node.js version 4.x debemos de ejecutar:
>Para añadir los repositorios de node.js version 4.x debemos de ejecutar:
```sh
```
$ sudo curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
```
>
**Instalando Node.js***
**Instalando Node.js**
>Ahora realizaremos la instalacion de node v4.4.0
```sh
Ahora realizaremos la instalación de node v4.4.0
```
$ sudo apt-get install -y nodejs
```
>
**Instalando NPM***
**Instalando NPM**
npm(node package manager) es el gestor de paquetes de Node.js, nos
permitira descargar librerias y enlazarlas.
Antes debemos de hacer la instalación de paquetes necesarios para un
copilado correcto.
```
$ sudo apt-get install build-essential
```
>npm(node package manager) es el gestor de paquetes de Node.js, nos permitira descargar librerias y enlazarlas.
Debemos de seguir de la siguiente manera:
>Debemos de seguir de la sigueinte manera:
```sh
```
$ git clone http://github.com/isaacs/npm.git
$ cd npm
$ sudo make install
```
>Para verificar si esta instalado correctamente:
```sh
Para verificar si esta instalado correctamente:
```
$ npm info
```
**Instalando BOWER**
**Instalando Gruntjs**
Bower te permite administrar los componentes que contienen HTML, CSS, 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.
```sh
$ npm install -g bower
Un manejador de tareas, permite minimización, compilación, pruebas
unitarias, y mucho más.
```
$ sudo npm install -g grunt-cli
```
**Instalando Ruby**
**Instalando SASS**
Un lenguaje de programación dinámico y de código abierto.
```sh
$ sudo apt-get install ruby-full
```
$ sudo gem install sass
```
**Instalando Gruntjs**
**Clonar repositorio**
Un manejador de tareas, permite minimización, compilación, pruebas unitarias, y mucho más.
```sh
$ sudo npm install -g grunt-cli
```
$ sudo su - usuario_proyecto
$ cd ~
$ git clone git@gitlab.geo.gob.bo:SistemaGestionAdministrativa/ModuloPersonal.git
$ cd ModuloPersonal
```
**Instalando PostgreSQL**
PostgreSQL es un potente sistema de base de datos objeto-relacional de código abierto.
Para instalar las dependencias del servidor
***Instalación***
```sh
$ sudo apt-get install postgresql postgresql-client postgresql-contrib
```
***Configuración***
Para poder realizar operaciones relacionadas con PostgreSQL:
>
```sh
$ sudo su - postgres
$ npm install
```
Creando usuario para el sistema:
```sqldb
postgres=# CREATE USER usuarioPersonal PASSWORD 'password';
Para iniciar el servidor de desarrollo en el puerto 9000
```
$ grunt serve
```
Cambiando privilegios de usuario:
```sqlDB
postgres=# ALTER ROLE usuarioPersonal WITH SUPERUSER;
**Instalando BOWER**
Bower te permite administrar los componentes que contienen HTML, CSS,
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.
```
$ npm install -g bower
```
Creando la Base de Datos para el sistema
```sqldb
postgres=# CREATE DATABASE moduloPersonalDb WITH OWNER usuarioPersonal;
**Instalando Ruby**
Un lenguaje de programación dinámico y de código abierto.
```
$ sudo apt-get install ruby-full
```
## Clonar repositorio
**Clonar repositorio**
```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 dependecias del servidor
```sh
Para instalar las dependencias del servidor
```
$ npm install
```
Para ara instalar las dependecias del cliente
```sh
```
$ bower install
```
Para iniciar el servidor de desarrollo en el puerto 9000
```sh
```
$ grunt serve
```
## Instalacion y configuracion de 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
```
Servidor nginx (pronunciado en inglés “engine X”) es un servidor web/proxy inverso ligero de alto rendimiento, optimizado para aplicaciones Node.js.
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:
A continuación, instalar Nginx
```sh
```
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
El servidor que se utilizara para publicar el sitio es *nginx*
#### Instalar Nginx
```
$ sudo apt-get install nginx
```
Ahora abre el archivo de configuración del bloque servidor por defecto para la edición:
```sh
Ahora abre el archivo de configuración del bloque servidor por defecto
para la edición:
```
$ 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:
```sh
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) en el campo *server_name*.
Tambien debe configurar el path, este debe apuntar a la carpeta */dist/client/* del compilado
en el campo *root*
```
server {
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:
```sh
Una vez que haya terminado de añadir los bloques de localización para
sus aplicaciones, guardar y salir. En el servidor, reiniciar Nginx:
```
$ 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 http://sitio-de-prueba.gob.bo/ 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.
# modulo-personal-cliente
Readme
======
Este es el cliente del modulo de personal del sistema de gestion 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.
## Desarrolladores
- D'jalmar
- David
- Gustavo
Equipo
------
### Prerequisitos
**Programadores**
- [Git](https://git-scm.com/)
- [Node.js and npm](nodejs.org) Node ^4.2.3, npm ^2.14.7
- [Bower](bower.io) (`npm install --global bower`)
- [Ruby](https://www.ruby-lang.org) and then `gem install sass`
- [Grunt](http://gruntjs.com/) (`npm install --global grunt-cli`)
* D'jalmar Gutierrez <mailto:dgutierrez@adsib.gob.bo>
### Para iniciar el proyecto en desarrollo se deben ejecutar los siguientes comandos en la terminal
* Teodoro Nina <mailto:tnina@adsib.gob.bo>
1. Ejecutar `npm install` para instalar las dependecias del servidor.
2. Ejecutar `bower install` para instalar las dependecias del cliente.
**Pasante**
* Gustavo Callejas <mailto:gcallejas@adsib.gob.bo>
Prerequisitos
-------------
- [Git]
- [Node.js and npm] Node \^4.2.3, npm \^2.14.7
- [Grunt] (`npm install --global grunt-cli`)
Ejecución
---------
Para iniciar el proyecto en desarrollo se deben ejecutar los siguientes
comandos en la terminal
1. Ejecutar `npm install` para instalar las dependecias del servidor.
2. Ejecutar `grunt serve` para iniciar el servidor de desarrollo. Debe
iniciar automaticamente el explorador.
3. Ejecutar `grunt serve` para iniciar el servidor de desarrollo. Debe iniciar automaticamente el explorador.
Compilación y Desarrollo
------------------------
## Compilacion y desarrollo
Ejecutar `grunt build` para compilar el proyecto, y el resultado de esa
compilación se encuentra en la carpeta `dist` luego ejecutar **grunt
serve** para una vista previa.
Ejecutar `grunt build` para compilar el proyecto, el proyecto compilado se encuentra en la carpeta `dist` luego ejecutar `grunt serve` para una vista previa.
Test
----
## Tests
Ejecutar `npm test` para ejecutar todos los test(unitarios y de
integración) del proyecto
Ejecutar `npm test` para ejecutar todos los test(unitarios y de integracion) del proyecto
[Git]: https://git-scm.com/
[Node.js and npm]: nodejs.org
[Grunt]: http://gruntjs.com/
......@@ -2,24 +2,30 @@
"name": "modulo-personal",
"version": "0.0.0",
"dependencies": {
"angular": "~1.4.10",
"angular": "1.4.12",
"json3": "~3.3.1",
"es5-shim": "~3.0.1",
"bootstrap-sass-official": "~3.1.1",
"bootstrap": "~3.1.1",
"angular-resource": "~1.4.0",
"angular-cookies": "~1.4.0",
"angular-sanitize": "~1.4.0",
"angular-bootstrap": "~1.2.4",
"angular-sanitize": "~1.4.11",
"angular-bootstrap": "~1.2.5",
"font-awesome": ">=4.1.0",
"lodash": "~2.4.1",
"angular-ui-router": "~0.2.18",
"angular-validation-match": "~1.4.0",
"angular-animate": "^1.4.9",
"ng-tags-input": "^3.0.0"
"angular-validation-match": "~1.4.1",
"angular-animate": "~1.4.11",
"ng-tags-input": "3.1.1",
"ui-router-extras": "^0.1.2",
"angular-i18n": "^1.5.6",
"angular-ui-tree": "^2.16.0",
"angular-loading-bar": "^0.9.0",
"raphael": "^2.2.1",
"jquery.easing": "^1.3.1"
},
"devDependencies": {
"angular-mocks": "~1.4.0"
"angular-mocks": "~1.4.11"
},
"overrides": {
"ng-tags-input": {
......@@ -28,6 +34,11 @@
"ng-tags-input.min.css",
"ng-tags-input.bootstrap.min.css"
]
},
"angular-i18n": {
"main": [
"angular-locale_es-bo.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
......@@ -8,26 +8,30 @@ angular.module('moduloPersonalApp', [
'ngSanitize',
'ngTagsInput',
'ngAnimate',
'angular-loading-bar',
'ui.router',
'ui.bootstrap',
'validation.match'
'validation.match',
'ct.ui.router.extras',
'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,
// <li ng-class="{ active: $state.includes('contacts.list') }"> will set the <li>
// 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);
});
......@@ -7,6 +7,9 @@ $gray-dark: #373a3c !default;
$btn-secondary-color: $gray-dark !default;
$btn-secondary-bg: #fff !default;
$btn-secondary-border: #ccc !default;
//textos personalizados
$state-danger-text: $brand-danger;
$state-success-text: $brand-success;
$icon-font-path: "../bower_components/bootstrap-sass-official/vendor/assets/fonts/bootstrap/";
@import '../bower_components/bootstrap-sass-official/vendor/assets/stylesheets/bootstrap';
$fa-font-path: "../bower_components/font-awesome/fonts";
......@@ -110,6 +113,8 @@ tags-input.primary .tags .tag-item {
border-radius: 4px;
}