Exemplo n.º 1
0
def cargarpregunta():
    pregunta = Preguntas()
    pregunta.enunciado = "Pregunta 1 Prueba 1"
    pregunta.prueba_id = "1"

    db.session.add(pregunta)
    db.session.commit()

    pregunta = Preguntas()
    pregunta.enunciado = "Pregunta 2 Prueba 1"
    pregunta.prueba_id = "1"

    db.session.add(pregunta)
    db.session.commit()

    pregunta = Preguntas()
    pregunta.enunciado = "Pregunta 3 Prueba 1"
    pregunta.prueba_id = "1"

    db.session.add(pregunta)
    db.session.commit()

    pregunta = Preguntas()
    pregunta.enunciado = "Pregunta 1 Prueba 2"
    pregunta.prueba_id = "2"

    db.session.add(pregunta)
    db.session.commit()

    pregunta = Preguntas()
    pregunta.enunciado = "Pregunta 2 Prueba 2"
    pregunta.prueba_id = "2"

    db.session.add(pregunta)
    db.session.commit()

    print("Preguntas Creadas")
Exemplo n.º 2
0
def init_ddbb():
    # Check that the admin user not exist
    num = Usuarios.objects(usuario="admin").count()

    if num == 0:        
        # the "admin" user is saved as a teacher and a student test
        admin = Usuarios(nombre="admin", apellidos="", usuario="admin", password="******", email="*****@*****.**", tipo=0, activado=True)
        admin.save(clean=False)
        profe = Usuarios(nombre="profesor", apellidos="", usuario="profesor1", password="******", email="*****@*****.**", tipo=1, activado=True)
        profe.save(clean=False)
        alumno = Usuarios(nombre="alumno", apellidos="", usuario="alumno1", password="******", email="*****@*****.**", tipo=2, activado=True)
        alumno.save(clean=False)

        # test records    
        asignaturas = ["Seguridad en las comunicaciones", "Sistemas Distribuidos", "Redes", "Procesadores del lenguaje", "Inteligencia Artificial"]
      
        temas = [ 
            (u"El problema de la seguridad", u"La seguridad en los elementos físicos", u"Defensa básica ante ataques"),
            (u"Fundamentos de los S.D.", u"Comunicación entre procesos", u"Servicios de archivos distribuidos"),
            (u"Conceptos básicos de redes", "Redes de área local y área metropolitana", "Redes de área extensa", "Redes de acceso"),
            (u"Introducción", u"Analisis Lexico", u"Analisis sintáctico"),
            (u"Introducción a la IA", u"Lógica", u"Sistemas Expertos")
            ]
            
        op_seg1 = Opciones(letra="A", texto=u"Se debe comprar las mejores herramientas de seguridad disponibles en el mercado y formar a todo el personal en su uso")
        op_seg2 = Opciones(letra="B", texto=u"Se debe contratar al hacker de más prestigio de la comunidad informática y hacerle responsable de la seguridad")
        op_seg3 = Opciones(letra="C", texto=u"Se debe confiar en la suerte y hacer lo que pueda")
        op_seg4 = Opciones(letra="D", texto=u"No hay manera de evitarlos completamente")
        op_seg5 = Opciones(letra="A", texto=u"Debe ser completamente secreta, excepto para un grupo de élite")
        op_seg6 = Opciones(letra="B", texto=u"Debe incluir mecanismos de respuesta, frente a posibles ataques")
        op_seg7 = Opciones(letra="C", texto=u"Debe conseguir que los usuarios no tengan que conocerla")
        op_seg8 = Opciones(letra="D", texto=u"Debe cubrir solo los aspectos de sistemas operativos de la organización")
        op_seg9 = Opciones(letra="A", texto=u"Un sistema que permite, en tiempo real, detectar determinados tipos de ataques y alertar sobre ellos, a la vez que, en algunos casos, puede pararlos.")
        op_seg10 = Opciones(letra="B", texto=u"Un sistema cerrado de TV, que consigue detectar a cualquier ladrón informático que trate de penetrar en la organización.")
        op_seg11 = Opciones(letra="C", texto=u"Un sistema de localización de posibles atacantes en internet.")
        op_seg12 = Opciones(letra="D", texto=u"Un sistema que permite conocer cualquier envío no deseado de información por las redes de comunicaciones.")
        op_seg13 = Opciones(letra="A", texto=u"Porque implementan hasta el nivel 3 de la arquitectura OSI, y los hubs solo hasta el nivel 1.")
        op_seg14 = Opciones(letra="B", texto=u"No son necesariamente más seguros. Depende de su configuración concreta.")
        op_seg15 = Opciones(letra="C", texto=u"Tienen mecanismos físicos de seguridad adicionales.")
        op_seg16 = Opciones(letra="D", texto=u"Son más seguros los hubs, al no tener ninguna configuración especial que hacer en ellos.")
        op_seg17 = Opciones(letra="A", texto=u"Redes locales montadas en secreto, basándose en técnicas criptográficas secretas.")
        op_seg18 = Opciones(letra="B", texto=u"Grupos de ordenadores, relacionados lógicamente entre sí, por un número de grupo (o de VLAN) y configurados por el administrador de un conmutador.")
        op_seg19 = Opciones(letra="C", texto=u"Grupos de ordenadores en distintas redes IP, en distintas situaciones geográficas, dependientes de distintos encaminadores y conmutadores.")
        op_seg20 = Opciones(letra="D", texto=u"Un nuevo desarrollo de seguridad, probado únicamente como piloto, en el MIT.")
        op_seg21 = Opciones(letra="A", texto=u"Acceder a él mediante ssh o telnet, que ofrece, además, las mejores prestaciones de velocidad.")
        op_seg22 = Opciones(letra="B", texto=u"Acceder a él mediante http, al poderse usar criptografía SSL.")
        op_seg23 = Opciones(letra="C", texto=u"Depende en cada caso cómo esté configurado. No hay una solución claramente más segura que otra.")
        op_seg24 = Opciones(letra="D", texto=u"No puede accederse remotamente.")
        op_seg25 = Opciones(letra="A", texto=u"El programa que controla toda la seguridad del sistema operativo.")
        op_seg26 = Opciones(letra="B", texto=u"El nombre que recibe el centro físico del ordenador.")
        op_seg27 = Opciones(letra="C", texto=u"La parte del sistema operativo que controla la administración de recursos.")
        op_seg28 = Opciones(letra="D", texto=u"Una nueva aplicación de seguridad para Windows.")
        op_seg29 = Opciones(letra="A", texto=u"Verdadero, hoy en día cualquiera puede hacerlo.")
        op_seg30 = Opciones(letra="B", texto=u"Falso, depende de qué sistema de ficheros. Por ejemplo, FAT no puede hacerlo.")
        op_seg31 = Opciones(letra="C", texto=u"Falso, el sistema de ficheros nunca se ocupa de estos asuntos.")
        op_seg32 = Opciones(letra="D", texto=u"Verdadero, pero además, depende de la gestión de usuarios.")
        op_seg33 = Opciones(letra="A", texto=u"4 clases distintas: sólo IP, mensajes de aplicaciones con transporte TCP, de aplicaciones con transporte UDP y de protocolos del mismo nivel 3.")
        op_seg34 = Opciones(letra="B", texto=u"3 clases distintas: mensajes de aplicaciones con transporte TCP, de aplicaciones con transporte UDP y de protocolos del mismo nivel 3.")
        op_seg35 = Opciones(letra="C", texto=u"2 clases distintas: mensajes de aplicaciones con transporte TCP y de aplicaciones con transporte UDP.")
        op_seg36 = Opciones(letra="D", texto=u"Muchas clases distintas, dependiendo de la aplicación y el protocolo de encaminamiento.")

        preguntas = [
            (
                (   (u"Para evitar completamente cualquier tipo de ataque informático a los sistemas:", 1, (op_seg1, op_seg2, op_seg3, op_seg4), "D"),
                    (u"La política de seguridad de una organización debe tener alguna de las siguientes características:", 1, (op_seg5, op_seg6, op_seg7, op_seg8), "B"),
                    (u"En el contexto de seguridad de las comunicaciones, un sistema de detección de intrusiones es:", 1, (op_seg9, op_seg10, op_seg11, op_seg12), "A"),
                ),
                (   (u"Los encaminadores son máquinas más seguras que los hubs por:", 1, (op_seg13, op_seg14, op_seg15, op_seg16), "D"),
                    (u"Las VLAN (redes de área local virtuales) son:", 1, (op_seg17, op_seg18, op_seg19, op_seg20), "B"),
                    (u"Para la gestión remota de un encaminador o de un conmutador siempre es más seguro:", 1, (op_seg21, op_seg22, op_seg23, op_seg24), "C"),
                ),
                (   (u"El kernel del sistema operativo es:", 1, (op_seg25, op_seg26, op_seg27, op_seg28), "C"),
                    (u"La seguridad de los datos frente a accesos no autorizados la garantiza cualquier sistema de ficheros de cualquier sistema operativo:", 1, (op_seg29, op_seg30, op_seg31, op_seg32), "B"),
                    (u"Los mensajes IP pueden ser de:", 1, (op_seg33, op_seg34, op_seg35, op_seg36), "B"),
                )
            ),
            (
                (   (u"La computación móvil es la realización de tareas de cómputo mientras el usuario está en movimiento o en otro lugar distinto a su entorno habitual.", 2, True),
                    (u"La computación ubicua requiere que los dispositivos estén fuera de su entorno habitual", 2, False),
                    (u"Un servicio es la parte de un sistema de computadores que gestiona una colección de recursos relacionados y presenta una funcionalidad a los usuario y aplicaciones.", 2, True),
                    (u"El servidor es quien interpreta el texto HTML y el navegador es quien informa al servidor sobre el tipo de contenido que devuelve.", 2, False),
                    (u"El propósito de un URL es identificar un recurso de tal forma que permita al navegador localizarlo en los servidores web.", 2, True)
                ),
                (   (u"La comunicación usando UDP adolece de fallos por omisión.", 2, True),
                    (u"La comunicación usando TCP garantiza la entrega ordenada del mensaje.", 2, True),
                    (u"Sun RPC implementa el modelo de programación basado en invocación a un método remoto.", 2, False)
                ),
                (   (u"Los sistemas de archivos no son responsables de la protección de los archivos.", False),
                    (u"En un sistema de archivos distribuido, los cambios en un archivo por un cliente no deben interferir con la operación de otros clientes que acceden o cambian simultáneamente el mismo archivo.", 2, True),
                    (u"En un sistema de archivos distribuido, un archivo puede estar representado por varias copias de su contenido en diferentes ubicaciones.", 2, True),
                    (u"En AFS se tranfieren archivos completos entre los computadores del servidor y del cliente y haciendo caché de ellos entre los servidores hasta que el cliente reciba una versión más actualizada.", 2, False)
                )                
            ),
            (
                (   
                ),
                (   (u"¿Qué longitud máxima de cable UTP de Categoría 5 recomendaría para operar a una velocidad de 100 Mbps?", 0),
                    (u"Un cable STP de 2 pares se utiliza para transportar señales telefónicas, ¿cómo realizaría la instalación de una red de área local que operase a una velocidad de 10 Mbps", 0),
                ),
                (   (u"En una red Frame Relay indique los procedimientos que conoce para recuperación de la congestión.", 0),
                    (u"En su opinión, ¿las capas 4-7 del MR-OSI resultan muy afectadas po RDSI?", 0),
                ),
                (   (u"Indique las velocidades que se pueden obtener en una conexión ADSL, en función de los parámetros clave que las determinan.", 0),
                    (u"Describa el estado de la normalización en las redes de cable, y analice los organismos que participan en la realización de especificaciones.", 0),
                    (u"Describa los componentes, funciones y operación de una red de cable.", 0),
                    (u"Exprese cuáles son las características principales de un acceso LMDS.", 0)
                ),
            ),
            (
                ( ),
                ( ),
                ( )
            ),
            (
                ( ),
                ( ),
                ( )
            )
            ]

        lista_asignaturas = []
        for i in range(len(asignaturas)):
            asignatura = Asignaturas()
            asignatura.asignatura = asignaturas[i]
            asignatura.save()

            lista_asignaturas.append(asignatura)

            num_pregunta = 1
            
            for j in range(len(temas[i])):
                tema = Temas()
                tema.num = j+1
                tema.descripcion = temas[i][j]
                tema.asignatura = asignatura
                tema.usuario = profe
                tema.save()                
                
                for k in range(len(preguntas[i][j])):
                    pregunta = Preguntas()
                    pregunta.num = num_pregunta
                    pregunta.texto = preguntas[i][j][k][0]
                    pregunta.tema = tema
                    pregunta.tipo = preguntas[i][j][k][1]
                    
                    if pregunta.tipo == 1:
                        for opcion in preguntas[i][j][k][2]:
                            pregunta.opciones.append(opcion)
                        pregunta.correcta = preguntas[i][j][k][3]
                    
                    if pregunta.tipo == 2:
                        pregunta.verdadera = preguntas[i][j][k][2]
                        
                    pregunta.asignatura = asignatura
                    pregunta.usuario = profe
                    pregunta.save()
                    
                    num_pregunta = num_pregunta + 1

        profe.asignaturas = lista_asignaturas
        profe.save(clean=False)
        alumno.asignaturas = lista_asignaturas
        alumno.save(clean=False)