Para (Inicialmente) un teatro se requiere realizar un sistema de gestión de venta y expendio de entradas.
Para poder avanzar en parte y como no disponemos de tiempo decidimos abrir la oferta para poder avanzar con el proyecto en modalidad de gestión del proyecto por mi parte.
- Requerimientos
Se necesita inicialmente, una estructura de Modelo de Base de datos, que contemple el proceso del ciclo de vida de una obra de teatro, sus respectivas presentaciones, reservas, pago por Pasarela de Pago, Estados, Cliente (y sus datos personales mínimos) con el fin de lograr el modelo de dominio basico.
- Los modelos, nombres deben respetar nomenclatura en Inglés Ej. "Customer" y no "Clients".... (Por citar un anticaso)
Actores.
- Teatro
(Datos Correspondientes)
- Cliente
+ Direccion
- Reserva (Para poder generar el Pago por Pasarela de Pago, o en Ventanilla)
- Ticket (Entrada)
- Obra
+ Presentación (Hora Inicio, Hora Final)
+ Precio de Entrada por Tipo de Asiento / Taquilla
- Asiento / Taquilla
- Datos de Identificación de la misma, (Fila, Número, Sección)
- Tipo de Asiento (Mesa, Pullman, Platea, etc... )
- Grupos de Asiento (Categoría de Asientos?)
- Empleado
- Estado
* de Reserva
* de Función
* de Empleado
Como referencia (ACLARO, a modo de referencia nomas)
http://www.databaseanswers.org/data_models/theater_bookings/images/data_model.gif
- Definiciones que ha brindado el cliente (Si les sirve de ayuda o Referencia)
obra de teatro (obra)
puede tener una o más “funciones”
tiene un estado
> próximamente
> activa
> finalizada
tiene información de la misma escrita “hard-coded” en la página
a mano.
RESERVA
Deberá permitir:
- Reservar 1 o más Asientos
- Al reservarlos pasan al estado “Pendiente”
- Cancelar una reserva
- Consultar el estado de la reserva de una Reserva
- Tiene un Estado
>Confirmada
> Pendiente
- Tiene un Tiempo de Vida Máximo en el estado (Pendiente),
- Es Parametrizable
> Inicialmente por Defecto: 5 Minutos
> Pasado el umbral de Tiempo de Vida, deberá Volver al Estado “Disponible”
- Se podrá:
> Reservar un Asiento para la función.
> Ver los Asientos Reservados (no permitiendo seleccionarlos)
- Se deberá
Esperar una devolución de llamada (Callback) en una dirección específica donde se recibirá por parámetros los datos del pago
Codigo de Respuesta a Transacción Ej: Mercado Pago,
- Identificador de Operación
- Estado de la Operación
- Según el estado de la transacción MP, deberá
Generar una Entrada en caso de Estado de Transacción OK
Cambiar el estado de la Reserva a “Confirmada”
Cambiar el Estado de la Reservación (Ver los estados posibles no contemplados)
Entradas
Tienen un Estado
Disponible
Vendida
Vencida (Dado el caso de que, si la obra ya terminó y/o la Función ya TERMINO entonces el ciclo de vida, finalizó)
Se pueden Comprar:
Desde la pagina
Se debería poder realizar el pago vía Mercado Pago
Desde el Área Privada
Si es en Efectivo no hay Plataforma de Pago.
Si es con tarjeta de Crédito / Debito.
Se pueden Cancelar
(¿aplica algún tipo de Acción?)
Tienen un Límite de cantidad según Teatro
Se puede Contar (Saber la cantidad de Entradas Vendidas vs Entradas No Vendidas)
Tiene un Gasto Fijo
- Seguro de Entrada (Monto adicional al costo de Entrada)
- Tiene un Gasto Opcional
Entrega a Domicilio (Monto adicional al costo de Entrada)
Requiere que se registre con los datos de:
Domicilio (Dirección, CPA, Provincia, etc…)
Persona que Recibirá la entrada
¿Horario?
ENTRADA
- Se requiere contar con un Resumen de la cantidad de Entradas Vendidas por Función.
- Se podrán Imprimir
- Se Podrá Cancelar (Y permitir acusar el motivo de cancelación)
que espero como resultado?
de minima: modelo de base de datos definido y estructurado tanto en diagrama como en archivo .SQL listo para ejecutar en Servidor SQL Server 2008
IDEAL: (Esto es porque no es requerido, pero si sabes de lógica de negocio y te animas a crear el Modelo de Acceso a Datos, me adelantas mucho y por ende se pagará) en una Proyecto de Librería .NET C# con sus casos de prueba funcionando.
Plazo de Entrega: 11 Mayo, 2018