Índice148.206.53.84/tesiuami/UAMI17369.pdfSAAM Sistema de Admin istración de Alumnos Móvil. 3...

61

Transcript of Índice148.206.53.84/tesiuami/UAMI17369.pdfSAAM Sistema de Admin istración de Alumnos Móvil. 3...

SAAM Sistema de Administración de Alumnos Móvil.

2

Índice

Resumen .............................................................................................................................................. 5

Introducción ........................................................................................................................................ 6

Lenguajes de desarrollo utilizados ...................................................................................................... 7

Lenguaje HTML ................................................................................................................................ 7

Sintaxis ........................................................................................................................................ 7

Ventajas ....................................................................................................................................... 7

Desventajas ................................................................................................................................. 7

Lenguaje Javascript ......................................................................................................................... 8

Sintaxis ........................................................................................................................................ 9

Ventajas ....................................................................................................................................... 9

Desventajas ................................................................................................................................. 9

Lenguaje PHP ................................................................................................................................... 9

Sintaxis. ....................................................................................................................................... 9

Ventajas ..................................................................................................................................... 10

Desventajas ............................................................................................................................... 10

Seguridad ................................................................................................................................... 10

PHPMyAdmin ................................................................................................................................ 11

Funcionalidades incluidas. ........................................................................................................ 11

Ventajas ..................................................................................................................................... 12

Módulos .................................................................................................................................... 12

MySQL ........................................................................................................................................... 12

Características ........................................................................................................................... 13

¿Por qué SAAM? ................................................................................................................................ 15

Razones por las que se decidió desarrollar el proyecto ................................................................ 15

Los beneficios que, el producto a obtener, ofrecerá: ................................................................... 15

Alcance del proyecto. .................................................................................................................... 15

Objetivos del proyecto .................................................................................................................. 16

Objetivos generales ................................................................................................................... 16

Objetivos específicos: ................................................................................................................ 16

SAAM Sistema de Administración de Alumnos Móvil.

3

Requerimientos del proyecto y/o del producto a generar ....................................................... 16

Plan de trabajo. ................................................................................................................................. 17

Actividades a realizar: ................................................................................................................... 17

Tiempo a realizar. .......................................................................................................................... 17

Sprint 0. ..................................................................................................................................... 17

Sprint 1. ..................................................................................................................................... 17

Sprint 2. ..................................................................................................................................... 17

Sprint 3. ..................................................................................................................................... 18

Sprint 4. ..................................................................................................................................... 18

Sprint 5. ..................................................................................................................................... 18

Metodologías, herramientas y técnicas. ........................................................................................... 18

Productos del proyecto. .................................................................................................................... 18

Criterios de aceptación del proyecto. ............................................................................................... 19

Restricciones y consideraciones del proyecto. ................................................................................. 19

Spring. ............................................................................................................................................... 20

Sprint 0. ......................................................................................................................................... 20

Objetivo: .................................................................................................................................... 20

Análisis de las herramientas y lenguajes que permitan la construcción del sistema SAAM .... 20

Sprint 2. ......................................................................................................................................... 21

Objetivos: .................................................................................................................................. 21

Investigación: ............................................................................................................................ 21

Instalacion phpMyAdmin: ......................................................................................................... 22

Sprint 3. ......................................................................................................................................... 23

Base de datos ............................................................................................................................ 23

Diseño de las bases de datos .................................................................................................... 24

Imagen de diseño de base de datos. ......................................................................................... 25

Queries de prueba. .................................................................................................................... 25

Sprint 4. ......................................................................................................................................... 27

Desarrollo del sitio web. ............................................................................................................ 27

Vistas del usuario ADMINISTRADOR . ....................................................................................... 33

Vistas del usuario TUTOR .......................................................................................................... 35

SAAM Sistema de Administración de Alumnos Móvil.

4

Vistas del usuario PROFESOR .................................................................................................... 38

Vistas del usuario ALUMNO ...................................................................................................... 41

Sprint 5. ......................................................................................................................................... 44

Objetivos: .................................................................................................................................. 44

Análisis de herramientas para el desarrollo de aplicaciones móviles ....................................... 44

¿Qué es una aplicación móvil? .................................................................................................. 44

¿Cómo se desarrolla una aplicación móvil? .............................................................................. 44

Requisitos. ................................................................................................................................. 46

Instalación de Android SDK ....................................................................................................... 46

Android ...................................................................................................................................... 47

Eclipse ........................................................................................................................................ 47

Creando el proyecto. ................................................................................................................. 48

Profundizando en el “Hola Mundo” .............................................................................................. 51

Archivo ./res/values/strings.xml ............................................................................................... 52

Conclusiones: .................................................................................................................................... 59

Bibliografía ........................................................................................................................................ 60

Anexos ............................................................................................................................................... 62

SAAM Sistema de Administración de Alumnos Móvil.

5

Resumen

SAAM es un sistema para la administración y gestión de alumnos, está desarrollado en plataforma

móvil (Android) como en plataforma web, en éste documento se explica el procedimiento y las

herramientas utilizadas para el desarrollo del mismo.

SAAM cuenta con una interfaz agradable y amigable con el usuario, fue desarrollado en PHP en la

parte web y con android nativo en la parte móvil.

SAAM Sistema de Administración de Alumnos Móvil.

6

Introducción

SAAM es un sistema de administración e información para alumnos que puede ser accesado a

través de un portal web o una aplicación móvil. El sistema tiene cierta similitud al sistema de

administración de sistemas escolares que tiene la Universidad Autónoma Metropolitana, teniendo

la disponibilidad de manejar usuarios como: administradores, alumnos, tutores y profesores.

Dependiendo del tipo de usuario se tendrían los permisos adecuados en el sistema como agregar,

eliminar, editar salones, grupos etc.

Como se menciona SAAM tiene la dualidad de ofrecer un acceso vía un portal web, y por medio

de un dispositivo móvil con sistema operativo Android. Esto último con el objetivo de proporcionar

facilidad y rapidez a cualquiera de los usuarios. En cuanto a las herramientas de desarrollo para el

sistema web usamos PHP, CSS3, HTML, MYSQL, JAVASCRIPT, ANDROID y el editor de texto Sublime

Text 3.

SAAM Sistema de Administración de Alumnos Móvil.

7

Lenguajes de desarrollo utilizados

Lenguaje HTML

Desde el surgimiento de internet se han publicado sitios web gracias al lenguaje HTML. Es un

lenguaje estático para el desarrollo de sitios web (acrónimo en inglés de HyperText Markup

Language, en español Lenguaje de Marcas Hipertextuales). Desarrollado por el World Wide Web

Consortium (W3C). Los archivos pueden tener las extensiones (htm, html).

Sintaxis

Ventajas

Sencillo que permite describir hipertexto.

Texto presentado de forma estructurada y agradable.

Archivos pequeños.

Despliegue rápido.

Lenguaje de fácil aprendizaje.

Lo admiten todos los exploradores.

No necesita de grandes conocimientos cuando se cuenta con un editor de páginas web o

WYSIWYG

Desventajas

Lenguaje estático.

La interpretación de cada navegador puede ser diferente.

Guarda muchas etiquetas que pueden convertirse en “basura” y dificultan la corrección.

El diseño es más lento.

<html> (Inicio del documento HTML)

<head>

( Cabecera )

</head>

<body>

( Cuerpo )

</body>

</html>

<b> </b> Negrita

<p> </p> Definir parrafo

<etiqueta> Apertura de la etiqueta </etiqueta> Cierre de la etiqueta

SAAM Sistema de Administración de Alumnos Móvil.

8

Lenguaje Javascript

JavaScript, al igual que Flash, Visual Basic Script, es una de las múltiples maneras que han surgido

para extender las capacidades del lenguaje HTML (lenguaje para el diseño de páginas de Internet).

Al ser la más sencilla, es por el momento la más extendida. JavaScript no es un lenguaje de

programación propiamente dicho como C, C++, Delphi, etc. Es un lenguaje script u orientado a

documento, como pueden ser los lenguajes de macros que tienen muchos procesadores de texto y

planillas de cálculo. No se puede desarrollar un programa con JavaScript que se ejecute fuera de

un Navegador.

JavaScript es un lenguaje interpretado que se embebe en una página web HTML. Un lenguaje

interpretado significa que a las instrucciones las analiza y procesa el navegador en el momento

que deben ser ejecutadas.

JavaScript es un lenguaje de programación, al igual que PHP, si bien tiene diferencias importantes

con éste. JavaScript se utiliza principalmente del lado del cliente (es decir, se ejecuta en nuestro

ordenador, no en el servidor) permitiendo crear efectos atractivos y dinámicos en las páginas web.

Los navegadores modernos interpretan el código JavaScript integrado en las páginas web.

El JavaScript es un lenguaje de programación que surgió por la necesidad de ampliar las

posibilidades del HTML. En efecto, al poco tiempo de que las páginas web aparecieran, se hizo

patente que se necesitaba algo más que las limitadas prestaciones del lenguaje básico, ya que el

HTML solamente provee de elementos que actúan exclusivamente sobre el texto y su estilo, pero

no permite, como ejemplo sencillo, ni siquiera abrir una nueva ventana o emitir un mensaje de

aviso.

La temprana aparición de este lenguaje, es posiblemente la causa de que se haya convertido en un

estándar soportado por todos los navegadores actuales, a diferencia de otros, que solo funcionan

en los navegadores de sus firmas creadoras.

Es un lenguaje que puede ser utilizado por profesionales y para quienes se inician en el desarrollo

y diseño de sitios web. No requiere de compilación ya que el lenguaje funciona del lado del cliente,

los navegadores son los encargados de interpretar estos códigos.

Es un lenguaje con muchas posibilidades, utilizado para crear pequeños programas que luego son

insertados en una página web y en programas más grandes, orientados a objetos mucho más

complejos. Con Javascript podemos crear diferentes efectos e interactuar con nuestros usuarios.

JavaScript es un gran lenguaje de programación, a menudo incomprendido, porque ha sido el

lenguaje que a movido la web durante años con tantos sabores como navegadores en el mercado.

SAAM Sistema de Administración de Alumnos Móvil.

9

Sintaxis

Ventajas

Lenguaje de scripting seguro y fiable.

Los script tienen capacidades limitadas, por razones de seguridad.

El código Javascript se ejecuta en el cliente.

Desventajas

Código visible por cualquier usuario.

El código debe descargarse completamente.

Puede poner en riesgo la seguridad del sitio, con el actual problema llamado XSS (significa

en inglés Cross Site Scripting renombrado a XSS por su similitud con las hojas de estilo

CSS).

Lenguaje PHP

Es un lenguaje de programación utilizado para la creación de sitio web. PHP es un acrónimo

recursivo que significa “PHP Hypertext Pre-processor”, (inicialmente se llamó Personal Home

Page). Surgió en 1995, desarrollado por PHP Group.

PHP es un lenguaje de script interpretado en el lado del servidor utilizado para la generación de

páginas web dinámicas, embebidas en páginas HTML y ejecutadas en el servidor. PHP no necesita

ser compilado para ejecutarse. Para su funcionamiento necesita tener instalado Apache o IIS con

las librerías de PHP. La mayor parte de su sintaxis ha sido tomada de C, Java y Perl con algunas

características específicas. Los archivos cuentan con la extensión (php).

Sintaxis.

<script type="text/javascript"> ... </script>

<?

$mensaje = “Hola”;

echo $mensaje;

?>

<?php

$mensaje = “Hola”;

echo $mensaje;

?>

SAAM Sistema de Administración de Alumnos Móvil.

10

Ventajas

Muy fácil de aprender.

Se caracteriza por ser un lenguaje muy rápido.

Soporta en cierta medida la orientación a objeto. Clases y herencia.

Es un lenguaje multiplataforma: Linux, Windows, entre otros.

Capacidad de conexión con la mayoría de los manejadores de base de datos: MysSQL,

PostgreSQL, Oracle, MS SQL Server, entre otras.

Capacidad de expandir su potencial utilizando módulos.

Posee documentación en su página oficial la cual incluye descripción y ejemplos de cada

una de sus funciones.

Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.

Incluye gran cantidad de funciones.

No requiere definición de tipos de variables ni manejo detallado del bajo nivel.

Desventajas

Se necesita instalar un servidor web.

Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser más

ineficiente a medida que las solicitudes aumenten de número.

La legibilidad del código puede verse afectada al mezclar sentencias HTML y PHP.

La programación orientada a objetos es aún muy deficiente para aplicaciones grandes.

Dificulta la modularización.

Dificulta la organización por capas de la aplicación.

Seguridad

PHP es un poderoso lenguaje e intérprete, ya sea incluido como parte de un servidor web en

forma de módulo o ejecutado como un binario CGI separado, es capaz de acceder a archivos,

ejecutar comandos y abrir conexiones de red en el servidor. Estas propiedades hacen que

cualquier cosa que sea ejecutada en un servidor web sea insegura por naturaleza.

PHP está diseñado específicamente para ser un lenguaje más seguro para escribir programas CGI

que Perl o C, y con la selección correcta de opciones de configuración en tiempos de compilación y

ejecución, y siguiendo algunas prácticas correctas de programación.

SAAM Sistema de Administración de Alumnos Móvil.

11

PHPMyAdmin

PhpMyAdmin es una herramienta escrita en PHP con la intención de manejar la administración de

MySQL a través de páginas web, utilizando Internet.

Actualmente puede crear y eliminar Bases de Datos, crear, eliminar y alterar tablas, borrar, editar

y añadir campos, ejecutar cualquier sentencia SQL, administrar claves en campos, administrar

privilegios, exportar datos en varios formatos y está disponible en 62 idiomas.

Funcionalidades incluidas.

En la actualidad, phpMyAdmin puede visualizar y borrar bases de datos, tablas, vistas, campos e

índices, crear, copiar, borrar, renombrar y alterar bases de datos, tablas, campos e índices, realizar

labores de mantenimiento de servidor, bases de datos y tablas, importar datos y estructuras

MySQL de planillas OpenDocument así como también archivos XML, CSV y SQL, administrar

múltiples servidores, gestionar privilegios y usuarios de MySQL, Crear gráficos PDF del diseño de

su base de datos, Visualizar cambios en bases de datos, tablas y vistas.

Servidor web

Ya que la interfaz de phpMyAdmin está basada íntegramente en su navegador, necesitará un

servidor web (como Apache o IIS) en el que instalar los archivos de phpMyAdmin.

Base de datos.

phpMyAdmin puede trabajar con bases de datos compatibles con MySQL.

MySQL 5.5 o posterior

MariaDB 5.5 o posterior

Drizzle.

Instalación.

Tanto Red Hat Enterprise Linux como sus derivados, como CentOS, no proveen phpMyAdmin, pero

el repositorio de Fedora «Extra Packages for Enterprise Linux» (EPEL) sí lo hace cuando está

activado. Sepa que el archivo de configuración se encuentra en /etc/phpMyAdmin/ y puede diferir

de la documentación oficial de phpMyAdmin.

Servidor HTTP Apache

Es un servidor web HTTP de código abierto, para plataformas Unix, Microsoft Windows, Macintosh

y otras, implementa el protocolo HTTP. El Servidor Apache se desarrolla dentro del proyecto

HTTPServer (httpd) de la Apache Software Foundation, Apache presenta entre otras características

altamente configurables, como base de datos de autenticación y negociado de contenido, pero fue

criticado por la falta de una interfaz gráfica que ayude en su configuración.

SAAM Sistema de Administración de Alumnos Móvil.

12

Ventajas

Modular

Codigo abierto

Multi-plataforma

Extensible

Popular(Fácil de conseguir ayuda o soporte)

El servidor consta de una sección de core y diversos módulos que aportan mucha de la

funcionalidad que podría considerarse básica para un servidor web.

Módulos

Mod_ssl: Realiza comunicaciones Seguras vía TLS

Mod_rewrite: Reescritura de direcciones(generalmente es utilizado para transformar

páginas dinámicas como php en páginas estáticas html para así engañar a los navegantes o

a los motores de búsqueda en cuanto a como fueron desarrolladas estas páginas).

mod_dav: soporte de protocolo Web Dav

mod_deflate: Compresión transparente con el algoritmo deflate del contenido enviado al

cliente.

mod_auth_ldap: Permite autentificar usuarios contra un servidor LDAP

mod_proxy_ajp: Conector para enlazar con el servidor Jakart Tomcat [5] de páginas

dinámicas en Java(servlest y JSP).

mod_cfml: conector CFML(Es un lenguaje de script basado en etiquetas que soporta la

creación de páginas web dinámicas y acceso a base de datos en un entorno de servidor).

mod_php: Páginas dinámicas en PHP.

MySQL

MySQL es un sistema de gestión de bases de datos relacional, multihilo y multiusuario con más de

seis millones de instalaciones.

Proyectos como Apache, donde el software es desarrollado por una comunidad pública y los

derechos de autor del código están en poder del autor individual, MySQL es patrocinado por una

empresa privada, que posee el copyright de la mayor parte del código.

MySQL es usado por muchos sitios web grandes y populares, como Wikipedia, Google(aunque no

para búsquedas), Facebook,Twitter,Flickr, y YouTube.

Existen varias interfaces de programación de aplicaciones que permiten, a aplicaciones escritas en

diversos lenguajes de programación, acceder a las bases de datos MySQL.

SAAM Sistema de Administración de Alumnos Móvil.

13

Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en

combinación con MySQL. Se considera multi plataformas incluyendo Windows y GNU/Linux.

Características

Usa GNU Automake, Autoconf, y Libtool para portabilidad

Uso de multihilos mediante hilos del kernel.

Usa tablas en disco b-tree para búsquedas rápidas con compresión de índice

Tablas hash en memoria temporales

El código MySQL se prueba con Purify (un detector de memoria perdida comercial) así

como con Valgrind, una herramienta GPL.

Completo soporte para operadores y funciones en cláusulas select y where.

Completo soporte para cláusulas group by y order by, soporte de funciones de agrupación

Seguridad: ofrece un sistema de contraseñas y privilegios seguro mediante verificación

basada en el host y el tráfico de contraseñas está cifrado al conectarse a un servidor.

Soporta gran cantidad de datos. MySQL Server tiene bases de datos de hasta 50 millones

de registros.

Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada índice puede

consistir desde 1 hasta 16 columnas o partes de columnas. El máximo ancho de límite son

1000 bytes (500 antes de MySQL 4.1.2).

Los clientes se conectan al servidor MySQL usando sockets TCP/IP en cualquier

plataforma. En sistemas Windows se pueden conectar usando named pipes y en sistemas

Unix usando ficheros socket Unix.

En MySQL 5.0, los clientes y servidores Windows se pueden conectar usando memoria

compartida.

MySQL contiene su propio paquete de pruebas de rendimiento proporcionado con el

código fuente de la distribución de MySQL.

MySQL es un sistema de administración de bases de datos. Una base de datos es una colección

estructurada de tablas que contienen datos. Esta puede ser desde una simple lista de compras a

una galería de pinturas o el vasto volumen de información en una red corporativa. Para agregar,

acceder a y procesar datos guardados en un computador, usted necesita un administrador como

MySQL Server. Dado que los computadores son muy buenos manejando grandes cantidades de

información, los administradores de bases de datos juegan un papel central en computación,

como aplicaciones independientes o como parte de otras aplicaciones.

MySQL es un sistema de administración relacional de bases de datos. Una base de datos relacional

archiva datos en tablas separadas en vez de colocar todos los datos en un gran archivo. Esto

permite velocidad y flexibilidad. Las tablas están conectadas por relaciones definidas que hacen

posible combinar datos de diferentes tablas sobre pedido.

SAAM Sistema de Administración de Alumnos Móvil.

14

MySQL es software de fuente abierta. Fuente abierta significa que es posible para cualquier

persona usarlo y modificarlo. Cualquier persona puede bajar el código fuente de MySQL y usarlo

sin pagar. Cualquier interesado puede estudiar el código fuente y ajustarlo a sus necesidades.

MySQL usa el GPL (GNU General Public License) para definir qué puede hacer y qué no puede

hacer con el software en diferentes situaciones. Si usted no se ajusta al GPL o requiere introducir

código MySQL en aplicaciones comerciales, usted puede comprar una versión comercial

licenciada.

SAAM Sistema de Administración de Alumnos Móvil.

15

¿Por qué SAAM?

En la actualidad muchas instituciones no cuentan con un sistemas de administración escolar, por

lo que su administración es demasiado tardada, ahora con las nuevas tecnologías introducidas al

mercado, se es capaz de realizar un control escolar de una manera más automatizada ya que los

dispositivos móviles inteligentes están a la mano de cualquier persona y solo es necesario tener

acceso a internet.

Razones por las que se decidió desarrollar el proyecto

Para tener un mayor control de los alumnos y de los profesores, y así de una forma los padres o los

tutores dar un seguimiento al alumno sin necesidad de asistir personalmente a la institución

académica, ya que hoy en día los dispositivos móviles tienen un uso constante o diario en la vida

cotidiana y mediante la web se puede tener a la mano o de forma inmediata este tipo de

información, sólo es cuestión de tener un acceso a internet y así poder realizar un primer

seguimiento al alumno.

Los beneficios que, el producto a obtener, ofrecerá:

Con la realización de este sistema de control de alumnos, una comunidad estudiantil tendría un

mejor control respecto a sus calificaciones y el horario en donde tomen las clases, se tendrá una

forma de administrar personal académico de forma eficiente y a todo momento.

En modo general, los profesores podrán administrar sus calificaciones, sus grupos, o llevar un

control respecto a sus alumnos, a su vez los alumnos podrán consultar sus materias, tareas y

calificaciones en cualquier momento por medio de la web o desde su dispositivo móvil y los

tutores o padres podrán saber la situación académica del alumno.

Alcance del proyecto.

Al finalizar el proyecto el alumno será capaz de realizar una demostración de la interaccion del

sistema web y el sistema móvil, además de cumplir con todos los objetivos propuestos.

SAAM Sistema de Administración de Alumnos Móvil.

16

Objetivos del proyecto

Objetivos generales

a) Implementar un sistema de control escolar para poder administrar a la comunidad de

cualquier escuela.

b) Realizar dos tipos de plataformas del sistema, un portal de internet y una aplicación móvil.

c) La aplicación será capaz de realizar cambios controlados.

Objetivos específicos:

i. En el inicio de sesión de administrador, el sistema será capaz de agregar, modificar y

eliminar alumnos, docentes, grupos, también podrá asignar grupos a profesores.

ii. El modo Docente podrá visualizar los grupos en los que está asignado para impartir clase y

llevar un control de calificaciones, tareas, reportes y asistencias.

iii. El alumno sólo podrá visualizar sus materias, calificaciones, tareas un horario donde le

avisará las clases y pendientes por cubrir.

iv. El tutor contará con la misma información del alumno, pero también podrá visualizar

reportes y asistencias.

Requerimientos del proyecto y/o del producto a generar

Infraestructura necesaria para desarrollar el proyecto

Para realizar este proyecto necesitamos un equipo de cómputo para poner un servidor apache

(servidor web), phpmyadmin (servidor web), un servidor mysql (servidor de base de datos), que el

usuario cuente con acceso a internet.

Declaraciones abstractas de alto nivel que describan lo que el producto debe ofrecer.

Tanto el web como el móvil necesita un usuario y una contraseña, dependiendo del usuario se le

brindará servicios o permisos a dichos usuarios con especificación ya antes mencionadas de las

actividades que realizarán los usuarios.

SAAM Sistema de Administración de Alumnos Móvil.

17

Plan de trabajo.

Actividades a realizar:

Se planeó que el proyecto fuera realizado en dos trimestres, y se consideraron las siguientes

actividades:

1. Análisis de las herramientas y lenguajes que permitan la construcción del sistema SAAM

2. Servidor web (apache, phpmyadmin).

3. Servidor de datos (mysql).

4. Instalación de base de datos (documentación, diseño. creación, conexión y pruebas).

5. Creación de sitio web (documentación, diseño, creación, conexión y pruebas).

6. Creación de aplicación móvil (documentación, diseño, creación, conexión, pruebas y

entrega).

7. Interconexión entre los dos tipos aplicaciones y pruebas de funcionamiento dual.

8. Elaboración del reporte.

Tiempo a realizar.

Sprint 0.

Actividad 0 Dos semanas

Objetivos:

Investigar que herramientas o lenguajes son los más adecuados para el desarrollo del portal web y

la aplicación para dispositivos móviles. Adicionalmente verificar la compatibilidad entre estos, ya

que se trata de un sistema unificado.

Sprint 1.

Actividad 1 y 2. Dos semanas

Objetivos:

Deberá estar instalado los servidores de datos y web, así el equipo podrá disponer de ellos para la

creación del sitio web y aplicaciones.

Sprint 2.

Actividad 3. Dos semanas

Objetivos: Deberá estar diseñada y creada la base de datos para su futura conexión del sitio web y sus aplicaciones.

SAAM Sistema de Administración de Alumnos Móvil.

18

Sprint 3.

Actividad 4. Cinco semanas

Objetivos:

El sitio web estará en funcionamiento, cumpliendo todas las tareas correspondientes.

Sprint 4.

Actividad 5. Cinco semanas

Objetivos La aplicación móvil será capaz de ingresar y hacer cambio los cuales serán reflejados en la página web, a su vez ambas estarán liberadas y en uso.

Sprint 5.

Actividad 6 y 7. Seis semanas

Objetivos

Hacer pruebas de unificación de la plataforma web y móvil, para que la información sea

consistente y coherente. Adicionalmente trabajar en el reporte final del proyecto y las

correcciones.

Metodologías, herramientas y técnicas.

En el desarrollo del sistema SAAM implementaremos SCRUM una metodología de desarrollo de

software ágil, ya que esta metodología ayuda a que todo el equipo trabajen juntos, en la misma

dirección, con un objetivo claro, además de que nos permite seguir de forma clara el avance del

proyecto y presentar de forma rápida avances del proyecto, lo que motiva al equipo a seguir

esforzándose.

Productos del proyecto.

Se desarrollará una aplicación web y una aplicación móvil la cual controlará y administra el sistema

de alumnos de cualquier escuela.

SAAM Sistema de Administración de Alumnos Móvil.

19

Criterios de aceptación del proyecto.

El proyecto debe poder acceder al mismo tiempo desde la vía web o la aplicación móvil, así como

realizar las tareas que le corresponde a cada usuario.

Restricciones y consideraciones del proyecto.

Se presenta la siguiente tabla con los riesgos posibles detectados.

Riesgo Tipo de

riesgo

Descripción.

Se usan nuevas

herramientas.

Tecnología No hay experiencia en el lenguaje para desarrollar la aplicación

móvil.

Se hace uso de base de

datos.

Proyecto. Se puede perder la información de la base de datos.

Saturación de usuarios. Proyecto Puede que haya sobrecarga de usuarios en la página web.

Tiempo de entrega del

proyecto.

Proyecto Retraso en la entrega de la aplicaciones o reducción en las

funcionalidades de las mismas

SAAM Sistema de Administración de Alumnos Móvil.

20

Spring.

Sprint 0.

Objetivo:

Investigar qué herramientas o lenguajes son los más adecuados para el desarrollo del portal web y

la aplicación para dispositivos móviles. Adicionalmente verificar la compatibilidad entre estos, ya

que se trata de un sistema unificado.

Análisis de las herramientas y lenguajes que permitan la construcción del sistema

SAAM

Actualmente existen diferentes lenguajes de programación para desarrollar en la web, estos han

ido surgiendo debido a las tendencias y necesidades de las plataformas,para crear una página web

se usa:

html para la estructura.

Css para el estilo.

Php para el dinamismo ( más avanzado).

Javascript para el dinamismo.

Jquery son plug-in para el dinamismo con ayuda de javascript.

ASP reemplaza php ( aunque es más utilizado php.)

Las herramientas que usaremos para el desarrollo de nuestro sitio web serán:

HTML5

CSS

PHP

Javascript

Además para realizar este proyecto necesitamos un equipo de cómputo para poner en marcha los distintos tipos de servidores que necesitaremos:

Servidor apache (servidor web)

Phpmyadmin (servidor web)

Servidor mysql (servidor de base de datos)

SAAM Sistema de Administración de Alumnos Móvil.

21

Sprint 2.

Objetivos:

En este sprint se llevará a cabo la investigación e instalación de :

Servidor web (apache, phpmyadmin).

Servidor de datos (mysql).

Así el equipo podrá disponer de ellos para la creación del sitio web y aplicaciones, también se

llevarán a cabo pruebas y configuraciones básicas de dichos servidores.

Investigación:

En el sprint pasado realizamos la investigación sobre ¿Qué es? y ¿Para qué sirven? los servidores

web y servidores de datos, en este sprint se llevará a cabo la investigación del cómo se realiza la

instalación de estos servidores.

Para poder realizar la instalación de phpmyadmin necesitamos tener preinstalados apache y

mysql. para poder realizar las instalaciones necesitamos conectarnos al servidor por medio ssh de

la siguiente manera:

ssh [email protected]

Una vez conectados al servidor podemos realizar las correspondientes instalaciones.

Instalacion Apache, MySQL y PHP

yum install httpd mysql-server php php-pear php-mysql

Confirmamos la descarga e instalación de los componentes.

SAAM Sistema de Administración de Alumnos Móvil.

22

Una vez terminada la instalación iniciamos los servidores de la siguiente manera

/etc/init.d/httpd start

/etc/init.d/mysqld start

Una vez instalado e iniciado los servidores asignaremos la contraseña para el usuario root de

MySQL ya que por defecto no tiene contraseña, la se asignamos de la siguiente manera

mysqladmin -u root password “Nueva contraseña”

Como se muestra en la siguiente imagen:

Para comprobar que el servidor apache está funcionando podemos acceder a la dirección ip desde

un navegador web y se mostrará el home de apache como se muestra en la siguiente imagen:

Instalacion phpMyAdmin:

Nos encontramos en la terminal ya conectados al servidor y como usuario root escribimos la

siguiente línea, para descargar los repositorios.

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-

8.noarch.rpm

SAAM Sistema de Administración de Alumnos Móvil.

23

Después actualizamos los repositorios con la siguiente línea, para finalizar instalando

phpmyadmin.

yum -y update

yum -y install phpmyadmin

Procedemos a configurar el phpMyAdmin, para ello editamos el siguiente script.

vim /etc/httpd/conf.d/phpMyAdmin.conf

Por último reiniciamos httpd con la siguiente línea.

systemctl restart httpd

Sprint 3.

Base de datos

¿Qué es una base de datos?

Una base de datos es un conjunto ordenado de información perteneciente a un mismo dominio o

entidad y almacenada en formato digital. Las bases de datos constituyen el soporte principal de

información de empresas, instituciones o gobiernos en todos los campos del saber de la sociedad

moderna: científico, de negocios, de ocio, militar, médico, educativo, etc.

Es la habilidad de recuperar la información de los sistemas de computación y/o repositorios de

información sobre dispositivos móviles en cualquier momento en cualquier lugar. Además de

introducir o actualizar información en los sistemas principales de forma remota desde el

dispositivo móvil. Esto da toda la libertad al usuario de manipular toda la información desde lejos.

Estructura y Características

Todas las bases de datos móviles tienen una arquitectura similar, donde debemos distinguir una

serie de elementos principales característicos de este tipo de sistemas:

Servidor de base de datos y mysql que gestiona y almacena los datos y proporciona

aplicaciones. Se correspondería con mysql y el servidor que se utiliza en la organización.

Base de datos remota y mysql que gestiona y almacena los datos móviles. Son las bases de

datos que deben estar implementadas en los dispositivos móviles.

SAAM Sistema de Administración de Alumnos Móvil.

24

Plataforma de base de datos móvil, que puede ser un ordenador portátil, PDA u otro

dispositivo de acceso a Internet, es decir, los dispositivos móviles en cuestión.

Diseño de las bases de datos

Se realizaron las siguientes tablas.

1. Usuario. Está tabla controlará la entrada y los privilegios que cuenta el inicio de sesión de

cada usuario (0 alumno, 1 tutor, 2 profesor, 3 administrador).

2. Alumno. Está tabla almacena datos personales del alumno, (el apellido materno es

opcional).

3. Tutor.Esta tabla almacena datos personales del tutor.

4. Profesor. Esta tabla almacena datos personales del profesor, así como controla el rol del

tutor (0 profesor, 1 director)

5. Escuela. Esta tabla almacena información de la escuela.

6. Domicilio. Esta tabla almacena todos los domicilios de los usuarios, asi como sus telefonos

y correos electronicos.

7. Países. Esta tabla es un catálogo de países.

8. Cuota. Está tabla controla la cuota de la inscripción por alumno y periodo.

9. Pagos. Está tabla controla los pagos que reciben los profesores.

10. Materia. Está tabla contiene el nombre de la materia con el periodo.

11. Grupo. Esta tabla almacena los grupos existentes.

12. Alum_grupo. Esta tabla realiza la interacción entre el alumno y el grupo inscrito (Kardex

UAMI).

13. Asistencia. Esta tabla contiene las asistencias de todos los alumnos.

La base de datos se montó en el PhpAdmin previamente instalado, sin complicación alguna.

SAAM Sistema de Administración de Alumnos Móvil.

25

Imagen de diseño de base de datos.

Queries de prueba.

Kardex de un alumno.

SELECT * FROM Alum_Grupo WHERE id_alumno = '2'

Para modificar datos.

UPDATE Alum_Grupo SET calificacion = '8' WHERE 1 Para mostrar todos los datos de la tabla Alumno.

SELECT * FROM Alumno

Para mostrar todos los datos de la tabla Profesor.

SELECT * FROM Profesor

SAAM Sistema de Administración de Alumnos Móvil.

26

Para agregar un usuario.

INSERT INTO Usuario(id_usuario,nick,passwords,tipo) VALUES(1,"Luis","luis",0);

INSERT INTO Usuario(id_usuario,nick,passwords,tipo)

VALUES(2,"Enrique","enrique",1);

INSERT INTO Usuario(id_usuario,nick,passwords,tipo)

VALUES(3,"Ernesto","ernesto",2);

INSERT INTO Usuario(id_usuario,nick,passwords,tipo)

VALUES(4,"Alberto","alberto",3);

Para agregar un alumno.

INSERT INTO

Alumno(id_alumno,id_escuela,id_usuario,id_dom,matricula,nombre,apta,amat,curp)

VALUES(1,1,4,5,101,”Juan”,”Gutierrez”,”Perez”,”PEGU1239812ER”);

Para agregar un profesor.

INSERT INTO Profesor(id_profesor,id_usuario,id_dom,nombre,apta,amat,rfc,tipo)

VALUES(1,8,3,"Alberto","Ayala","Sánchez","AASA910109HDF",0);

Para agregar una escuela.

INSERT INTO escuela(id_escuela,nombre,clave,id_dom,id_profesor) VALUES(1,”Benito

Juaréz”,”0928i010239”);

SAAM Sistema de Administración de Alumnos Móvil.

27

Sprint 4.

Desarrollo del sitio web.

Nuestro sistema será un sistema web el cual será desarrollado en lenguaje PHP con el editor de

texto Sublime Text 3.

Los “sistemas Web” o también conocido como “aplicaciones Web” son aquellos que están creados

e instalados no sobre una plataforma o sistemas operativos ( Windows, Linux). Sino que se alojan

en un servidor en Internet o sobre una intranet (red local). Su aspecto es muy similar a páginas

Web que vemos normalmente, pero en realidad los ‘sistemas Web’ tienen funcionalidades muy

potentes que brindan respuestas a casos particulares.

Los sistemas Web se pueden utilizar en cualquier navegador Web (chrome, firefox, Internet

Explorer, etc) sin importar el sistema operativo. Para utilizar las aplicaciones Web no es necesario

instalarlas en cada computadora ya que los usuarios se conectan a un servidor donde se aloja e

lsistema.

Las aplicaciones Web trabajan con bases de datos que permiten procesar y mostrar información

de forma dinámica para el usuario.

Los sistemas desarrollados en plataformas Web, tienen marcadas diferencias con otros tipos de

sistemas, lo que lo hacen muy beneficioso tanto para las empresas que lo utilizan, como para los

usuarios que operan en el sistema.

PHP es un lenguaje potente de alto nivel cuyo código podemos introducir en páginas web HTML.

PHP se ejecuta en el servidor (no podemos ejecutarlo en nuestro ordenador a no ser que lo

hagamos funcionar como servidor). PHP, una vez es interpretado por el servidor, genera una

salida HTML que permite visualizar los resultados en los navegadores. Este curso permite aprender

los fundamentos para la creación de páginas web usando PHP.

PHP tiene un gran parecido en su sintaxis con lenguajes de programación estructurada, como C,

permitiendo a los programadores crear aplicaciones complejas con un corto periodo de

aprendizaje. También permite crear aplicaciones de contenido dinámico sin necesidad de

aprender un gran volumen de funciones.

Una vez que tenemos una idea del lenguaje que usaremos , podemos empezar con la instalación

de el editor Sublime Text 3, es muy sencillo .

1. Para Instalar Sublime 3 tendremos que ir a la página http://www.sublimetext.com

SAAM Sistema de Administración de Alumnos Móvil.

28

2. Descargaremos el paquete de instalación para nuestra versión de sistema operativo

(actualmente Sublime Text está en versión Beta) http://www.sublimetext.com/3

3. Disponemos de versiones para OSX, Windows(32 y 64 bits) y Ubuntu (32 y 64 bits).

4. Seguimos los pasos indicados en la instalación.

Como primer paso fue aprender el lenguaje PHP y el editor de texto por lo que empezamos con

ejemplos muy sencillos, el primero de ellos fue el crear un archivo nuevo en el editor y guardarlo

con la extensión PHP, el ejemplo que se muestra a continuación hacemos un hola mundo en un

archivo que lleva de nombre holamundo.php en el editor Sublime Text 3.

SAAM Sistema de Administración de Alumnos Móvil.

29

Y este es nuestro primer resultado de nuestra primer página en php.

Para el desarrollo de nuestro sistema usamos una Arquitectura de 3 capas, se refiere a un estilo

de programación que tiene como objetivo separar la lógica de diseño de la lógica de negocios. Una

de las ventajas que podemos destacar sobre este estilo es que el desarrollo del software se puede

llevar a cabo en varios tipos de niveles, así, cuando suceda algún cambio solo nos iremos sobre el

nivel requerido.

La programación por capas es una técnica de la ingeniería del software propia de la programación

a objetos, que se divide en 3 capas: la capa de presentación o frontera, la capa de lógica de

negocio y por ultimo la capa de datos.

Se mostraran los planteamientos sobre arquitectura y el código fuente que sirve como punto de

partida para una aplicación.

En este modelo se utiliza la Vista, el controlador y el modelo. A continuación se explicará la

función de cada uno de estos elementos.

La conexion con la Base de Datos, con usuario "root" y clave "", la base de datos se llama "saam".

SAAM Sistema de Administración de Alumnos Móvil.

30

A continuación mostramos el código para la conexión con la base de datos.

SAAM Sistema de Administración de Alumnos Móvil.

31

Una vez que hay conexión exitosa con la base de datos seguimos en el desarrollo del sistema web,

por lo que desarrollamos un Login de usuario que interactuara con nuestra base de datos ya

mencionada anteriormente con ayuda de una plantilla en css3 logramos una login exitoso a

continuación mostramos lógica de validación y el resultado obtenido.

SAAM Sistema de Administración de Alumnos Móvil.

32

Como pudimos ver en el código de verificación de usuario podemos observar que detecta por el

tipo de usuario que este ingresando ya sea, director, profesor, tutor o alumno, dependiendo del

usuario lo re direccionará dicha carpeta. dichas carpetas las podemos observar en nuestra barra

de navegación de Sublime Text 3

SAAM Sistema de Administración de Alumnos Móvil.

33

A continuación se muestras las vistas de cada tipo de usuario.

Vistas del usuario ADMINISTRADOR .

El usuario tipo administrador es el usuario con más privilegios en el sistema el cual es el único que

puede dar de alta ,baja y cambios escuelas, alumnos, profesores, grupos y materias , el sistema es

muy sencillo de usar para el administrador ya que en la parte superior izquierda se encuentra el

menú con las opciones (Escuela, Alumnos, Profesores, Tutores, Materias ,Grupos) en el cual al

momento de acceder en alguna de esas opciones nos despliega los datos correspondientes tanto a

Escuela, Alumnos, Profesores, Tutores ,Materias, Grupos dependiendo la opción seleccionada, y

en esa misma pantalla nos muestra las opciones de alta, baja y cambio de igual manera están

realizados para que el administrador logre usarlo de una manera sencilla, si es alta el

administrador sólo ingresara los datos necesarios, si es baja el administrador busca la opciones

que desea dar de baja y listo lo mismo pasa cuando se desea hacer modificaciones.

SAAM Sistema de Administración de Alumnos Móvil.

34

Las siguientes capturas son de alta, baja y cambio de escuela

SAAM Sistema de Administración de Alumnos Móvil.

35

Vistas del usuario TUTOR

El usuario tipo tutor no tiene tantos privilegios como el administrador por lo que el sólo tiene

privilegios de sólo lectura en las opciones de poder ver calificaciones, faltas, horario, y pagos de su

hijo, pero tiene una opción en la cual el tutor puede tener comunicación con el profesor a través

de un mini chat.

SAAM Sistema de Administración de Alumnos Móvil.

36

SAAM Sistema de Administración de Alumnos Móvil.

37

SAAM Sistema de Administración de Alumnos Móvil.

38

Vistas del usuario PROFESOR

El usuario tipo profesor tiene como opciones poder asignar calificaciones,faltas a los alumnos de

determinados grupos que tenga asignado en el trimestre actual, tiene la opción de poder ver su

horario y sus pagos, y la opción de poder tener comunicación con cualquier tutor de sus alumnos

asignados.

SAAM Sistema de Administración de Alumnos Móvil.

39

SAAM Sistema de Administración de Alumnos Móvil.

40

SAAM Sistema de Administración de Alumnos Móvil.

41

Vistas del usuario ALUMNO

El usuario tipo alumno sólo tiene privilegios para poder ver sus calificaciones,faltas,horario,pagos,

información de su tutor y podras hacer la inscripción de materias a través del sistema.

SAAM Sistema de Administración de Alumnos Móvil.

42

SAAM Sistema de Administración de Alumnos Móvil.

43

Como pudimos observar mostramos gran parte de todas las vistas del sistema dependiendo el

usuario, para poder acceder completo a todo el sistema dejamos el link del sistema.

www.148.206.49.232/SAAM

usuario administrador. SAAM contraseña: Superman

usuario profesor. quique contraseña: quique

usuario tutor. ernest contraseña: ernest

usuario alumno. copycat contraseña: batman.

SAAM Sistema de Administración de Alumnos Móvil.

44

Sprint 5.

Desarrollo de aplicación móvil.

Objetivos:

Investigar qué herramientas o lenguajes son los más adecuados para el desarrollo de aplicaciones para

dispositivos móviles. Adicionalmente verificar la compatibilidad entre los distintos sistemas operativos

de los dispositivos móviles.

Análisis de herramientas para el desarrollo de aplicaciones móviles

El mercado de las aplicaciones para móviles ha cambiado de una forma radical en los últimos dos años.

Al principio, para publicar aplicaciones móviles tenías que disponer del apoyo de una operadora o de

una gran firma de juegos, pero con la aparición de los markets de aplicaciones, esto ha cambiado y

cualquier persona puede publicar su app y empezar a ganar dinero.

¿Qué es una aplicación móvil?

Es una aplicación informática diseñada para ser ejecutada en teléfonos inteligentes, tabletas y otros

dispositivos móviles. Por lo general se encuentran disponibles a través de plataformas de distribución,

operadas por las compañías propietarias de los sistemas operativos móviles como Android, iOS,

BlackBerry OS,Windows Phone, entre otros.

¿Cómo se desarrolla una aplicación móvil?

El desarrollo de aplicaciones para dispositivos móviles requiere tener en cuenta las limitaciones de

estos dispositivos. Los dispositivos móviles funcionan con batería, hay que considerar una gran

variedad de tamaños de pantalla, datos específicos de software y hardware como también distintas

configuraciones. El desarrollo de aplicaciones móviles requiere el uso de entorno de desarrollo

integrados. Las aplicaciones móviles suelen ser probadas primero usando emuladores y más tarde se

ponen en el mercado en periodo de prueba. Actualmente un gran número de empresas se dedica a la

creación profesional de aplicaciones. Aún así, han surgido páginas web como Mobincube y AppsCoon

donde un usuario común puede crear aplicaciones de manera gratuita y sin conocimiento de

programación.

Antes que nada debes plantearte en que plataformas te quieres especializar, a modo orientativo, a

continuación te mostramos una gráfica con el volumen de mercado de las diferentes plataformas:

SAAM Sistema de Administración de Alumnos Móvil.

45

A la vista de la gráfica anterior, puede ser una buena apuesta posicionarte en desarrollar para android

o iphone. Esto tiene sus ventajas e inconvenientes. Como ventaja, estás trabajando en un mercado

amplio, con demanda (a priori), pero como inconveniente, es un mercado donde hay ya muchísima

gente trabajando. Así que otra posible opción es optar por mercados más selectos como RIM o

Windows Phone 7. Todo dependerá de como plantees tu estrategía y en que mercado te vas a sentir

más cómodo.

Otra alternativa que tienes a la hora de acceder a un mercado, es optar por un sistema de desarrollo

multiplataforma. Este tipo de soluciones te van a permitir acceder a múltiples mercados a la vez, pero

posiblemente con un sacrificio en el rendimiento de las aplicaciones. Todo depende del tipo de

aplicaciones que pretendas desarrollar. Existen algunos frameworks de desarrollo que una vez

realizado el código puedes compilarlo y distribuirlo en múltiples plataformas. Normalmente estos

frameworks están basados en HTML5 como el caso de PhoneGap, o AppAcelerator o en otros lenguajes

de programación como Corona SDK que trabaja usando LUA como lenguaje de programación.

Cada vez son más necesarias las aplicaciones móviles tanto en el mundo empresarial como en el sector

del entretenimiento. A pesar de esta necesidad, a la hora de desarrollar aplicaciones móviles las

empresas están teniendo que enfrentarse a los problemas de la segmentación de los dispositivos y les

está obligando a desarrollar la misma aplicación varias veces en diferentes plataformas para cubrir una

amplia cuota de mercado.

Esta duplicación de trabajo (normalmente android y iOS) hace que los costes de producción de

aplicaciones móviles se disparen y que en algunos casos el desarrollo de las aplicaciones no sea

rentable. En estos casos siempre se tiende a desarrollar una única versión de la app y perder una cuota

de potenciales usuarios importante con tal de reducir gastos.

SAAM Sistema de Administración de Alumnos Móvil.

46

Para solucionar estos problemas poco a poco van apareciendo los frameworks de desarrollo de

aplicaciones móviles multiplataforma. Con estas herramientas normalmente se desarrolla la aplicación

en un lenguaje de programación diferente al que se utilizaría nativamente en las diferentes

plataformas y con este código en lo que podríamos llamar un “lenguaje neutro” se llevan a cabo

compilaciones específicas sobre cada una de las plataformas móviles. De esta forma, las empresas

desarrollan el código una única vez y lo pueden distribuir sin costes adicionales de programación en

otras plataformas móviles.

Lógicamente, estas plataformas intermedias de desarrollo no están pensadas para desarrollar

aplicaciones punteras que explotan al 100% el potencial de un dispositivo. Estos frameworks están

orientados a desarrollar aplicaciones con unos requerimientos técnicos normales, es decir, aplicaciones

que no necesitan de implementar sistemas complejos de cómputo, sin necesidad de trabajar en

OpenGL con aplicaciones numerosos gráficos y entornos 3D etc… Básicamente estos frameworks, están

pensados para desarrollar juegos 2D, o aplicaciones de caracter empresarial, guías turísticas, etc…

Por otro lado, si lo que buscas es un framework pensado para desarrollar aplicaciones más centradas

en contenido y estructuración de información, la solución a tus problema puede venir de la mano de

App Acelerator o Phonegap. En estos frameworks desarrollas todo el contenido de tu aplicación en

HTML5 /CSS y tienes la posibilidad de utilizar javascript para multiplicar las posibilidades de interacción

de tu aplicación. Estos frameworks también disponen de acceso a los periféricos de los dispositivos y a

la hora de desarrollar tu aplicación tienes la libertad que te proporciona HTML.

Requisitos.

Para desarrollar para Android necesitarás Android SDK (Linux/OSX/Windows).

Instalación de Android SDK

Descargar el archivo de instalación.

http://developer.android.com/sdk/index.html

Inicie la interfaz gráfica de usuario SDK de Android y AVD Gerente

Descargue e instale las API de Android adecuadas

Añadir el SDK de Android a la variable PATH

Verifique que el SDK de Android se ha instalado correctamente

Descargar android-sdk_r06-windows.zip

Abra el archivo zip ; busque la carpeta android - sdk -windows

Mueva android - sdk -windows a la carpeta en C: \ android- sdk

SAAM Sistema de Administración de Alumnos Móvil.

47

Android

Android es un sistema operativo móvil basado en Linux enfocado para ser utilizado en dispositivos

móviles como teléfonos inteligentes, tabletas, Google TV y otros dispositivos. Es desarrollado por

la Open Handset Alliance, liderada por Google.

La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en un

framework Java de aplicaciones orientadas a objetos sobre el núcleo de las bibliotecas de Java en

una máquina virtual Dalvik con compilación en tiempo de ejecución. Las bibliotecas escritas en

lenguaje C incluyen un administrador de interfaz gráfica , un framework OpenCore, una base de

datos relacional SQLite, una Interfaz de programación de API gráfica OpenGL ES 2.0 3D, un motor

de renderizado WebKit, un motor gráfico SGL, SSL y una biblioteca estándar de C Bionic.

Las aplicaciones se desarrollan habitualmente en el lenguaje Java con Android Software

Development Kit (Android SDK), Existen otras herramientas de desarrollo, incluyendo un Kit de

Desarrollo Nativo para aplicaciones o extensiones en C, C++ u otros lenguajes de programación.

Android se desarrolla de forma abierta y se puede acceder tanto al código fuente como a la lista

de incidencias donde se pueden ver problemas aún no resueltos y reportar problemas nuevos.

En la actualidad existen más de 700.000 aplicaciones para Android y se estima que 1.000.000

teléfonos móviles se activan diariamente.

Android es criticado por la fragmentación que sufren sus terminales al no ser soportados con

actualizaciones por parte de los fabricantes, algo que se podría considerar obsolescencia

programada. Esto supone problemas para los desarrolladores que deben lidiar con la retro

compatibilidad entre diferentes versiones del sistema operativo.

Resulta evidente que aprender a desarrollar proyectos para este sistema operativo mejora las

perspectivas tanto laborales como académicas de cualquier estudiante de Informática o similares.

Para desarrollar sobre Android se hará uso del paquete ADT (Android Developer Tools), en su

versión Bundle, que incluye el software necesario para comenzar desarrollar para esta plataforma.

Eclipse

Eclipse es una plataforma de desarrollo open source basada en Java. Eclipse fue desarrollado

originalmente por IBM como el sucesor de su familia de herramientas para VisualAge.

Actualmente es desarrollado por la Eclipse Foundation, una organización independiente sin ánimo

de lucro que fomenta una comunidad de código abierto.

SAAM Sistema de Administración de Alumnos Móvil.

48

En sí mismo Eclipse es un marco y un conjunto de servicios para construir un entorno de desarrollo

a partir de componentes conectados, plugins… Existen plugins para el desarrollo en Java, JDT Java

Development Tools, así como para el desarrollo en otros lenguajes como C/C++, PHP, Cobol,

plataformas como Android, etc.

Eclipse es el IDE recomendado para el desarrollo sobre Android y se incluye de facto en el paquete

Bundle de las Android Developer Tools, por lo que el proyecto hará uso de esta herramienta

complementandose con los plugins necesarios para facilitar el desarrollo del mismo.

Creando el proyecto.

Arrancamos eclipse con todo configurado correctamente y vamos a Archivo->nuevo->Proyecto

Android:

Después de esto se nos mostrará un dialogo para configurar el proyecto, debemos introducir:

1. El nombre del proyecto. en este caso Hola Mundo

2. Donde queremos crear el proyecto (normalmente dentro del workspace).

3. Versión Android a la que irá destinada la aplicación, en este caso Android 2.2

4. Nombre de la aplicación (El que se mostrará al usuario una vez instalada, Hola Mundo).

5. El Nombre del paquete que se usa como espacio de nombres y estructura de organización del

código, “app.tutorial.holaMundo”

6. Marcamos la opción Crear Actividad para que eclipse cree la clase que se lanzará al ejecutar

la aplicación. Normalmente a esta clase se le llama MainActivity.

SAAM Sistema de Administración de Alumnos Móvil.

49

7. Versión Mínima del SDK es la versión mínima necesaria del SDK para ejecutar la aplicación, a

menor número, la aplicación correrá en más terminales, pero no podremos usar las últimas

caracteristicas de Android.

8. Una vez rellenado todo, le damos a finalizar.

Ya hemos creado nuestro primer proyecto Android, ahora vamos a ver de qué se compone:

SAAM Sistema de Administración de Alumnos Móvil.

50

Componentes del proyecto

Los proyectos de Android siguen una estructura fija de carpetas que debemos respetar. Podemos

ver esta estructura con la vista Package Explorer que proporciona eclipse:

Carpeta src (de fuentes)

Esta carpeta contiene el código fuente organizado en paquetes. Aquí irán las clases java de nuestra

aplicación.

Carpeta gen (archivos generados)

Aquí van los archivos que genera el compilador en sus pasadas, como el archivo de recursos R,

esta carpeta normalmente no se debe tocar.

Carpeta assets (De recursos varios)

Almacena recursos que pueda necesitar nuestra aplicación, como ficheros de música etc.

Podremos acceder a ellos fácilmente con la clase del sistema AssetManager

SAAM Sistema de Administración de Alumnos Móvil.

51

Clase de recursos (res)

Esta carpeta es una de la que más vamos a usar junto con src, contiene todos los recursos

necesarios para la aplicación. Todos los archivos de esta carpeta son indexados por el compilador y

se genera el fichero de recursos R, que nos permite acceder a ellos de una forma rápida.Está

dividida en subcarpetas:

anim: Ficheros XML para la definición de Animaciones.

color: Ficheros XML de definición de colores.

drawable: Ficheros bitmap(.png, .9.png, .jpg, .gif) o XML con contenidos que se dibujarán

(fondos, botones etc).

layout: Ficheros XML que definen la capa de interfaz de usuario.

menu: Ficheros XML con la definición de los menús de la aplicación.

raw: Binarios que no se pueden colocar en las otras carpetas.

values: Ficheros XML para la definición de estilos, cadenas de texto para localización etc.

xml: Ficheros XML que pueden ser accedidos en tiempo de ejecución.

Algunas carpetas pueden tener varias versiones para adaptarse a diferentes tamaños de pantallas,

idiomas etc.

El archivo Manifest (AndroidManifest.xml)

Todos los proyectos tienen un archivo como este, en él se detallan las características principales

(módulos, permisos, nombre, icono…).

Ahora que hemos explicado la estructura de un proyecto Android, veamos el ejemplo Hola

Mundo al detalle

package app.tutorial.holaMundo;

import android.app.Activity;

import android.os.Bundle;

public class MainActivity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

}

SAAM Sistema de Administración de Alumnos Móvil.

52

Al crear el proyecto dimos nombre a una Actividad (MainActivity), estas clases son las encargadas

de mostrar las interfaz gráfica al usuario, deben extender de la clase Activity.

Al crear una activity Android llama a su método onCreate() que hace lo necesario para mostrar la

pantalla al usuario. Tal y como está la actividad al crear el proyecto. Hace una llamada

asetContentView(), que tiene como parámetro el identificador de una vista ya creada.

Por lo tanto, R.layout.main referencia a un archivo xml situado en la carpeta ./res/layout

(ficheros de definición de pantalla).

Archivo ./res/layout/main.xml

< ?xml version="1.0" encoding="utf-8"?>

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<textview android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

</linearlayout>

En este archivo se define una pantalla en la que los elementos se agruparán de forma lineal

(LinearLayout) y con un componente de texto (TextView). Al componente de texto le fijamos el

texto a mostrar con la referencia @string/hello (valor del item en ./res/values/strings.xml)

Archivo ./res/values/strings.xml

< ?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="hello">Hello World, MainActivity!</string>

<string name="app_name">Hola Mundo</string>

</resources>

Una vez que ya realizamos el ejemplo más básico de una aplicación Android, procedemos a

realizar nuestro sistema SAAM (Sistema de Administración de Alumnos para dispositivos Móviles),

para el desarrollo de la aplicación móvil desidimos hacer uso de varios lenguajes de programación

SAAM Sistema de Administración de Alumnos Móvil.

53

, php,Android, y mysql para la base de datos que al final es la misma base de datos que la del

sistema web, con la cual utilizamos un modelo de 3 capas.

Capa de presentación: la que ve el usuario,presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso.También es conocida como interfaz gráfica y debe tener la característica de ser "amigable" (entendible y fácil de usar) para el usuario. Esta capa la realizamos con lenguaje Android .

Capa de negocio: es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lógica del negocio) porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa la realizamos con lenguaje PHP.

Capa de datos: es donde residen los datos y es la encargada de acceder a los mismos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información. Esta capa la realizamos con lenguaje PHP.

En la parte de Android decidimos usar una vista Webview que es simplemente un widget para

renderizar páginas web, ya sea obteniéndolas través de una URL o bien recibiendo el html

directamente desde una Activity.

No nos complicamos la vida y creamos un proyecto de tipo Android con el asistente. Voy a usar la

API 7 (2.2) para conseguir la mayor compatibilidad posible.

WebView se utiliza como cualquier otro widget, lo incluímos en el main.xml creado por el

asistente (y eliminamos también el Hello World):

1

2

3

4

5

6

7

8

9

10

11

12

13

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<WebView

xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/webkit"

android:layout_width="fill_parent"

android:layout_height="fill_parent" />

</LinearLayout>

1

import android.app.Activity;

SAAM Sistema de Administración de Alumnos Móvil.

54

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

import android.os.Bundle;

import android.webkit.WebView;

public class WebViewdemoActivity extends Activity

{

private WebView browser;

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

browser = (WebView)findViewById(R.id.webkit);

//habilitamos javascript y el zoom

browser.getSettings().setJavaScriptEnabled(true);

browser.getSettings().setBuiltInZoomControls(true);

//habilitamos los plugins (flash)

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO)

{

webview.getSettings().setPluginState(PluginState.ON);

}

else

{

//IMPORTANTE!! este método ha sido eliminado en Android 4.3

//por lo que si lo necesitamos para mantener la compatibilidad

//hacia atrás hay que compilar el proyecto con Android 4.2 como

SAAM Sistema de Administración de Alumnos Móvil.

55

máximo

webview.getSettings().setPluginsEnabled(true);

}

browser.loadUrl("http://127.0.0.1/");

}

}

También necesitaremos en el AndroidManifest.xml solicitar permiso para la conexión a

Internet.

Veamos que tal se renderiza WordPress en un móvil ejecutando el proyecto en el emulador de

ADT para la API 7.

7 <uses-permission android:name="android.permission.INTERNET"/>

SAAM Sistema de Administración de Alumnos Móvil.

56

Si se pulsa un enlace, Android lo abrirá con la aplicación por defecto para tal fin, esto es, el propio

navegador. Si queremos permanecer en nuestra app hay que especializar la clase WebViewClient y

sobreescribir el métodoshouldOverrideUrlLoading para que devuelva false. Puesto que en este

método se recibe como parámetro la url solicitada se podría utilizar también para filtrar las

direcciones a las que se permite el acceso.

SAAM Sistema de Administración de Alumnos Móvil.

57

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

package com.danielme.blog.android.webviewdemo;

import android.app.Activity;

import android.os.Bundle;

import android.webkit.WebView;

import android.webkit.WebViewClient;

public class WebViewdemoActivity extends Activity

{

private WebView browser;

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

browser = (WebView)findViewById(R.id.webkit);

//habilitamos javascript y el zoom

browser.getSettings().setJavaScriptEnabled(true);

browser.getSettings().setBuiltInZoomControls(true);

//habilitamos los plugins (flash)

browser.getSettings().setPluginsEnabled(true);

browser.loadUrl("http://127.0.0.1/");

browser.setWebViewClient(new WebViewClient()

SAAM Sistema de Administración de Alumnos Móvil.

58

38

39

40

41

{

// evita que los enlaces se abran fuera nuestra app en el navegador de android

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url)

{

return false;

}

});

}

}

SAAM Sistema de Administración de Alumnos Móvil.

59

Conclusiones:

Nuestro Sistema SAAM está desarrollado de manera integral y flexible, ideal para todo tipo de

planteles educativos ( escuelas primarias, secundarias, bachilleratos, universidades, etc) que

facilita a los usuarios el control escolar, académico y administrativo de Alumnos, Maestros, Aulas,

Grupos, Calificaciones, Materias, etc. Debido a su diseño internet/intranet, nuestro

software puede ser ejecutado desde cualquier dispositivo que cuente con un Navegador o la

aplicación móvil conectado a un Servidor WEB ya sea local o remoto, de forma que personal

administrativo, académico, alumnos y padres de familia puedan tener acceso al sistema desde

cualquier lugar en el momento que lo deseen.

Es ideal para todo tipo de instituciones ya que es totalmente configurable, al ser un sistema web,

puede ser utilizado desde cualquier dispositivo (pc, mac, android,).

Alumnos, tutores, maestros, directores están siempre en contacto con su plantel desde la

comodidad de sus casas, oficicas, etc.

No requiere instalar el software en cada uno de sus dispositvos, ni mucho menos ampliar

capacidad del disco y memoria de sus computadoras.

Su interfase gráfica y amigable lo hacen fácil de utilizar.

Debido a que puede operar en Internet, es ideal para instituciones que cuentan con más de un

plantel, de esta forma centraliza su información en un sola base de datos lo que hace más fácil la

administración de su escuela, además de reducir los costos de comunicación.

En la actualidad una prioridad en todo sistema es el tiempo, y con el sistema estamos ahorrando

un 80% menos de tiempo para la administración de cada escuela por lo que estamos seguros que

nuestro sistema de suma importancia en la actualidad por la cual debería de ser aplicada en

diversas instituciones.

SAAM Sistema de Administración de Alumnos Móvil.

60

Bibliografía

Damián Pérez Valdés, 2007 Los diferentes lenguajes de programación para la web( http://www.maestrosdelweb.com/los-diferentes-lenguajes-de-programacion-para-la-web/ ) página consultada el 9 de mayo de 2015 Francisco Rico, 2012,Introducción a los lenguajes del web(http://www.desarrolloweb.com/manuales/27/ página consultada el 9 de mayo de 2015 Estanislao García Rey,2012 LENGUAJES DE PROGRAMACIÓN (http://www.elinformatico.org/Profesional_informatico_programacion_web.aspx) página consultada el 10 de mayo de 2015 Vicente Gárcia,2012 Configuración de un servidor web Apache en CentOS (http://www.desarrolloweb.com/articulos/configuracion-servidor-web-centos.html) página consultada el 20 de mayo del 2015 Francisco Herrera, 2014 Instalación y configuración de php (http://www.ite.educacion.es/formacion/materiales/85/cd/linux/m5/instalacin_y_configuracin_de_php.html) págnia consultada el 22 de mayo del 2015 Joel Barrios Dueñas, 2015 Configuración básica de Apache (http://www.alcancelibre.org/staticpages/index.php/como-apache) página consultada el 27 de mayo del 2015 Alonso J. P. D. ,2014 Montar servidor web Apache y servidor MySQL con Linux CentOS 7 Minimal(http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=702) página consultada el 30 de mayo del 2015 Web View (http://developer.android.com/reference/android/webkit/WebView.html), página consultada el 8 de septiembre del 2015

ANDROID WEBVIEW EN ANDROID 2013 (https://amatellanes.wordpress.com/2013/06/01/android-ejemplo-de-webview-en-android-parte-1/), página consultada el 8 de septiembre del 2015

Getting Started: WebView-based Applications for Web Developers (https://developer.chrome.com/multidevice/webview/gettingstarted), página consultada el 9 de septiembre del 2015

SAAM Sistema de Administración de Alumnos Móvil.

61

Alonso J. P. D. ,2015, Montar entorno de desarrollo para eclipse (http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=639), página consultada el 13 de septiembre del 2015 Aythami Mendoza García,2013 (http://www.cursopedia.com/Ficha-Curso-de-Android.-Nivel-Basico), página consultada el 20 de septiembre del 2015