Upload
truongmien
View
214
Download
0
Embed Size (px)
Citation preview
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:
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.
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.
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.
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