Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROYECTO DE INVESTIGACIÓN:
APRENDER A PROGRAMAR
CURSO: 7° 2°
PRÁCTICAS PROFESIONALIZANTES
ÍNDICE
CAPÍTULO 1: EL PROBLEMA
1.3. Objetivos……………………………….
1.4. Justificación……………………………
1.5. Limitaciones……………………………
CAPITULO 3:
1.1. Lógica……………………………………………..
CAPITULO 4:
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.
JUSTIFICACIÓ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.
ANTECEDENTES DE LA INVESTIGACIÓN:
1
https://www.memoria.fahce.unlp.edu.ar/tesis/te.2131/te.2131.pdf
PRÁCTICAS PROFESIONALIZANTES
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
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)
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)
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
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)
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)
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)
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.
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
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.
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
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
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
-user_id INT
-levels_id INT
-categorie_id_categorie INT
Belongs to primary
-id_comment Key, not null y auto
incremental
-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
-biography_profile Text(100)
-datos_personales_profile Varchar(45)
User_id INT
Belongs to primary
-id_users Key, not null y auto
incremental
-value INT
PRÁCTICAS PROFESIONALIZANTES
-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:
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
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”.
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
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
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