Está en la página 1de 39

PRÁCTICAS PROFESIONALIZANTES

PROYECTO DE INVESTIGACIÓN:

APRENDER A PROGRAMAR

PROFESOR: Alberto Gusbeth

INTEGRANTES: Figueredo Maia, Flores Leila, Leyes Gabriel

CURSO: 7° 2°
PRÁCTICAS PROFESIONALIZANTES

ÍNDICE
CAPÍTULO 1: EL PROBLEMA

1.1. Planteamiento del Problema………….

1.2. Formulación del Problema…………….

1.3. Objetivos……………………………….

1.4. Justificación……………………………

1.5. Limitaciones……………………………

CAPITULO 2: MARCO TEÓRICO

1.1. Antecedentes de la Investigación…………….

1.2. Bases Teóricas……………………………….

1.3. Definición de Términos Básicos……………..

1.4. Sistema de Hipótesis…………………………

1.5. Sistema de Variables…………………………

CAPITULO 3:

1.1. Lógica……………………………………………..

1.2. Lote de Pruebas……………………………………

1.3. Manual de Usuario…………………………………

1.4. Manual del Administrador…………………………

CAPITULO 4:

1.1. Guía para ingresar a nuestra página...……………..

1.2. Manual del Sistema Informático..…………………

1.3. Errores y Soluciones: Programación………………


PRÁCTICAS PROFESIONALIZANTES

 PLANTEAMIENTO DEL PROBLEMA:

Nuestro problema nace a raíz de la solicitud de la realización de “un sistema


informático”, en el cual se dio a conocer que los alumnos de último año tienen
escasos conocimientos en los que respecta a los LENGUAJES DE
PROGRAMACIÓN, es por esto que a la hora de la realización de tal proyecto se
le dificulta, ya que se requiere de cierto nivel de conocimiento específicos, como
el del manejo de los programas requeridos, por ejemplo, editores de textos,
frameworks, extensiones, etc.
Podemos nombrar como algunos de los factores de este problema la reciente
pandemia (2020-2021) la cual influyo en lo que respecta al aprendizaje, pasar de
dar clases habitualmente presenciales a ser completamente virtuales, lo cual no
permitió un aprendizaje optimo, dificultando una comunicación fluida con el
docente en caso de cualquier inquietud, también podemos mencionar el problema
de conectividad o falta de herramienta digitales con la que contaban algunos
alumnos.
Por tales motivos es que nos plateamos el cómo poder ayudar o facilitar a los
alumnos/as del establecimiento educativo el acceso a los conocimientos y la
posible solución de inquietudes en el área de programación.

 FORMULACIÓN DEL PROBLEMA:

¿Qué efectos produce el escaso conocimiento en el área de programación en los


alumnos de séptimo año de la Escuela Técnica Carmen Molina de Llano?
PRÁCTICAS PROFESIONALIZANTES

 OBJETIVOS:

OBJETIVO GENERAL:
 Obtener un buen entendimiento en el aprendizaje, logrando un método de
aplicación eficiente para los estudiantes.

OBJETIVOS ESPECÍFICOS:
 Brindar herramientas(cursos/guías) para el acceso a los conocimientos de
programación.

 Diseñar una plataforma virtual donde se fortalezca el interés y se brinden


conocimientos específicos del área de programación para los estudiantes.

 JUSTIFICACIÓN:

¿Por qué se hace la investigación?


Se lleva a cabo esta investigación debido a que los alumnos tienen escaso
conocimiento sobre programación, es por esto que se buscó distintos modos o
alternativas de poder brindar una ayuda para que le resulte más llevadero o de
fácil entendimiento los términos, temas y aplicación de las herramientas del
mismo.
Queremos ofrecer un método de estudio fácil y rápido para que futuros alumnos
se sientan motivados y no pierdan interés por la programación. También poder
incentivar nuevamente a aquellos estudiantes que decidieron por diferentes
motivos abandonar el estudio del mismo.

¿Qué beneficios tiene nuestro proyecto?


 Apoyo escolar en el área de programación por medio de clases o guías
gratuitas dentro de la página web
PRÁCTICAS PROFESIONALIZANTES

 Mejorar el rendimiento académico en las áreas que requieran de los


lenguajes de programación
 Oportunidades laborales según el nivel de conocimiento sobre
programación
 Disponible para cualquier alumno que cuente con internet (preferiblemente
computadora con especificaciones técnicas establecidas por el
programador).
Consideramos la importancia de aprender a programar ya que se adquieren
habilidades y capacidades, como la de resolución de problemas, capacidades
lógicas y espaciales, nivel de abstracción, atención y concentración.

 LIMITACIONES:
En este informe se necesita aclarar los aspectos de los cuales nuestro proyecto no
se encargará de cubrir:
 La página se limitará al idioma español e inglés.

 Este proyecto no contiene ningún contenido pago.

 La carga de datos va a estar restringida a un tipo de permiso de


usuario.
 El sistema solo va a contener archivos multimedia y guías escritas.

 Este proyecto no funciona si el usuario no tiene acceso a internet


 Este proyecto se limitará a proponer espacios que se consideren
necesarios en el área de programación y, en la medida de lo posible
aprobados por el o los profesores.
 Los Creadores/Programadores solo se encargarán de distribuir el
SISTEMA INFORMÁTICO y no del mantenimiento, instalación y
administración de los servidores que requiere dicho SISTEMA
INFORMÁTICO
 El proyecto estará orientado únicamente en estudiantes de la escuela
Técnica Carmen Molina de Llano
PRÁCTICAS PROFESIONALIZANTES

 ANTECEDENTES DE LA INVESTIGACIÓN:

Viñas, M. (2021) en su tesis denominada “Plataformas educativas en el nivel


superior en contexto de emergencia sanitaria por el COVID-19.” 1, comenta lo
siguiente:
En los últimos años, el avance de las Tecnologías de Información y
Comunicación (TIC) ha permitido generar, incorporar, organizar y difundir el
conocimiento de manera sencilla y de forma accesible para cualquier persona con
acceso a Internet, desde cualquier punto donde se encuentre. Dentro del ámbito
educativo, las tecnologías no han pasado desapercibidas; hoy, la educación a
distancia juega un papel preponderante para poder seguir proyectando un futuro
en la cultura de las actuales y futuras generaciones.
Con el acompañamiento de diversas plataformas e-learning educativas, la
educación a distancia ha ganado un espacio significativo en las instituciones
educativas superiores, como herramientas de transferencia de conocimiento, que
facilitan la adquisición, asimilación, comprensión y construcción de saberes,
formando parte del proceso de enseñanza-aprendizaje.
Cebrian (2003) destaca que las instituciones de educación superior han debido
adoptar medidas estratégicas que les permitan responder a las nuevas tendencias
de la información y comunicación para poder ser competitivas, ofreciendo
alternativas diferentes a las tradicionales (este es el caso de la educación virtual, a
distancia o e-learning).
Con todos estos avances de las TIC, han permitido el crecimiento de la educación
en línea, una de las características más importante con la que nos encontramos es
la flexibilidad para la interacción entre profesores y estudiantes. La versatilidad
de la educación en línea presenta cambios en la educación tradicional en el
proceso de enseñanza, ya que es considerada innovadora en las instituciones de
enseñanza (Barrera Rea y Guapi Mullo, 2018, p. 3).
Los entornos virtuales a través de plataformas de aprendizajes, están presentes de
forma cotidiana en los procesos de enseñanza- aprendizaje, con el objetivo de
elevar la calidad del proceso docente educativo y hacerlo más accesible
eliminado las barreras de espacio y tiempo, siendo innumerables las

1
https://www.memoria.fahce.unlp.edu.ar/tesis/te.2131/te.2131.pdf
PRÁCTICAS PROFESIONALIZANTES

universidades a nivel internacional que disponen de campus virtuales y


enseñanza en línea (Fernández Naranjo y Rivero López, 2014, p. 208).
Variados son los espacios virtuales de enseñanza-aprendizaje que existen en la
actualidad. Muchos de ellos son propietarios y otros son libres (González
Hernández, 2016, p. 45).
Leonardo José Torres Argomedo (2019, Lima, Perú) realizó una investigación
llamada “Plataforma virtual para mejorar el rendimiento en una asignatura del
plan curricular de la Escuela de Tecnología de la Información, Snati”, en la que
plantea como objetivo comprobar los efectos del uso de la plataforma virtual de
aprendizaje en la mejora del rendimiento académico de los estudiantes en una
asignatura del plan curricular de la Escuela de Tecnologías de la Información
(ETI) de la sede Independencia de la institución de formación y capacitación:
“Servicio Nacional de Adiestramiento en Trabajo Industrial” (SENATI). Se basó
en una investigación con enfoque cuantitativo, de tipo aplicado, con un diseño
que fue pre-experimental de pretest/postest con un solo grupo (76 estudiantes),
donde se realizó una prueba previa a los participantes, después se le administró el
tratamiento, que consistió en el empleo de la plataforma virtual de aprendizaje y
finalmente, se le aplicó una prueba posterior al mismo grupo de participantes.
Los resultados obtenidos permitieron indicar que existe una diferencia
significativa entre el rendimiento académico de los estudiantes de la escuela de
Tecnologías de la Información, antes y después de aplicar la plataforma virtual.2
En otra investigación, “La plataforma educativa on-line Edmodo en la formación
profesional docente…”, el licenciado Craig (2018, Resistencia) buscó identificar
las posibilidades que ofrecen las TIC, mediante un entorno virtual de aprendizaje
(EVA), también llamado sistema de gestión de aprendizaje (LMS) cómo es
Edmodo, llevándolo a las clases de un curso de formación docente continua.
Llegando al planteamiento de que el conectivismo aporta interesantes
conclusiones al uso educativo de las TIC. Si la educación se propone la
formación de ciudadanos para el desenvolvimiento en la sociedad del
conocimiento, entonces es necesario reconocer y adaptar muchos de los
principios de esta teoría. La creación de conocimiento se interpreta como la
construcción de una red de nodos dispersos donde lo más importante es saber
dónde buscar y cómo transformar. Este proceso se realiza en una interacción
continua con la red social gracias a la necesidad de estar actualizado de forma
permanente. Desde la escuela es posible fomentar la creación y puesta en
2
https://repositorio.upch.edu.pe/bitstream/handle/20.500.12866/7726/
Plataforma_TorresArgomedo_Leonardo.pdf?sequence=1&isAllowed=y
PRÁCTICAS PROFESIONALIZANTES

funcionamiento de espacios virtuales de enseñanza y aprendizaje social que


faciliten a todos los alumnos/as la participación en estos procesos conectivos.3
Como puede observarse a través de estos antecedentes, las investigaciones
relacionadas con la educación y las plataformas educativas son apropiados y
relevantes al tema de la investigación. Encaran la temática de estudio de
plataformas educativas aplicados a diferentes espacios. Las desarrollan con
ejemplificaciones enriquecedoras, al igual que dan a conocer terminología
relevante de diferentes autores. Asimismo, denotan un conocimiento actual de los
estudios que se han desarrollado a lo largo de los últimos años.
Bajo todos estos antecedentes de distintos autores con el mismo objeto de
estudio, con respecto al “uso de las plataformas educativas en ciclos superiores”,
decidimos optar por realizar un sistema informático educativo como una de las
mejores opciones para solucionar nuestra problemática inicial.

 BASES TEÓRICAS:

3
https://ria.utn.edu.ar/xmlui/bitstream/handle/20.500.12272/3155/UTN-LTE-Diego%20Craig%20-%20Tesis
%20%282%29.pdf?sequence=1&isAllowed=y
PRÁCTICAS PROFESIONALIZANTES

BASE DE DATOS
Plataforma Instalación Seguridad Velocidad Modo de
Rendimiento Carga de
trabajo Licencia
datos Puntuación
(10 Puntos) (5 Puntos) (15 Puntos) (20 Puntos) (10 (10 Puntos)
(10 Puntos) (20 Puntos) final: 100
Puntos)
MySQL es El servidor
un sistema de MySQL es
MySQL es gestión de multihilo y
bastante rápido, bases multitarea, y
más fiable y desarrollado está
la instalación barato debido a su Multitare bajo licencia d diseñado
Multiplataforma La menos segura Más rápida5
MySQL4 más eficaz. excepcional a ual: Licencia p para trabajar 80
(10) (5) (20)
(5) arquitectura de (10) ública en sistemas
motor de general/Licenc de
almacenamiento. ia comercial producción
(10) por Oracle de gran
Corporation carga
(10) (10)
47 % de todas las
operaciones de
lectura se
situaron entre Cada
512 y proceso Ofrece
Hay un
1000 microsegun servidor licencias perp
límite de
Instalación muy Tiene la menor dos, mientras que atiende a etuas
Multiplataforma Mayor seguridad 5000 registr
Oracle DB6 larga y tediosa.7 velocidad el 90 % de todas un único Y licencias a 50
(10) (15) os para
(0) (5) las operaciones proceso plazo de 1 año
cargar9
de lectura se de (5)
(5)
sirvieron con una usuario
latencia inferior a (5)
2 ms.8
(5)

Únicamente Velocidad
disponible para Instalación media. Pésima
Windows Seguridad proceso Licencia
SQL Server10 medianamente implementación Problemas de No maneja
moderada multihilo. Microsoft
difícil. de los tipos de rendimiento procesos 35
Menos relación EULA
datos variables. frecuentes11 multihilos.
calidad-precio (10) (5) (2,5)
(2,5) (2,5) (2,5)12
(5)
(5)

4
http://www.foc.es/2013/04/11/988-razones-por-la-que-utilizar-mysql.html#:~:text=Es%20Multiplataforma%3A%20Para%20S.O.,de%20nuestro%20servidor%20para
%20instalarlo.&text=Es%20fácil%20de%20aprender%3A%20Simplemente,datos%20MySQL%20si%20ningún%20problema.

5
https://kinsta.com/es/blog/mariadb-vs-mysql/#:~:text=Aunque%20MariaDB%20es%20una%20bifurcación,muchos%20motores%20de%20almacenamiento%20diferentes.

6
https://www.netec.com/que-es-oracle#:~:text=Se%20considera%20a%20Oracle%20como,estabilidad%20escalabilidad%20y%20soporte%20Multiplataforma.
7
https://www.grupocodesi.com/blog/instalar-oracle.html
8
https://docs.microsoft.com/es-es/azure/azure-netapp-files/performance-oracle-single-volumes
9
https://docs.oracle.com/cloud/latest/related-docs/OMCEZ/es_ww/List_DataLoadHandling.htm
10
https://sqlserver4b.weebly.com/ventajas-y-desventajas.html
11
https://www.sqlshack.com/es/category/optimizacion-de-rendimiento-sql/analisis-de-consultas/

12
https://docs.microsoft.com/es-es/sql/relational-databases/thread-and-task-architecture-guide?view=sql-server-ver16
PRÁCTICAS PROFESIONALIZANTES

MySQL: MySQL permite almacenar y acceder a los datos a través de múltiples


motores de almacenamiento, incluyendo InnoDB, CSV y NDB. MySQL también
es capaz de replicar datos y particionar tablas para mejorar el rendimiento y la
durabilidad.

LENGUAJES DE PROGRAMACIÓN
Código
Propósito: Documentación Características Compatibilidad
Multiplataforma Rendimiento Abierto Soporta MySQL
Desarrollo Web y ayudas importantes Laravel Puntuación
final: 100
(5 Puntos) (20 Puntos) (10 (20 Puntos)
(20 Puntos) (10 Puntos) (5 Puntos) (10 Puntos)
Puntos)

Su carga de
Puede funcionar en datos y la PHP es de
casi todos los conectividad código
sistemas con la base de abierto,
PHP todavía se
operativos, datos también cualquiera
usa en el
incluidos son más puede
Creado para desarrollo web.
Windows, Mac, rápidas para descargarlo
desarrollo web. PHP soporta varias
Linux y Unix. Los permitir una y utilizarlo Es un lenguaje bases de datos,
Casi todos los scripts PHP gestión como
PHP Mucha (10) de incluyendo MySQL. SI 15(10) 100
sitios web están también se eficiente de la quiera para programación
creados con ejecutan en base de datos, lograr sus del lado del (20)
PHP13 (20) dispositivos como la objetivos servidor.
ordenadores, funcionalidad de
portátiles, tabletas del correo y la desarrollo (5)
y móviles.14 administración web
del servidor
(5) (10)
(20)

Los retrasos
más pequeños,
Es pero pueden Python
multiplataforma, es afectar está
decir que es al rendimiento disponible Python es Necesitas un
compatible para del sistema en en su sitio expuesto y controlador especial
Python es
Windows, gran medida. web oficial asociado a casi para hablar con
Pytho compatible con
Linux/Unix, Mac Mucha (10) En este caso, para todas las una base de datos NO (0) 60
n el desarrollo
OS X se descargarlo tecnologías. MySQL.
completo (10)
recomendaría GRATIS y
utilizar PHP 7 utilizarlo. (5) (10)
en lugar de
(5) Python. (10)

(10)

C++ Multiparadigma: C++ se puede Mucha (10) Alto No. Es bueno para Si. NO (0) 70
Programación utilizar para crear rendimiento. proyectos grandes
Estructurada, código que se (0) y complejos. Se (20)
Permite hacer trata de un
imperativo, ejecuta en

13
https://blog.educacionit.com/2017/12/22/php-vs-python-cual-es-mejor-para-programacion-del-lado-del-
servidor/
14
https://kinsta.com/es/blog/php-vs-python/#cmo-funcionan-con-mysql
15
https://es.quora.com/Cuál-es-la-diferencia-entre-hacer-aplicaciones-web-con-Java-o-hacer-aplicaciones-
web-con-PHP-Laravel-Symfony-Django-o-Nodejs
PRÁCTICAS PROFESIONALIZANTES

lenguaje muy
llamadas
amplio (con
dispositivos y directamente muchos años y
plataformas iOS y al Sistema muchas líneas de
programación Android, además Operativo. Es código), tiene que
genérica 16 de en Windows, un lenguaje tener una
Windows Store y compilado compilación por
(5) Xbox. para cada plataforma y su
depuración se
plataforma.
complica debido a
(10)
los errores que
(20) surgen. (5)

PHP (acrónimo recursivo de PHP): Hypertext Preprocessor es un lenguaje de


código abierto muy popular especialmente adecuado para el desarrollo web y que
puede ser incrustado en HTML.

EDITORES DE CÓDIGO PARA PROGRAMAR

Open Atajos de
Coste Extensiones Puntuación final:
Soporte IntelliSense Plataformas Tamaño teclado
(20 Source (para PHP) 100
(10 Puntos) (10 Puntos) (5 Puntos) (5 Puntos) (10
Puntos) (20 Puntos) (20 Puntos)
Puntos)
Visual Si 14 atajos
Código
Studio Si 17 Si Multiplataforma Pequeño muy Gran cantidad
Libre 100
Code (10) (20) (5) (5) útiles.18 (20)
(20) (10) (10)
Versión No.
Sublime Sí, pero
gratuita Si 19 No Multiplataforma Pequeño Limitada (2)20
Text 3 poco útiles 47,5
limitada o (10) (0) (5) (5) (10)
(0) (7,5)
$99 (10)

Código Sí, pero


Limitada (6)21
Atom Libre No No Si Multiplataforma Pequeño pocos
77,5
(20) (0) (10) (20) (5) (5) útiles
(10)
(7,5)

Visual Studio Code: Es un editor de código fuente desarrollado por Microsoft


para Windows, Linux, macOS y Web. Incluye soporte para la depuración, control

16
https://es.wikipedia.org/wiki/C%2B%2B
17
https://www.versuante.com/visual-studio-code-o-sublime-text-que-editor-es-mejor/
18
https://damiandeluca.com.ar/visual-studio-code-atajos-de-teclado-shortcuts
19
https://manuais.iessanclemente.net/index.php/Tutorial_sobre_editor_Sublime_Text_3
20
https://cursania.com/post/2-extensiones-para-trabajar-con-php-en-sublime-text
21
https://bytecode.es/atom-configuracion-para-php-y-laravel/
PRÁCTICAS PROFESIONALIZANTES

integrado de Git, resaltado de sintaxis, finalización inteligente de código,


fragmentos y refactorización de código.

FRAMEWORKS DE CSS
Código Peso de
Documentación Compatibilidad con Modificación de Tamaños de
Maquetación Abierto Personalización paquete Puntuación
laravel estilos proyectos
(10 Puntos) (20 (10 Puntos) completo final: 100
(10 Puntos) (20 Puntos) (10 Puntos) (10 Puntos)
Puntos) (10 Puntos)

Los sitios Los sitios web Tiene 4


creados con creados con archivos que
Bootstrap siguen Documentación Si Bootstrap son se deben
22 el patrón clara y rápida de 24 Si Complejo. conocidos por su incluir en el Grandes
Bootstrap 80
genérico que los consultar. (20) (5) diseño impecable proyecto, (10)
hace parecer (10) (20) pero el aspecto es esto pesa
idénticos. 23 genérico y similar. 308.25kb
(5) (5) (5)

Utiliza un
conjunto de Solo
clases de utilidad Los sitios web requiere un
para crear una La documentación creados con archivo base
Muy fácil de Medianos y
Tailwind interfaz de tiene zonas sin Si Si Tailwind CSS son que
modificar estilos. grandes 95
CSS usuario ordenada terminar. (20) (20) mucho más asciende
(10) (10)
con más (5) personalizables solamente a
flexibilidad y (10) 27kb
singularidad. (10)
(10)

La Documentación Basado en flexbox,


Ofrece columnas
no es cómoda. Fácil esto ayuda a no Solo
modulares para
Necesita un Si Si modificación de ensuciar el código requiere un Pequeños
Bulma facilitar el 85
buscador (20) (20) estilos. HTML y es muy archivo base (5)
desarrollo
urgentemente. (10) moderno (10)
(10)
(5) (10)

Tailwind CSS: Es un framework CSS que permite un desarrollo ágil, basado en


clases de utilidad que se pueden aplicar con facilidad en el código HTML y unos
flujos de desarrollo que permiten optimizar mucho el peso del código CSS.

FRAMEWORKS PHP
Curva de Velocidad Tamaño Ecosistema Seguridad Rendimiento El sistema de soporte Open Puntuación
aprendizaje (20 Puntos) (10 (5 Puntos) (15 Puntos) (20 Puntos) de base de datos source final: 100
(10 Puntos) Puntos) (10 Puntos) (10

22
https://ciberninjas.com/que-diferencias-existen-entre-bootstrap-tailwind/
23
https://www.geeksforgeeks.org/tailwind-css-vs-bootstrap/#:~:text=Bootstrap%20comes%20with%20a
%20set,that%20makes%20them%20look%20identical.
24
https://es.wikipedia.org/wiki/Bootstrap_(framework)
PRÁCTICAS PROFESIONALIZANTES

Puntos)
Viene con un
Con Laravel tienes conjunto de
todo lo necesario API
No es necesario
Curva de 2376.40 De una para empezar a estandarizado
declarar campos al
aprendizaje de grado peticiones/s 3MB riqueza usar seguridad que funciona SI
Laravel migrar una base de 100
medio a fuerte. eg (10) inigualable Open SSL y para (10)
datos
(10) (20) (5) cifrado AES-256- almacenar las
(10)
CBC. vistas en
(15) caché
(20)
Almacena las
Las credenciales La transferencia de
vistas y el
(nombre de base de datos es
código fuente
Curva de 524.78 Tiene un usuario y automática, pero el
en caché de
aprendizaje un poco peticiones/s 3,5MB ecosistema contraseña) se desarrollador tiene que SI
Symfony manera 80
más severa. eg (10) bueno. guardan en la base identificar los campos (10)
predeterminad
(5) (5) (5) de datos de particulares dentro del
a
Symphony. código
(20)
(15) (10)

Ha mantenido
tradicionalmente la
1770.33 Elevado
curva de aprendizaje Más flojo CodeIgniter viene Se conecta a la base
peticiones/s rendimiento. Si
más sencilla, por lo 1.2MB que los con seguridad de de datos manualmente
Codeigniter eg (20) (10) 77,5
que es un (5) otros. filtrado XSS. (5)
(10)
buen framework de (2,5) (15)
entrada.
(10)

Laravel: Es un framework de código abierto para desarrollar aplicaciones y


servicios web con PHP 5, PHP 7 y PHP 8. Su filosofía es desarrollar código PHP
de forma elegante y simple, evitando el "código espagueti".

La Información para crear esta tabla ha sido obtenida de las siguientes páginas:
https://www.arsys.es/blog/frameworks-php-populares#:~:text=Un%20framework%20PHP%20es%20un,repetitivas%20propias%20de%20cada%20proyecto .

https://www.rootstack.com/es/blog/laravel-vs-symfony/#:~:text=aproximadamente%2060%20milisegundos.-,El%20sistema%20de%20soporte%20de%20base%20de
%20datos,campos%20particulares%20dentro%20del%20código.

 DEFINICIÓN DE TÉRMINOS BÁSICOS:


-En esta parte procederemos a definir los términos básicos que hemos
mencionado a lo largo de nuestro informe para lograr un mayor entendimiento de
los temas.

 BASE DE DATOS:
-Una base de datos es un sistema informático a modo de almacén. En este
almacén se guardan grandes volúmenes de información. Por ejemplo,
PRÁCTICAS PROFESIONALIZANTES

imaginemos que somos una compañía telefónica y deseamos tener


almacenados los datos personales y los números de teléfono de todos nuestros
clientes, que posiblemente sean millones de persona.

 XAMPP:
-XAMPP es una distribución de Apache que incluye varios softwares libres.
El nombre es un acrónimo compuesto por las iniciales de los programas que
lo constituyen: el servidor web Apache, los sistemas relacionales de
administración de bases de datos MySQL y MariaDB, así como los lenguajes
de programación Perl y PHP. El nombre es en realidad un acrónimo: X (para
cualquiera de los diferentes sistemas
operativos), Apache, MariaDB/MySQL, PHP, Perl.

 MYSQL:
-MySQL es el sistema de gestión de bases de datos relacional más extendido
en la actualidad al estar basada en código abierto. Este sistema es desarrollado
y soportado por Oracle.

 PHPMYADMIN:
- phpMyAdmin es una herramienta gratuita escrita en PHP que permite de una
manera muy completa manejar la administración de MySQL mediante una
interfaz web muy intuitiva. 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 72 idiomas.

 FRAMEWORK:
-Un framework es un esquema o marco de trabajo que ofrece una estructura
base para elaborar un proyecto con objetivos específicos, una especie de
plantilla que sirve como punto de partida para la organización y desarrollo de
software.

 TAILWIND CSS:
-Tailwind CSS es un framework CSS que permite un desarrollo ágil, basado
en clases de utilidad que se pueden aplicar con facilidad en el código HTML y
unos flujos de desarrollo que permiten optimizar mucho el peso del código
CSS.
PRÁCTICAS PROFESIONALIZANTES

 LARAVEL:
-Laravel es un popular framework de PHP. Permite el desarrollo páginas web
y aplicaciones desde cero totalmente personalizadas de elevada calidad
partiendo de frameworks PHP. Es uno de los frameworks de código abierto
más fáciles de asimilar para PHP. Es simple, muy potente y tiene una interfaz
elegante y divertida de usar. Fue creado en 2011 y tiene una gran influencia
de frameworks como Ruby on Rails, Sinatra y ASP.NET MVC.

 PHP:
-PHP es un lenguaje de programación de uso general que se adapta
especialmente al desarrollo web. Fue creado inicialmente por el programador
danés-canadiense Rasmus Lerdorf en 1994. En la actualidad, la
implementación de referencia de PHP es producida por The PHP Group.

-PHP es un lenguaje de programación destinado a desarrollar aplicaciones


para la web y crear páginas web, favoreciendo la conexión entre
los servidores y la interfaz de usuario.

 JAVASCRIPT:
-JavaScript es un lenguaje de programación o de secuencias de comandos que
te permite implementar funciones complejas en páginas web, es el único
lenguaje de programación que funciona en los navegadores de forma nativa
(lenguaje interpretado sin necesidad de compilación). Por tanto, se utiliza
como complemento de HTML y CSS para crear páginas webs.

 CSS:
-CSS (Cascading Style Sheets), en español «Hojas de estilo en cascada», es
un lenguaje de diseño gráfico para definir y crear la presentación de un
documento estructurado escrito en un lenguaje de marcado(HTML).

 SISTEMA DE HIPÓTESIS:
PRÁCTICAS PROFESIONALIZANTES

 ¿Hay un efecto negativo sobre el bajo rendimiento en los alumnos de séptimo


año de la escuela Carmen molina de llano en el área de programación en el
ciclo lectivo 2022?
 ¿Se podrá resolver esta problemática mediante la realización de un sistema
informático orientado en el área de programación?

 SISTEMA DE VARIABLES:
Datatype
Variables Relación Datos Almacenados
SQL
Belongs to primary
-Id_resource Key, not null y auto
incremental
Relación de uno a url_resource Varchar (45)
resources muchos
(Recursos) (con la variable -resourceable_id Varchar (45)
Courses)
-resourceable_type Varchar (45)

Belongs to primary
Relación de uno a
-id_lesson Key, not null y auto
muchos
incremental
(con la variable
Categorías)
-name_lesson Varchar (45)
Lessonns Varchar (45)
Relación de uno a -url_lesson
(lecciones)
muchos
(con la variable -iframe_lesson Varchar (45)
courses) -section_id_section
INT

-description_id_description INT
Belongs to primary
Relación de uno a -users_id_users Key, not null y auto
lessons_user muchos incremental
(leccion_usuario) (con la variable
user y lesson) Lessons_id_lessons INT

descriptions Relación de uno a Belongs to primary


-Id_description
(descripcion) muchos Key, not null y auto
(con la variable incremental
lesson) -name_description
PRÁCTICAS PROFESIONALIZANTES

Varchar (45)

Belongs to primary
Relación uno a -Id_section Key, not null y auto
muchos incremental
Section (con la variable
-name_section Not Null, INT
(seccion) lesson)
Relación Muchos a
Uno(con la -courses_id_courses Not Null, INT
variable Course)
Belongs to primary
-id_course Key, not null y auto
incremental

-title_course Varchar (45)

Relación uno a -subtitle_course Varchar (45)


muchos
Courses -description_course Varchar (45)
(con la variable
(cursos)
user) -status_course INT

-user_id INT

-levels_id INT

-categorie_id_categorie INT
Belongs to primary
-id_comment Key, not null y auto
incremental

-name_comment Not Null, Varchar (45)


Relación muchos a
Comments uno
(comentarios) (entre las variables - commentable_id
Not Null, Varchar (45)
user)
- commentable_type Not Null, Varchar (45)

-users_id_users INT
profiles Relación uno a uno Belongs to primary
(perfiles) (con la variable -id_profiles Key, not null y auto
user) incremental

-title_profiles Varchar (45)


PRÁCTICAS PROFESIONALIZANTES

-biography_profile Text(100)

-datos_personales_profile Varchar(45)

User_id INT
Belongs to primary
-id_users Key, not null y auto
incremental

Relación uno a -name_user Varchar (45)


users muchos
(usuario) (con la variable -email_users
Varchar(45)
course)
-password_users
Varchar (45)
Belongs to primary
- id_image Key, not null y auto
incremental

Relación muchos a -url_image Varchar (45)


Images
unos
(imagenes)
(con la variable
-imageable_id INT
course)
-imageable_type Varchar (45)
Belongs to primary
- id_review Key, not null y auto
incremental

-comment_review Varchar (45)


Relación uno a
reviews
muchos
(opiniones) -rating_review Varchar (45)
(con la variable
user)
-user_id INT
-course_id INT
-guides_id INT
Belongs to primary
Relación muchos a - id_like Key, not null y auto
likes uno (con la incremental
(me gusta) variable user) -likeable_id INT

-value INT
PRÁCTICAS PROFESIONALIZANTES

-likeable_type Varchar (45)

-users_id_users INT

Belongs to primary
-user_id Key, not null y auto
Tabla incremental
courses_user
intermedia( mucho
(curso usuario))
s a uno) para
-Course_id INT
course y user
Relación uno a Belongs to primary
muchos Id_level Key, not null y auto
Levels
(con la variable incremental
(niveles)
course)
Level_level Varchar(45)
Relación uno a
muchos Id_categorie INT
Categorie
(con la variable
(categoria)
course) Name_categorie Varchar(45)

Belongs to primary
Relación muchos a -id_goal Key, not null y auto
uno incremental
Goals
(con la variable
(metas) -name_goal Varchar(45)
course)
-courses_id_courses INT

Belongs to primary
Relación muchos a -id_requirement Key, not null y auto
uno incremental
Requirements
(con la variable
(requerimientos)
course) -name_ requirement Varchar(45)

-courses_id_courses INT
Belongs to primary
Relación muchos a -Id_guide Key, not null y auto
uno incremental
Guides
(con la variable
(guias) -guia_guide Text(1000)
user)

-users_id INT
PRÁCTICAS PROFESIONALIZANTES

Luego de haber explicado nuestras variables y sus relaciones con otras variables
dejaremos unas ilustraciones para que se tenga un mejor entendimiento de la
tabla.
PRÁCTICAS PROFESIONALIZANTES

Cabe remarcar que nuestra base de datos ya ha sido normalizada según los
criterios de 1fn, 2 fn y 3 fn.
Primera forma normal
 Eliminamos los grupos repetidos de las tablas individuales.
 Creamos una tabla independiente para cada conjunto de datos relacionados.
 Identificamos cada conjunto de datos relacionados con una clave principal.
Segunda forma normal
 Creamos tablas independientes para conjuntos de valores que se apliquen a
varios registros.
 Relacionamos estas tablas con una clave externa.
Tercera forma normal
 No existe ninguna dependencia transitiva entre los atributos que no son clave.
PRÁCTICAS PROFESIONALIZANTES

 LÓGICA:

A continuación, daremos a conocer mediante diagramas de flujo la lógica de


los procesos simples de nuestra plataforma.

 Diagrama de Flujo: Registrarse en la plataforma.


PRÁCTICAS PROFESIONALIZANTES

 Diagrama de Flujo: Inicio Sesión


PRÁCTICAS PROFESIONALIZANTES

 Diagrama de Flujo: Reintentar Inicio de Sesión.


PRÁCTICAS PROFESIONALIZANTES

 Diagrama de Flujo: Reseteo de Contraseña


PRÁCTICAS PROFESIONALIZANTES

 Diagrama de Flujo: Subir un Curso.


PRÁCTICAS PROFESIONALIZANTES

 LOTE DE PRUEBAS

Ahora daremos a conocer las variables con las que hemos probado el correcto
funcionamiento de nuestros diagramas de flujo.

 Inicio Sesión

 Registro
PRÁCTICAS PROFESIONALIZANTES

 MANUAL DE USUARIO

¿Cómo Registrarte en nuestra página?


Para Registrarte en nuestra página debes ubicarte en el “barra superior” donde
nos aparecerá la opción de “Registrarse”, en la cual tendremos que ingresar. A
partir de ahí es el mismo procedimiento que en cualquier otra página, deberán
escribir el nombre para su cuenta (Preferiblemente que sea su nombre real),
escribir un email valido, ingresar una contraseña que cumpla con los parámetros
especificados, reingresar la contraseña y por último darle al botón de Registrarse.
PRÁCTICAS PROFESIONALIZANTES

¿Cómo iniciar sesión en nuestra página?


Para iniciar sesión en nuestra página debemos ubicarnos en la barra superior,
seleccionar la opción Iniciar Sesión. Una vez hecho eso nos saldrá ventana donde
debemos ingresar el mismo email y la contraseña con la cual nos registramos.
PRÁCTICAS PROFESIONALIZANTES

¿Qué hacer si me olvide la contraseña?


Si te olvidaste la contraseña deberás ingresar a la opción que te saldrá en la
ventana de Iniciar Sesión, llamada “Olvidaste tu contraseña”, en la cual deberás
poner el email con el que te registraste para recibir un correo con un enlace donde
podrás cambiar tu contraseña.

¿Cómo buscar un curso?


Para buscar un curso tendrás dos opciones:
1. Buscarlas a lo largo de la página principal, donde van a estar disponibles
todos los cursos según su fecha de posteo.
2. Buscar mediante la barra de Search, esta opción te permite realizar una
búsqueda más específica ya que con solo una palabra nos arrojara un
resultado que contenga dicha búsqueda.
PRÁCTICAS PROFESIONALIZANTES

¿Cómo subir un curso?


Lo primero que debes saber antes de subir un curso es que para ello necesitas un
rol de Instructor el cual te habilite la opción de subir cursos relacionados a la
temática de la página web. Si ya tienes este rol podrás subir videos a la
plataforma.
Luego de cumplir con los requisitos, lo primero que debemos hacer es dirigirnos
a la vista de instructor, al apartado subir un curso y
rellenar todos datos solicitados para ello, esperar a una revisión de algún
administrador, para verificar que el contenido es apropiado para la plataforma,
una vez obtenido la aprobación de algún administrador recién se te habilitara la
opción de subir el curso a la plataforma.
A continuación, veremos los campos obligatorios que deben rellenar para poder
subir un curso.
PRÁCTICAS PROFESIONALIZANTES

 MANUAL DEL ADMINISTRADOR

Procederemos a indicar las acciones que podrá realizarse dentro de la plataforma


las personas que tengan el rol de administrador.

¿Cómo iniciar sesión en nuestra página?


Para iniciar sesión en nuestra página debemos ubicarnos en la barra superior,
seleccionar la opción Iniciar Sesión. Una vez hecho eso nos saldrá ventana donde
debemos ingresar el mismo email y la contraseña con el que nos registramos.
PRÁCTICAS PROFESIONALIZANTES

¿Qué hacer si me olvide la contraseña?


Si te olvidaste la contraseña deberás ingresar a la opción que te saldrá en la
ventana de Iniciar Sesión, llamada “Olvidaste tu contraseña”, en la cual deberás
poner el email con el que te registraste para recibir un correo con un enlace donde
podrás cambiar tu contraseña.

Herramientas del Administrador.


La vista del Home para administrador es distinta al de los usuarios ya que cuenta
con el acceso a una pestaña(apartado) donde tendrá las opciones o herramientas
con las que podrá crear o modificar cursos, roles y demás. Procederemos a dar
una breve explicación de para qué sirven las herramientas en los apartados
disponibles para entender tu trabajo como administrador.
PRÁCTICAS PROFESIONALIZANTES

 Lista de roles: Donde podrás ver, crear y modificar los roles.

 Usuarios: En este apartado te permitirá cambiar los roles (Administrador e


Instructor) de los usuarios.

 Categorías: En este apartado podrás crear o eliminar categorías para nuevos


cursos por ej: programación, desarrollo web, etc.
PRÁCTICAS PROFESIONALIZANTES

 Niveles: Se encuentran los niveles como ser nivel básico, intermedio u


avanzado, podrás crear, editar o eliminar.

 Pendientes de aprobación: En este apartado te saldrán las peticiones de los


instructores para subir curso, en el cual deberás realizar revisión del curso y
de acuerdo al contenido deberás aprobarlo o no, en caso de ser un no tenemos
un botón para dar una observación la cual sería una breve explicación de
porque lo estamos rechazando.
PRÁCTICAS PROFESIONALIZANTES

 GUÍA PARA INGRESAR A NUESTRA PÁGINA

Antes de realizar los pasos para poder ingresar a nuestra página tendremos que
dejar en claro que nuestro proyecto solo se encuentra disponible de manera local
o intranet, por lo cual para poder ingresar a la página debes estar conectado a la
misma red que se está utilizando para el funcionamiento del sistema. Una vez
explicado esto podemos seguir.
Para lograr conectar con nuestra página solo debemos ingresar a nuestro
navegador y en la parte de la url ingresar la siguiente ip “172.20.10.12:8000”.

 MANUAL PARA EL FUNCIONAMIENTO DEL SISTEMA EN


SU COMPUTADORA

Primero debemos instalar los programas necesarios para el funcionamiento del


sistema informático:
 Visual Studio Code;
 Node.js;
 Composer;
 XAMPP;

Una vez instalados todos estos programas debemos descargar el proyecto desde
Github “https://github.com/Maiacandelaria/programar_proyecto”.
Como hacer para que funcione ese link:
 Abrir el cmd y acceder a la carpeta donde se quiere guardar el proyecto
 git clone https://github.com/Maiacandelaria/programar_proyecto.git

Finalizado esto debemos ingresar a Visual Studio Code, seleccionamos la opción


“Archivo” que nos aparece en el barrar superior, seguido de la opción “Abrir
carpeta…”, volvemos a realizar la ruta Disco C:> XAMPP> htdocs> y
seleccionamos la carpeta “programar_proyecto”.
PRÁCTICAS PROFESIONALIZANTES

Cuando lleguemos a este punto deberemos ejecutar el programa XAMPP Control


Panel, encendemos Apache y MySQL. Nos dirigiremos a nuestro navegador y
pondremos “http://localhost/phpmyadmin”, nos tendría que ingresar a una página
con el mismo nombre donde tendremos acceso a todas las bases de datos que
creamos o que vienen por defecto.
Seleccionamos la opción “nueva” la cual nos permitirá crear una nueva base de
datos. Debemos crear una con el siguiente nombre “programar_proyecto”.
Volvemos a él Visual Studio Code, abrimos una terminal (ctrl+ñ) y ejecutamos
los siguientes comandos (debemos esperar que cada uno de estos comandos
finalicen para poder ejecutar el siguiente):
-npm install
-composer install
-php artisan migrate
- php artisan migrate:fresh –seed
- npm run dev

Una vez hecho esto solo nos queda iniciar el servidor para poder ingresar al
proyecto, para poder realizar esto debemos ejecutar el siguiente comando en la
terminal el cual nos arrojara una dirección que luego copiaremos y la pegaremos
en nuestro navegador.
- php artisan serve
PRÁCTICAS PROFESIONALIZANTES

 ERRORES Y SOLUCIONES DURANTE LA


PROGRAMACIÓN DEL SISTEMA INFORMÁTICO

 Todos los usuarios registrados, ingresaban y podían observar en el navbar la


opción Administrador.
Solución: Englobar el dropdown en un can y poner el permiso que tiene el
administrador entonces solamente los usuarios autentificados y con el rol admin
pueden verlos.
@can('Ver dashboard', 'Leer cursos')
<x-jet-dropdown-link href="{{
route('admin.home') }}">
Administrador
</x-jet-dropdown-link>
@endcan

 Error al rechazar un curso: Add[_token] to fillable property to allow mass


assigment on [App/Models/Observation].
Solución: Corregir un error de tipeo.
use HasFactory;

protected $fillable = ['body', 'course_id'];

public function course(){


return $this->belongsTo('App\Models\Course');
}

 No se podían agregar lecciones en las secciones de los cursos.


Solución: Utilizar parámetros de formulario de la sección para que así se
extiende el formulario de la lección.

 No se acepta la condición value ($course->Price->value = 0) por lo tanto no


se podía mostrar el mensaje Gratis en los cursos sin precio.
PRÁCTICAS PROFESIONALIZANTES

Solución: Ejecutando las migraciones y refrescando los seeders de precio.

 No se podía ingresar en el “Mas Información” de las card del Home, Error


403 this action is unauthorized. Este eror se debia a que en el factory de los
cursos se creaban cursos con los 3 status (publicado =3, revisión =2 y
borrador = 1), y todos estos se mostraban en el home,aquellos cursos que no
tengan el status adecuado como para ser visualizado por un usuario común
no permitían verlos a causa de sus permisos.

Solución: Se resolvió cambiando los cursos que se generaban en el factory


ademas de agregar la siguiente línea:
public function __invoke()// __Invoke se utiliza cuando se solo va
a utilizar una sola ruta.
{
$courses = Course::where('status', 3)->paginate();
return view('welcome', compact('courses'));
}

En el HomeController
Luego de que el administrador rechace un curso debía ser posible ver la
observación dada una vez que el instructor entraba en el curso rechazado

 Error al intentar cargar un comentario con su respectiva calificación


(estrellas)
Solución: Se soluciono el error pasando el user_id en el método de las reviews

public function store(){


$course = Course::find($this->course_id);
$course->reviews()->create([
'comment' => $this->comment,
'rating' => $this->rating,
'user_id' => auth()->user()->id //esto era lo que hacia que
se produzca un error, ya que no se le estaba indicando cual es el id del
usuario que estaba intentando dar una reseña.
]);
}
}

También podría gustarte