Encuesta God


Evaluando propuestas
Descripción:
REQUERIMIENTOS FUNCIONALES
Módulo: Encuesta Web
Encuesta Web de 20 preguntas previamente definidas. Antes de comenzar a contestar las preguntas, el usuario debe ingresar los siguientes datos obligatorios:
Membresía (validar que sean 17 dígitos)
Nombre completo
Correo electrónico (validar formato correcto de email)
Checkbox "Acepto Aviso de Privacidad" con un link a una página externa que proporcionaremos (es necesario que el usuario acepte para poder continuar)

Las preguntas pueden aceptar una o más respuestas, y se presentan en diferentes formatos. A continuación se listan los distintos formatos que podrían tener las preguntas:
Opción múltiple, única respuesta (radio button)
Opción múltiple, múltiple respuesta (checkbox)
Opción múltiple con opción OTRO, única respuesta (radio button + text-area)
Opción múltiple con opción OTRO, múltiple respuesta (checkbox + text-area)
Pregunta abierta (text-area)

El formato para cada pregunta lo definimos nosotros en función de lo que se está preguntando y te lo indicaremos en un cuestionario que te proporcionaremos para comenzar a trabajar.

Las preguntas de opción múltiple con opción OTRO deben presentar las opciones disponibles y una última opción que diga "Otros"; si esta opción se selecciona aparece un text-area donde el usuario puede meter su respuesta personalizada.

La presentación de las preguntas al usuario debe ser en el mismo orden que tienen en el cuestionario que te proporcionaremos. Sin embargo, existirán dentro del cuestionario 4 preguntas con "saltos". Cuando el usuario contesta estas preguntas con salto, la siguiente pregunta que verá el usuario puede variar dependiendo de la respuesta proporcionada.

Es obligatorio que los usuarios respondan todas las preguntas que se le muestran. Es importante que el usuario no conteste preguntas que se debían saltar.

En el cuestionario, cada pregunta estará identificada con una clave alfanumérica de máximo 4 caracteres que servirán para saber a cuál pregunta corresponden las respuestas acumuladas en el reporte. En el caso de las preguntas de opción múltiple, las opciones de respuesta también están identificadas con una clave numérica consecutiva.

Módulo: Inyección de variables por URL
La encuesta web tendrá un dominio de acceso público para que los usuarios participen en ella. El link a esta encuesta se publicará en diferentes medios: página Web, redes sociales, campaña de email, anuncio impreso, etc. Es necesario que en el reporte aparezca la fuente de donde proviene el usuario. Para lograr esto, en los links que publiquemos nosotros, agregaremos una variable llamada FUENTE, que debe aceptar uno de los siguientes valores:
PAGINA, SOCIAL, EMAIL, IMPRESO.
El sistema debe capturar esta variable y almacenarla para mostrarla en el reporte. Si el valor de la fuente no se indica o no es ninguno de los mencionados anteriormente, el valor por defecto será PAGINA.
Además, en el caso del email, nosotros podremos conocer de antemano los datos del usuario (membresía, Nombre completo y correo electrónico), así que esos datos los enviaremos en la URL en las variables MEMBRESIA, NOMBRE y EMAIL respectivamente. Cuando el sistema detecte estas variables, debe almacenarlos y saltarse la pantalla que solicita esos mismos datos, en este caso no es necesario confirmar la aceptación del aviso de privacidad. Si alguna de las variables en la URL no cumple con las validaciones correspondientes, el pase directo se cancela y el usuario deberá contestar el formulario inicial con normalidad.
Módulo: Generador de reportes
El sistema debe tener una sección protegida con usuario y contraseña que permita descargar un reporte con los resultados recopilados hasta ese momento. El formato será en .psv, que similar al .csv pero separa sus datos con pipes en lugar de comas. El pipe, también llamado barra vertical, es este símbolo: |
Cada fila debe corresponder a un usuario. Las columnas deben ser las siguientes:
Membresia, Email, Nombre, Fuente, Dirección IP, Navegador_nombre, Navegador_version, Navegador_tipo, Fecha Inicio, Hora Inicio, Fecha Fin, Hora Fin.
En la columna Navegador_nombre esperamos valores como "Chrome", "Internet Explorer", "Firefox"; para el caso de los navegadores nativos de dispositivos móviles, esperamos valores como "iPhone", "iPad" o "Android".
En la columna Navegador_version debe indicar la versión del navegador indicado en Navegador_nombre.
En la columna Navegador_tipo debe contener uno de estos 3 valores: MOVIL, TABLET o ESCRITORIO.
Las fechas deben tener formato AAAA-MM-DD y las horas formato HH:MM:SS (24 horas)
Las siguientes columnas en el reporte son las correspondientes a cada clave de pregunta, en el mismo orden que vienen en el cuestionario proporcionado. Es decir, se usará una columna por cada pregunta, y en el cruce con la fila del usuario vendrá la respuesta que éste proporcionó.
En el caso de las preguntas de respuesta abierta, en la celda debe aparecer todo el texto que el usuario ingresó.
En el caso de las preguntas de opción múltiple con respuesta única, en la celda debe aparecer la clave de la opción seleccionada por el usuario. Si la pregunta tenía una opción OTRO y fue utilizada, en la celda deberá estar el texto ingresado por el usuario.
En el caso de las preguntas de opción múltiple con respuesta múltiple, se usará una columna por cada OPCIÓN (a pesar de que se trata de una sola pregunta). Cada columna debe identificarse con la unión de la clave de la pregunta, un guión bajo y la clave de la respuesta. Por ejemplo, si la pregunta con clave "5" tiene 10 opciones, en el reporte deberán aparecer las siguientes columnas: 5_1, 5_2, 5_3, 5_4, 5_5, 5_6, 5_7, 5_8, 5_9 y 5_10. Y en las celdas deberán marcarse con "1" las opciones que el usuario seleccionó y dejarse en blanco las opciones que no seleccionó. Si la pregunta tiene opción OTRO, el reporte deberá tener una columna con la terminación _OTRO (siguiendo el ejemplo anterior, debería existir una columna 5_OTRO), en esta columna debe colocarse todo el texto que el usuario ingresó; si no uso dicha opción la celda estará en blanco.

REQUERIMIENTOS NO FUNCIONALES
Tecnologías requeridas en producción
ASP.NET (obligatorio)
Microsoft SQL Server (obligatorio)
IIS (obligatorio)
ASP.NET MVC (recomendable)

Detalles adicionales
No es requisito que las preguntas estén almacenadas en base de datos.
No es requisito que las preguntas sean administrables o editables.
Los avances del proyecto se almacenan en un repositorio Git al cual proporcionaremos acceso
Proporcionaremos el maquetado (código HTML y CSS) de los controles necesarios. Debes programar el código Javascript para validar y la conexión con el resto del sistema que sea necesario.

Documentación requerida
Instrucciones para instalación del proyecto
Esquema de base de datos
Descripción breve de estructura de carpetas y archivos clave.



Categoría: Programación y Tecnología
Subcategoría: Programación Web
¿Cuál es el alcance del proyecto?: Crear un nuevo sitio personalizado
¿Es un proyecto o una posición?: Un proyecto
Actualmente tengo: Tengo las especificaciones
Disponibilidad requerida: Según se necesite
Roles necesarios: Desarrollador

Abierto

Presupuesto

13

Propuestas

16

Freelancers interesados

Vencimiento de la publicación: 5 días

Publicado: Hace 25 días

Plazo: No definido

Crea tu propio proyecto

¿Buscas un freelancer para realizar un proyecto similar? Crea tu propio proyecto y recibirás ofertas de los mejores freelancers.


Freelancers que ya aplicaron para este trabajo

German C. Especialidades: C#.NET VB.NET ASP.NET HTML-CSS Javascript jQuery AJAX PHP MySQL Microsoft SQL Server Oracle Database Administración de servidores UNIX/Windows Arquitectura MVC Microsoft Office UNIX She... + detalles

Sistemas D. DG ofrece soluciones en desarrollo de sistemas con valor agregado a las necesidades de nuestros clientes, con propuestas ágiles e innovadoras. Buscamos lograr la excelencia, para que nuestros clientes nos vean como s... + detalles

Iván V. Programador de sistemas con conocimiento y experiencia en desarrollo de software usando diferentes lenguajes de programación, bases de datos y diseño especialmente PHP, Javascript, SQL, CSS3 y HTML5 + detalles

Aaron E. Asistente de Base de Datos y Sistemas Analista Programador en Banco Central de Honduras Analista Programador en Soluciones Informaticas a la Medida + detalles

Guillermo G. Soy una persona demasiado preparada en el ámbito tecnológico, poseo conocimiento absoluto sobre el manejo y gestión de proyectos en Tecnología de la Información. Me enfoco de primer plano en Consultoría, Soporte y De... + detalles