====== SISO ======
//Sistema de Integración Social para Organizaciones//
----
===== Introducción =====
===== Objetivos =====
==== General ====
Implementar un sistema de redes de integración social para diferentes tipos de organizaciones.
==== Específicos ====
* Listar funcionalidades necesarias para el proyecto.
* Identificar software libre que cumpla con funcionalidades requeridas.
* Seleccionar al menos cuatro proyectos de software libre según las necesidades de nuestro proyecto.
* Poner en funcionamiento los proyectos seleccionados y evaluar las funcionalidades elegidas.
* Seleccionar el software que haya presentado mejores resultados e identificar las modificaciones e implementaciones necesarias para cumplir las funcionalidades requeridas.
* Implementar las funcionalidades requeridas del software que no estén presentes en los proyectos analizados.
===== Instalación =====
==== Apache: Servidor Http ====
Apache es el servidor web open source mas popular, ya que se estima que corre sobre mas del 50% de servidores web alrededor del mundo.
Para su instalación primero precedemos a actualizar nuestros paquetes. Así que escribimos en una terminal:
sudo apt-get update
Luego para instalar Apache escribimos el comando
sudo apt-get install apache2
de esta manera se instala Apache, ahora si queremos probar que funcione correctamente, primero averiguamos nuestra dirección IP con el método que se desee, y la ponemos en nuestro navegador de internet, y si Apache funciona correctamente debe aparecer una página que dice “It works!” junto con más información adicional.
==== PHP: Php Hypertext Processor ====
PHP es un lenguaje de programación open source generalmente usado para paginas web.
Para instalarlo usamos el siguiente comando:
sudo apt-get install php5 libapache2-mod-php5 php5-mycrypt
==== MySql: Base de Datos ====
[[http://www.mysql.com/|MySQL]] es un programa open source que contiene un sistema para manejar bases de datos.
Para instalarlo escribimos los siguientes comandos en una terminal:
sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
Después de instalado, lo activamos con el comando:
sudo mysql_install_db
Ahora corremos el script para la configuración:
sudo /usr/bin/mysql_secure_installation
Después escribimos nuestra contraseña para root, y luego nos preguntaran si queremos cambiar la contraseña de root, así que seleccionamos “N” para no hacerlo. Posteriormente contestamos “y” a las 4 preguntas siguientes para finalizar.
==== Sistemas Utilizados ====
=== Wordpress ===
{{:ie0117_proyectos_ii_2014:proyecto_1:wordpress-logo-notext-rgb.png?200|}}
[[https://wordpress.org/|Wordpress]] es un sistema para blogs, utilizado por una gran cantidad de personas, puede ser modificado mediante plugins, temas, o bien su propio código para llegar a ser una herramienta versátil en la creación de paginas web con una gran variedad de funcionalidades.
De las razones más importantes para su popularidad ha sido la buena documentación del proyecto así como la comunidad activa en el proyecto, que permite el desarrollo del proyecto, y aprendizaje de nuevos usuarios.
Para instalar Wordpress en una computadora es necesario tener un servidor(como [[teaching:ie0117:proyectos:2014:ii:proyecto_1:siso#apacheservidor_http|Apache]]) corriendo en nuestra computadora, también se requiere [[teaching:ie0117:proyectos:2014:ii:proyecto_1:siso#phpphp_hypertext_processor|php]], que dependiendo de la version usada de wordpress se requerirá una versión mínima de php, por lo general se recomienda utilizar la ultima version disponible de php. Como último requisito se tiene [[teaching:ie0117:proyectos:2014:ii:proyecto_1:siso#mysqlbase_de_datos|MySql]], que al igual que php se recomienda utilizar la ultima versión estable.
Para obtener el sistema de wordpress podemos utilizar las siguientes lineas(para guardar en archivo en el directorio donde será extraído)
''cd /var/www/html/
wget [[http://wordpress.org/latest.tar.gz]]''
Una vez hecho esto, podemos descomprimir el archivo
''tar -xzvf latest.tar.gz''
El archivo comprimido consta de un folder llamado wordpress donde están todos los archivos necesarios para correr el sistema.
Ahora se puede instalar la plataforma desde un cliente de internet, ingresando a la direccion del servidor local
http://[servidor_local]/wordpress
(Notese que este es uno de los muchos procedimientos para lograr el resultado deseado, hay muchas otras maneras de lograr lo mismo)
Este es un proceso bastante sencillo que guia al usuario, se necesitaran los datos de la base de datos(servidor, usuario, contaseña, nombre de la base de datos), el prefijo es un texto que
se agrega antes de cada tabla en una base de datos, es útil si se tienen diferentes sistemas en una misma base de datos.
En este mismo proceso se crea el administrador del sitio y se establecen algunas caracteristicas importantes del sitio. Una vez hecho esto, el sitio ha sido instalado, y se es
redireccionado a la pagina de ingreso.
Ahora al acceder a http://[servidor_local]/wordpress , se mostrará el sitio ya instalado.
Además de este metodo de intalación, existen otros, como el indicado en la siguiente [[https://wiki.debian.org/WordPress|página web]]
=== Oxwall ===
{{:ie0117_proyectos_ii_2014:proyecto_1:oxwall_software_logo.jpg?200|}}
El software [[http://www.oxwall.org/|Oxwall]] es una plataforma gratis open source y escrita en PHP, hecha para construir redes sociales, la cual contiene diferentes herramientas para la construcción de dicho sitio, desde diferentes temas default para iniciar la construcción del sitio, hasta la capacidad de crear usuarios que puedan hacer diferentes tipos de publicaciones como subir, ya sea fotos o videos, y también un chat integrado para que los usuarios puedan tener conversaciones privadas muy parecidas al chat integrado en el popular sitio Facebook y lo más importante para nuestro proyecto que es la capacidad que tienen los usuarios de crear diferentes eventos con varias propiedades importantes como un nombre, la fecha y hora de inicio y final del evento, su tiempo de duración, un imagen que represente al evento, una descripción, la opción de invitar a los participantes, diferentes opciones para la privacidad de dicho evento, una lista de los invitados y asistentes al evento, entre otros.
Para la prueba de este software, procedimos a instalarlo localmente en una computadora corriendo el conjunto de software previamente mencionado y conocido como LAMP
Para su instalación primero procedemos a descargarla ultima versión de Oxwall en la pagina http://www.oxwall.org/download y copiar el archivo descargado a la carpeta de nuestro folder del servidor. En nuestro caso sería:
/var/www/html
después de copiar el archivo en el directorio deseado lo descomprimimos con:
unzip “nombreDelArchivo”.zip
Ahora simplemente creamos una nueva base de datos con MySQL, y un usuario con todos los privilegios en esta base de datos.
Finalmente nos vamos a la pagina donde tenemos guardados los archivos de Oxwall con nuestro navegador de internet y le agregamos /install . En nuestro caso, si creamos previamente una carpeta llamada oxwall donde están almacenados los archivos descomprimidos que habíamos descargado sería:
localhost/oxwall/install
Finalmente seguimos las instrucciones que nos muestra el sitio, y listo, tenemos oxwall corriendo localmente en nuestra computadora.
{{:ie0117_proyectos_ii_2014:proyecto_1:oxwall1.png?600|}}
{{:ie0117_proyectos_ii_2014:proyecto_1:oxwall2.png?600|}}
=== Drupal ===
{{:ie0117_proyectos_ii_2014:proyecto_1:druplicon.large_.png?200|}}
[[https://www.drupal.org/|Drupal]] es un sistema de gestión de contenidos que es utilizado para crear sitios web
dinámicos y con gran variedad de funcionalidades.
Drupal es un software libre, escrito en PHP, que cuenta con una amplia y activa comunidad de usuarios
y desarrolladores que colaboran conjuntamente en su mejora y ampliación. Esta ampliación es posible gracias a que se trata de un sistema modular con una arquitectura muy consistente,que permite que los módulos creados por cualquier desarrollador puedan interactuar con el núcleo del sistema y con los módulos creados por otros miembros de la comunidad.
Con Drupal es posible implementar una gran variedad de sitios web: un blog personal o profesional,
un portal corporativo, una tienda virtual, una red social o comunidad virtual, etc.
Requisitos para la instalación:
1) Tener instalado PHP 5, un servidor web y un sistema de gestión de bases de datos.
En Ubuntu, puede instalar desde Synaptic o con aptitude:
• PHP 5 con los paquetes php5, php5-cli y php5-gd.
• el servidor web Apache con el paquete apache2 y libapache2-mod-php5.
• la base de datos PostgreSQL con los paquetes postgresql, php5-pgsql.
• la base de datos MySQL con los paquetes mysql-server, mysql-client y php5-mysql.
$ sudo aptitude install apache2 php5 php5-cli php5-gd libapache2-mod-php5 postgresql php5-pgsql
Instalación:
1) Descargue la aversión más reciente de Drupal. Aquí ( https://www.drupal.org/ )
2) Descomprima el archivo descargado.
3)Copie todos los datos y archivs de la carpeta recién descomprimida a la carpeta raíz de su servidor local.
4) En su navegador web vaya a: http://localhost
5) Se mostrará la página Choose language. Seleccione la opción install Drupal in English.
6) Acontinuación se mostrará la página Problema de requerimientos (Salen los errores existentes)
7)Corregir dichos errores para continuar con la instalación.
8) Una vez corregidos los errores, se mostrará la página de Configuración de la base de datos.
Opciones básicas: Llenar los tres campos de información de su base de datos.
Database name (Nombre de la base de datos):
proporcionado_por_proveedor (mysql en modo local)
Database name (Usuario de la base de datos):
proporcionado_por_proveedor (root en modo local)
Database password (Contraseña de la base de datos):
proporcionado_por_proveedor (ninguna en modo local)
Opciones Avanzadas:
Database host (Servidor de la base de datos):
proporcionado_por_proveedor (localhost en modo local)
Database port (Puerto de la base de datos):
ninguna (ninguna en modo local)
Table prefix (Prefijo de las tablas):
escriba drupal_ (drupal_ en modo local)
9)Establecer la cuenta del administrador.
Username.
E-mail addres
password
confirm password
10) Configurar el servidor. (Información sobre el control en su servidor)
Zona horario predefinida (defina su zona horaria, si es correcta dejarla así)
Update notifications. (Sirve para comprobar si hay actualizaciones sobre drupal, déjela como está)
Pulse el botón Save and Continue.
11) Cuando se haya terminado de configurar pulsar el enlace Your new site.
12) Listo para correr Drupal en su página inicial y crear contenidos.
=== eXo ===
{{:ie0117_proyectos_ii_2014:proyecto_1:exo-platform.png?200|}}
[[..:..:..:..:ie0117_proyectos_ii_2014:proyecto_1:www.exoplatform.com|eXo]] es una plataforma social orientada hacia el uso por parte de empresas. Sus últimas versiones se han enfocado en torno a funcionalidades de red social y capacidades de integración social. Está programado en Java y corre en un servidor Apache Tomcat. Para su base de datos utiliza Hyper SQL.
Antes de la instalación se debe de descargar un jdk, debido a que el software se basa en java, esto lo hacemos mediante:
sudo apt-get install openjdk-8-jdk
(El 7 también sirve)
Para la instalación se utilizará la “community edition”, siendo esta la que la empresa eXo ofrece para un uso no pago. La descargaremos desde sourceforge.net/projects/exo/
{{ :ie0117_proyectos_ii_2014:proyecto_1:screenshot_from_2014-10-26_23_23_31.png?nolink&700 |}}
Una vez descargada la descomprimimos. En la carpeta donde se descomprimieron los archivos se encontrará un ejecutable llamado “start_eXo.sh”, lo debemos ejecutar desde una consola.
./start_eXo.sh
En caso de que nos niegue el permiso, o nos de un error de “archivo no encontrado” tendremos que dar permiso a los ejecutables:
chmod 700 start_eXo.sh
chmod 700 bin/catalina.sh
Una vez que se han cargado todos los archivos y se ha inicializado el servidor tendremos un mensaje como este:
Server startup in “x” ms
Ahora podremos accesar a eXo desde el puerto 8080 de nuestra computadora. Si no sabemos la dirección ip de nuestra computadora en la red local lo hacemos mediante:
/sbin/ifconfig
De esta manera la url de eXo será
ipadress:8080/platform/
===== Uso =====
=== Wordpress ===
Al ingresar al sistema como administrador, se es dirigido a la pagina de administracion del sitio.
Lo primero que nos interesa hacer para nuestro proyecto es verificar si existe algun plugin que nos facilite la implementación
de una red social. BuddyPress es uno de estos(quizas existan otros plugins similares), para su implementacion en el sitio debe ubicarse la opcion de plugins dentro de la pagina de administración y luego en añadir nuevo, y en la parte superior derecha, en buscar, escribimos BuddyPress, lo que deberia desplegar resultados relacionados, entre estos uno lamado simplemente BuddyPress, y hacemos click en instalar ahora. Como se puede notar, instalar plugins en wordpress es muy facil y el procedimiento es similar al de instalar temas al sitio( bajo la ocion de apariencia>añadir nuevo).
Al hacer click en plugins aparecera el recien intalado BuddyPress, el cual nos da la opcion de desactivar, editar(su codigo fuente), configuracion(para manejar el comportamiento del plugin) y acerca de.
Como sabemos, wordpress es inicialmente un blog, y su estado inicial viene en esta forma, nosotros queremos que se asemeje más a una red social. Por suerte wordpress tiene dentro de sus opciones el manejo de como se muestra el sitio, aunque si requiere un poco más de trabajo que la intalación de plugins y temas.
Las posibilidades con wordpress son muy amplias, y están al alcanze mediante la documentación y ejemplos propuestos oficialmente asi como por la comunidad de wordpress.
=== Oxwall ===
Al iniciar Oxwall tenemos acceso al menú del Administrador del sitio donde se nos presentan todas la opciones para personalizar nuestro sitio dividido en diferentes secciones, las cuales son Dashboard, Users, Settings, Privacy & Permissions, Appearance, Pages & Menus, Plugins y Mobile.
En Dashboard tenemos un resumen de datos como la versión de Oxwall que tenemos.
En Users existen diferentes opciones para controlar a los diferentes usuarios de la pagina, sus accesos y permisos y hasta borrar dichos usuarios en caso de ser necesario.
En Settings hay diferentes tipos de opciones generales como Nombre del sitio, correo para el sitio, formato de tiempo, lenguaje, entre otras.
En Privacy & Permissions están todas las diferentes opciones de privacidad, como quien se puede unir al sitio, y opciones para configurar los moderadores de la pagina.
En Appearance tenemos el menú para escoger los diferentes temas disponibles para Oxwall, ya sea los predeterminados que vienen al descargar el software o los que se comprenden la tiende de Oxwall.
En Pages & Menus están las opciones para configurar las diferentes paginas que estén disponibles en nuestro sitio desde perfiles hasta la página principal.
En Plugins se encuentran las opciones para editar los diferentes plugins que ofrece el software.
Por ultimo en Mobile se puede editar el contenido que se ve en la versión móvil del sitio, optimizada para visualizar la pagina en hardware móvil como tablets o smartphones.
{{:ie0117_proyectos_ii_2014:proyecto_1:screenshot_from_2014-10-27_20_09_05.png|}}
=== Drupal ===
En la página principal de Drupal se puede encontrar diversos paquetes de módulos, temas e interfaz
para modificar nuestro sitio web a nuestro estilo y poder personificarlo en el área que deseemos.
Drupal es un código abierto. Esto permite por desarrollar o crear nuevos módulos o bloques a nuestro estilo y que el núcleo de Drupal siga funcionando de la mejor manera.
Configuración de Drupal:
a) En la página de Bienvenida de su nuevo sitio pulse el enlace administration section.
b)crear una nueva página de inicio en Drupal (un ejemplo)
Seleccione Create content > Historia
En el cuadro de texto Titulo escriba: Pagina Inicial
Seleccione el enlace Opciones del menú
En el cuadro de texto Título del enlace del menú escriba: Página Inicial
En el menú desplegable Elemento padre seleccione la opción: Navegación
En el cuadro de texto Cuerpo escriba el contenido deseado ej: Construyendo esta página, visite después.
Pulse el botón Guardar.
{{:ie0117_proyectos_ii_2014:proyecto_1:captura_de_pantalla_de_2014-10-27_09_28_19.png|}}
c) Hasta este punto ya cuenta con una página o historia en su página inicial. En Create content puede seguir editando y viendo las diferentes opciones que permite Drupal para el desarrollo o creación de historias.
{{:ie0117_proyectos_ii_2014:proyecto_1:captura_de_pantalla_de_2014-10-27_09_38_28.png|}}
En Drupal existe la posibilidad de crear diversos usuarios, aparte del administrador, además permite ceder o restringir permisos a este. Estas diversas funcionalidades hace de Drupal unan plataforma óptima para diversas ideas, ya sean bloggs personales hasta página empresarial y de información.
=== Exo ===
Registramos una cuenta root y ya podremos manejar el entorno del programa.
{{ :ie0117_proyectos_ii_2014:proyecto_1:screenshot_from_2014-10-26_23_16_22.png?nolink |}}
Para agregar addons se incluye un ejecutable “addon”. En caso de no tener formato sh se debe renombrar a “addon.sh”. Para ver la lista de addons disponibles escribimos:
<code>
./addon.sh list
code>
Obtendremos algo parecido a esto
{{ :ie0117_proyectos_ii_2014:proyecto_1:screenshot_from_2014-10-26_22_51_11.png?nolink&500 |}}
para instalarlos se utiliza el comando
<code>
./addon.sh install “nombre del paquete”
code>
Para ver los cambios se debe de reiniciar el servidor.
== Aplicaciones móviles ==
Las aplicaciones para iOS y Android están disponibles en la App store y Google Play respectivamente. Sin embargo es una aplicación muy básica y con pocas funcionalidades y es inclusive mejor accesar desde un navegador como Dolphin Browser.
== Android ==
{{ :ie0117_proyectos_ii_2014:proyecto_1:screenshot_2014-10-25-21-25-35.png?nolink&600 |}}
== iOS ==
{{ :ie0117_proyectos_ii_2014:proyecto_1:image.jpg?nolink&600 |}}
**===== II Entrega del Proyecto =====**
Una de las conclusiones de la primera parte fue que el mejor medio para la creación de la aplicación, o bien, el sistema open source que cumplía con las caracterísiticas buscada fue Oxwal.
En esta parte se prosiguió a la instalación de Oxwal en un servidor propio, para lograr una creación de la base de datos que se utilizaría más adelante.
En la base de datos se guarda de manera ordenada y organizado,los datos necesarios para que la aplicación funcione correctamente y que muchos de los datos están enlazados mediante tablas en las cuales se relaciones diferentes datos de cada usuario registrado.
===== Android Studio =====
El IDE que se utilizará para la creación de la aplicación es Android Studio. El mismo se puede descargar aquí [[https://developer.android.com/sdk/index.html#top]]
Una vez descargado e instalado, tenemos que asegurarnos que el sdk(incluido en el paquete de descarga) se encuentra en la dirección correcta. Le daremos crear nuevo proyecto y agregamos un nombre deseado.
{{:ie0117_proyectos_ii_2014:proyecto_1:nuevoproyecto.jpg?200|}}
Le damos en siguiente para poder escoger el sdk mínimo, esto es de acuerdo al gusto de cada programador, seguidamente escogemos la activity deseada y le damos en finalizar.
Mucho del desarrollo con Android Studio es por actividades, y clases. Se utilizará comunicación entre cada una de ellas para lograr parte de las etapas de la aplicación como Login, el registro de datos y demás. Este último teniendo una comunicación con el servidor, directamente con la base de datos creada.