<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Leo te envio la SRS Version 12 y la Normalizacion V5 las cuales fueron actualizadas dado que habia omitido agregar Estados de Publicacion y Fecha de Alta en el diccionario de la SRS en los Avisos de Reunion, de Observacion y de Reconocimiento.<br>Asi mismo dado este cambio tuve que actualizar la Normalizacion para que sea coherente con la SRS y fueron actualizadas las tablas de lo arriba mencionado.<br><br>SRS V12<br><br>REQUERIMIENTOS FUNCIONALES<br><br>Objetivo: <br>El sistema servirá como medio de difusión para que los se publiquen Mascotas Perdidas y Encontradas permitiendo a los visitantes reportar si se tiene alguna información o interés en la mascota. <br>En el caso de que se logre reunir a los dueños con la mascota se publicaran como Mascotas Reunidas<br><br> 1  El sistema debe mostrar Tipos de Administradores.<br><br> 2  El sistema debe gestionar Administradores del sistema con su Tipo de Administrador[1].<br><br> 3  El sistema debe gestionar Especies.<br><br> 4  El sistema debe gestionar Razas para cada Especie[3].<br><br> 5  El sistema debe gestionar Tamaños.<br><br> 6  El sistema debe mostrar Estados de Publicación.<br><br> 7  El sistema debe gestionar Provincias.<br><br> 8  El sistema debe gestionar Ciudades para cada Provincia[7].<br><br> 9 El sistema debe dar de alta Contactos de Mascotas.<br><br> 10 El sistema debe dar de alta Contactos Externos.<br><br> 11 El sistema debe mostrar Sexos.<br><br> 12 El sistema debe dar de alta Mascotas Reunidas con su  Raza[4] con su Especie[3], Sexo[11], Tamaño[5], Contacto de Mascota[9], Estado de Publicación[6] y Ciudad[8] con su Provincia[7]. <br><br> 13  El sistema debe dar de alta Mascotas Perdidas con su  Raza[4] con su Especie[3], Sexo[11], Tamaño[5], Contacto de Mascota[9], Estado de Publicación[6] y Ciudad[8] con su Provincia[7].<br>     13.1  El sistema debe validar la Mascota Perdida[13], que los datos obligatorios ( Raza[4], Especie[3], Tamaño[5], Sexo[11], Contacto de Mascota[9], Ciudad[8] y Provincia[7]) estén todos completos.<br>     13.2  El sistema debe enviar un mail con un link de confirmación al mail del Contacto de Mascota[9] de la Mascota Perdida[13], que expira en 3 días, guardar la Mascota Perdida[13] con un Estado de Publicación[6] inicial Pendiente de Confirmación<br>     13.3  El sistema debe confirmar la Mascota Perdida[13]cuando el link enviado es visitado, dentro de los 3 días posteriores al envío del mail, actualizando el Estado de Publicación[6] a Pendiente de Publicación.<br>     13.4  El sistema debe enviar un mail al administrador del sistema[2], avisando del alta, para que sea revisado y confirmada el alta de Mascota Perdida[13].<br>     13.5  El sistema debe actualizar el Estado de Publicacion[6] de una Mascota Perdida[13] cuando el Administrador del sistema[2] la confirma, de Pendiente de Publicación a Activo.<br><br> 14  El sistema debe dar de alta Mascotas Encontrados con su  Raza[4] con su Especie[3], Sexo[11], Tamaño[5], Contacto de Mascota[9],  Estado de Publicación[6] y Ciudad[8] con su Provincia[7].<br>     14.1  El sistema debe validar la Mascota Encontrada[14], que los datos obligatorios (Especie[3], Tamaño[5], Sexo[11], Contacto de Mascota[9], Ciudad[8] y Provincia[7]) estén todos completos.<br>     14.2  El sistema debe enviar un mail con un link de confirmación al mail del Contacto de Mascota[9] de la Mascota Encontrada[14], que expira en 3 días, guardar la Mascota Encontrada[14] con un Estado de Publicación[6] inicial Pendiente de Confirmación<br>     14.3  El sistema debe confirmar la Mascota Encontrada[14]cuando el link enviado es visitado, dentro de los 3 días posteriores al envío del mail, actualizando el Estado de Publicación[6] a Pendiente de Publicación.<br>     14.4  El sistema debe enviar un mail al administrador del sistema[2], avisando del alta, para que sea revisado y confirmada el alta de  Mascota Encontrada[14].<br>     14.5 El sistema debe actualizar el Estado de Publicacion[6] de una Mascota Encontrada[14]  cuando el Administrador del sistema[2] la confirma, de Pendiente de Publicación a Activo.<br><br> 15  El Sistema debe dar de alta Aviso de Reunión de Mascota Perdida con su  de Mascota Perdida[13]<br>     15.1  El sistema debe validar que la Mascota Perdida[13] ingresada este registrada en el sistema y su Estado de Publicación[6] sea Activo.<br>     15.2  El sistema debe enviar un mail con un link de confirmación al mail del Contacto de Mascota[9] de la Mascota Perdida[13].<br>     15.3  El sistema debe confirmar el Aviso de Reunión de Mascota Perdida[16] cuando el link enviado es visitado, dentro de los 3 días posteriores al envío del mail.<br>     15.4  El sistema debe borrar la Mascota Perdida[13] y da de alta con los mismos datos una Mascota Reunida[12].<br><br> 16  El Sistema debe dar de alta Aviso de Reunión de Mascota Encontrada con su Mascota Encontrada[14]<br>     16.1  El sistema debe validar que la Mascota Encontrada[14] ingresada este registrada en el sistema y su Estado de Publicación[6] sea Activo.<br>     16.2  El sistema debe enviar un mail con un link de confirmación al mail del Contacto de Mascota[9] de la Mascota Encontrada[14].<br>     16.3  El sistema debe confirmar el Aviso de Reunión de Mascota Encontrada[17] cuando el link enviado es visitado, dentro de los 3 días posteriores al envío del mail.<br>     16.4  El sistema debe borrar la Mascota  Encontrada[14] y da de alta con los mismos datos una Mascota Reunida[12].<br><br> 17  El sistema debe gestionar Avisos de Observación de Mascotas Perdidas con su Mascota Perdida[13], Ciudad[8] con su Provincia[7] y su Contacto Externo[10]<br>     17.1  El sistema debe validar el Aviso de Observación de Mascotas Perdida[13] que los datos obligatorios (Ciudad, Provincia, Contacto Externo[10]) esten completos.<br>     17.2  El sistema debe enviar un mail con un link de confirmación al Contacto Externo[10] ingresado en el Aviso de Observación de Mascotas Perdidas[18].<br>     17.3  El sistema debe confirmar el Aviso de Observación de Mascota Perdida[18] cuando el link es visitado por primera vez, dentro de los 3 días posteriores al envío y envía un mail al Contacto de Mascota[9] de la Mascota Perdida[13] con los datos ingresados en el Aviso de Observación de Mascotas Perdida[18].<br><br> 18  El sistema debe gestionar Avisos de Reconocimiento de Mascotas Encontrada con su Mascota Encontrada[14], Ciudad[8] con su Provincia[7] y su Contacto Externo[10]<br>     18.1  El sistema debe validar el Aviso de Reconocimiento de Mascotas Encontrada[14] que los datos obligatorios (Ciudad, Provincia, Contacto Externo[10]) esten completos.<br>     18.2  El sistema debe enviar un mail con un link de confirmación al Contacto Externo[10] ingresado en el Aviso de Reconocimiento de Mascotas Encontradas[19].<br>     18.3  El sistema debe confirmar el Aviso de Reconocimiento de Mascota Encontrada[19] cuando el link es visitado por primera vez, dentro de los 3 días posteriores al envío y envía un mail al Contacto de Mascota[9] de la Mascota Encontrada[14] con los datos ingresados en el Aviso de Reconocimiento de Mascotas Encontrada[19].<br>    <br> 19  El sistema debe mostrar Mascotas Perdidas[13] cuyo Estado de Publicación[6] sea Activo filtrando por Raza[4] o Especie[3]  o Ciudad[8], las combinaciones de estas o sin filtrar.<br><br> 20  El sistema debe mostrar Mascotas Encontradas[14] cuyo Estado de Publicación[6] sea Activofiltrando por Raza[4] o Especie[3] o Ciudad[8], las combinaciones de estas o sin filtrar.<br><br> 21  El sistema debe mostrar Mascotas Reunidas[12] cuyo Estado de Publicación[6] sea Activo filtrando por Raza[4] o Especie[3] o Ciudad[8], las combinaciones de estas o sin filtrar.<br><br> 22  El sistema debe mostrar al inicio al azar 4 (cuatro) Mascotas Perdida[13], cuyo Estado de Publicación[6] sea Activo.<br><br> 23  El sistema debe mostrar al inicio al azar 4 (cuatro) Mascotas Encontrada[14], cuyo Estado de Publicación[6] sea Activo.<br><br> 24  El sistema debe mostrar al inicio al azar 4 (cuatro) Mascotas Reunida[12], cuyo Estado de Publicación[6] sea Activo.<br><br> 25 El sistema debe actualizar el Estado de Publicacion[6] de una Mascota Perdida[13] cuando el Administrador del sistema[2] la rechaza, de Pendiente de Publicación a Rechazada.<br><br> 26  El sistema debe actualizar el Estado de Publicacion[6] de una Mascota Encontrada[14]  cuando el Administrador del sistema[2] la rechaza, de Pendiente de Publicación a Rechazada.<br><br> 27  El sistema debe eliminar automáticamente una vez por día todos los links que no han sido confirmados y enviar un mail al Contacto de Mascota[9] informando de esta accion.<br>     27.1  El sistema debe eliminar automáticamente Mascotas Perdida[13] que han caducado (pasaron 3 días del envío del mail sin confirmación del mismo).<br>        27.1.1 El sistema debe eliminar el Contacto de Mascota[9] si este no existia antes del alta de la Mascota Perdida[13].<br>     27.2  El sistema debe eliminar automáticamente Mascotas Encontrada[14] que han caducado (pasaron 3 días del envío del mail sin confirmación del mismo).<br>        27.2.1 El sistema debe eliminar el Contacto de Mascota[9] si este no existia antes del alta de la Mascota Encontrada[14].<br>     27.3  El sistema debe eliminar automáticamente Avisos de Reunión de Mascotas Perdida[15] que han caducado (pasaron 3 días del envío del mail sin confirmación del mismo).<br>     27.4  El sistema debe eliminar automáticamente Avisos de Reunión de Mascotas Encontrada[16] que han caducado (pasaron 3 días del envío del mail sin confirmación del mismo).<br>     27.5  El sistema debe eliminar Mascotas Perdida[13] cuando el Estado de Publicacion[6] pase a ser Rechazada. <br>     27.6  El sistema debe eliminar Mascotas Encontrada[14] cuando el Estado de Publicacion[6] pase a ser Rechazada. <br><br> 28  El sistema debe eliminar automáticamente una vez por día todos los links que no han sido confirmados y enviar un mail al Contacto Externo[10] informando de esta accion.<br>     28.1  El sistema debe eliminar automáticamente los Avisos de Observación de Mascotas Perdida[17] que han caducado (pasaron 3 días del envío del mail sin confirmación del mismo).<br>        28.1.1 El sistema debe eliminar el Contacto Externo[10] si este no existia antes del alta del Avisos de Observación de Mascotas Perdida[17].<br>     28.2  El sistema debe eliminar automáticamente los Avisos de Reconocimiento de Mascotas Encontrada[18] que han caducado (pasaron 3 días del envío del mail sin confirmación del mismo).<br>        28.2.1 El sistema debe eliminar el Contacto Externo[10] si este no existia antes del alta del Avisos de Reconocimiento de Mascotas Encontrada[18].<br><br> 29  El sistema debe registrar y enviar Sugerencias por mail al email que se designe para recibir los mails de sugerencia.<br><br> 30 El sistema debe mostrar al Administrador del Sistema[2] un resumen de Mascotas Perdida[13], Mascotas Encontrada[14], Avisos de Reunión de Mascotas Perdida[15], Avisos de Reunión de Mascotas Encontrada[16], Avisos de Observación de Mascotas Perdida[17] , Avisos de Reconocimiento de Mascotas Encontrada[18] cuyo Estado de Publicacion[6] sea Pendiente de Publicacion.<br><br><br><br>DICCIONARIO<br><br>Tipo de Administradores: (clasificación de atribuciones que tendrá cada administrador del sistema) Descripción, Permisos.[Administrador de Publicaciones | Administrador General]<br><br>Administrador del Sistema: Nombre, Apellido, Usuario, contraseña, Tipo de Administrador, email. <br><br>Especie:  Descripción. (Es la clase de Mascota, Perro, Gato, etc)<br><br>Raza: (Es la raza de cada tipo, un perro Caniche toy, un Gato Siames, etc) Descripción, Especie.<br><br>Tamaño: Descripción. <br><br>Sexo: Descripcion.[Hembra | Macho]<br><br>Contacto de Mascota: (Es la persona que reporta una mascota perdida o encontrada) Nombre, E-mail. <br><br>Contacto Externo: (Es la persona que reporta que vio a la mascota perdida o conoce a la mascota encontrada).Nombre, E-mail. <br><br>Estados de Publicación: (Es el estado en que se encuentra la publicación de la mascota perdida o mascota encontrada, mascota reunida, los Avisos de Reunion de Mascota Perdida o Encontrada o Avisos de Observacion de Mascota Perdida o Avisos de Reconocimiento de Mascota Encontrada, si aun no fue confirmada por el Contacto de Mascota, si todavía no fue publicada.[Activo | Pendiente de Confirmación | Pendiente de Publicación | Rechazado]). Descripción. <br><br>Provincia: Descripción.<br><br>Ciudad: Descripción, Provincia<br><br>Mascota Reunida: (Se utiliza para ingresar al sistema una Mascota Reunida que se logro juntar con su Familia)Nombre, Edad, Especie, Raza, Tamaño, Contacto de Mascota, Sexo, Estado de Publicacion, Ciudad, Provincia, Observación, Foto1, Foto2, Foto3, Fecha de Alta.<br><br>Mascota Perdida: (Se utiliza para ingresar al sistema una Mascota Perdida que se perdió de su Familia)Nombre, Edad, Especie, Raza, Tamaño, Contacto de Mascota, Sexo, Estado de Publicacion, Ciudad, Provincia, Observación, Foto1, Foto2, Foto3, Fecha de Alta.<br><br>Mascota Encontrada: (Se utiliza para ingresar al sistema una Mascota Encontrada que es hallada en la calle y acogida hasta que se encuentre a su familia)Nombre, Edad, Especie, Raza, Tamaño, Contacto de Mascota, Sexo, Estado de Publicacion, Ciudad, Provincia, Observación, Foto1, Foto2, Foto3, Fecha de Alta.<br><br>Aviso de Reunión de Mascota Perdida: (Se utiliza para ingresar al sistema que una Mascota Perdida esta reunida con su familia y dar de alta una Mascota Reunida con sus datos) Mascota Perdida, Contacto de Mascota, Estado de Publicacion, Fecha de Alta<br><br>Aviso de Reunión de Mascota Encontrada: (Se utiliza para ingresar al sistema que una Mascota Encontrada esta reunida con su familia y dar de alta una Mascota Reunida con sus datos) Mascota Encontrada, Contacto de Mascota, Estado de Publicacion, Fecha de Alta<br><br>Avisos de Observación de Mascota Perdida (Se utilizan para ingresar al sistema que una Mascota Perdida fue vista en una Ubicación.) Mascota Perdida, Contacto Externo, Calles, Ciudad, Provincia, Mensaje, Estado de Publicacion, Fecha de Alta<br><br>Avisos de Reconocimiento de Mascota Encontrada (Se utilizan para ingresar al sistema que se posee información de la Mascota Encontrada): Mascota Encontrada, Contacto Externo, Ciudad, Provincia, Mensaje, Estado de Publicacion, Fecha de Alta<br><br>Sugerencias: nombre, email, texto de sugerencia.<br><br><br>Normalizacion V5<br><br>Provincias<br>[<br>    pro_id: integer(autoincremental);<br>    pro_name: Varchar(100);<br>]<br><br>Localidades<br>[<br>    loc_id: integer(autoincremental);<br>    loc_name: Varchar(150);<br>    loc_pro_id: integer; (FK)<br>]<br><br>Especies<br>[<br>    esp_id: integer(autoincremental);<br>    esp_name: Varchar(100);<br>]<br><br>Razas<br>[<br>    raz_id: integer(autoincremental);<br>    raz_name: Varchar(150);<br>    raz_esp_id:integer;(FK)<br>]<br><br>Tamanos<br>[<br>    tam_id: integer(autoincremental);<br>    tam_name: Varchar(25);<br>]<br><br>Estados_Publicacion<br>[<br>    est_id: integer(autoincremental);<br>    est_name: Varchar(25); [Activo | Pendiente de Confirmación | Pendiente de Publicación | Rechazado]<br>]<br><br>Contactos_Mascotas<br>[<br>    con_id: integer(autoincremental);<br>    con_name: Varchar(50);<br>    con_email: Varchar(100);<br>]<br><br>Contactos_Externos<br>[<br>    cext_id: integer(autoincremental);<br>    cext_name: Varchar(50);<br>    cext_email: Varchar(100);<br>]<br><br>Sexos<br>[<br>    sex_id:integer(autoincremental);<br>    sex_name:Varchar(20);<br>]<br><br>Mascotas_Perdidas<br>[<br>    mas_id: integer(autoincremental);<br>    mas_name: Varchar(50);<br>    mas_sex:Varchar(20);<br>    mas_sex_id:integer;(FK)<br>    mas_raza: Varchar(150);<br>    mas_raz_id:integer;(FK)<br>    mas_edad: integer;<br>    mas_obs: text; - allow NULL<br>    mas_tamano: Varchar(25);<br>    mas_tam_id:integer;(FK)<br>    mas_loc: Varchar(150);<br>    mas_loc_id:integer:(FK)<br>    mas_prov: Varchar(100);<br>    mas_est_id: integer; (FK)<br>    mas_con_id:integer(FK);<br>    mas_link: varchar(100); - allow NULL<br>    mas_fecalta: timestamp;<br>]<br><br>Mascotas_Encontradas<br>[<br>    mas_id: integer(autoincremental);<br>    mas_name: Varchar(50);<br>    mas_sex:Varchar(20);<br>    mas_sex_id:integer;(FK)<br>    mas_raza: Varchar(150);<br>    mas_raz_id:integer;(FK)<br>    mas_edad: integer;<br>    mas_obs: text; - allow NULL<br>    mas_tamano: Varchar(25);<br>    mas_tam_id:integer;(FK)<br>    mas_loc: Varchar(150);<br>    mas_loc_id:integer:(FK)<br>    mas_prov: Varchar(100);<br>    mas_est_id: integer; (FK)<br>    mas_con_id:integer(FK);<br>    mas_link: varchar(100); - allow NULL<br>    mas_fecalta: timestamp;<br>]<br><br><br>Mascotas_Reunidas<br>[<br>    mas_id: integer(autoincremental);<br>    mas_name: Varchar(50);<br>    mas_sex:Varchar(20);<br>    mas_sex_id:integer;(FK)<br>    mas_raza: Varchar(150);<br>    mas_raz_id:integer;(FK)<br>    mas_edad: integer;<br>    mas_obs: text; - allow NULL<br>    mas_tamano: Varchar(25);<br>    mas_tam_id:integer;(FK)<br>    mas_loc: Varchar(150);<br>    mas_loc_id:integer:(FK)<br>    mas_prov: Varchar(100);<br>    mas_est_id: integer; (FK)<br>    mas_con_id:integer(FK);<br>    mas_link: varchar(100); - allow NULL<br>    mas_fecalta: timestamp;<br>]<br><br>Mas_Pics_P<br>[<br>    mpic_id: integer(autoincremental);<br>    mpic_name: Varchar(50);<br>    mpic_mas_id: integer; (FK)<br>]<br><br>Mas_Pics_E<br>[<br>    mpic_id: integer(autoincremental);<br>    mpic_name: Varchar(50);<br>    mpic_mas_id: integer; (FK) <br>]<br><br>Mas_Pics_R<br>[<br>    mpic_id: integer(autoincremental);<br>    mpic_name: Varchar(50);<br>    mpic_mas_id: integer; (FK) <br>]<br><br><br>Avisos_Obs_P<br>[<br>    avi_id: integer(autoincremental);<br>    avi_mas_id: integer; (FK) <br>    avi_cext_id: integer; (FK)<br>    avi_calle: Varchar(100);<br>    avi_loc_id: integer; (FK)<br>    avi_loc:Varchar(150);<br>    avi_prov:Varchar(100);<br>    avi_link: varchar(100);<br>    avi_est_id:integer;(FK)<br>    avi_fecalta:timestamp;<br>]<br><br>Avisos_Rec_E<br>[<br>    avi_id: integer(autoincremental);<br>    avi_mas_id: integer; (FK) <br>    avi_cext_id: integer; (FK)<br>    avi_calle: Varchar(100);<br>    avi_loc_id: integer; (FK)<br>    avi_loc:Varchar(150);<br>    avi_prov:Varchar(100);<br>    avi_link: varchar(100);<br>    avi_est_id:integer;(FK)<br>    avi_fecalta:timestamp;<br>]<br><br>Avisos_Reu_P<br>[<br>    avir_id: integer(autoincremental);<br>    avir_mas_id: integer; (FK) <br>    avir_link: varchar(100);<br>    avir_est_id:integer;(FK)<br>    avir_fecalta:timestamp;<br>]<br><br>Avisos_Reu_E<br>[<br>    avir_id: integer(autoincremental);<br>    avir_mas_id: integer; (FK) <br>    avir_link: varchar(100);<br>    avir_est_id:integer;(FK)<br>    avir_fecalta:timestamp;<br>]<br><br>Sugerencias<br>[<br>    sug_id: integer(autoincremental);<br>    sug_name: varchar(50);<br>    sug_email: varchar(100);<br>    sug_texto: varchar(500);<br>]<br><br>Tipo_Admins<br>[<br>    tad_id: integer(autoincremental);<br>    tad_name: Varchar(100);<br>]<br><br>Admins<br>[<br>    adm_id: integer(autoincremental);<br>    adm_nombre: Varchar(50);<br>    adm_apellido: Varchar(50);<br>    adm_user: Varchar(20);<br>    adm_pass: Varchar(20);<br>    adm_email: Varchar(100);<br>    adm_tad_id: integer; (FK)<br>]<br>                                     </div></body>
</html>