Proyecto Final

  • Este es el proyecto final.
  • se trabajara de manera grupal

Usted desarrollara un ContactoBook que consistira en: - el backend - la interfaz de usuario *

ContactoManager

Este ContactoManager sera de una manera mas avanzada al como ya lo habiamos venido trabajando, sin embargo puede utilizar el que ya vimos en clase como guia.

Estructura de un Contacto

Algunos campos describiran a un Contacto:

Key: "Nombre y Apellido"

telefono correo empresa extra
numero de telefono, casa o celular correo electronico Compania en la que trabaja el contacto informacion extra que desee agregar del contacto

Inicializacion de contactos.

Todos los grupos partiran de un libro de contactos base que se le dara en una URL.

  1. El programa debera "descargar" este archivo en formato JSON.
  2. Creara su Contactobook base a partir de este archivo.
NOTA

este archivo en este momento sera un archivo ficticio con el cual usted podra hacer pruebas pero el dia de la entrega y demostracion esta URL sera una nueva URL

URL FINAL - para entregar proyecto

URL FINAL 100 contactos: http://demo7130536.mockable.io/final-contacts-100

ejemplo

URL: http://demo7130536.mockable.io/contacts

{
    "A": {
        "Antoine Dufour": { "telefono": "55554444", "email": "ad@gmail.com" , "company" : "Google", "extra" : "Met him in Paris airport" },
        "Amelia Lavaca": { "telefono": "11112222", "email": "al@outlook.com" , "company" : "BAM", "extra" : "Sister " }
    },
    "D": {
        "Didier Deschamps": { "telefono": "22223333", "email": "ad@gmail.com" , "company" : "DHL", "extra" : "Famous TD" }
    }

}

Manejo de Contactos

En el menu se podra:

  • Agregar contactos
  • Buscar contactos
  • Listar contactos
  • Borrar contactos
  • Llamar contactos
  • Enviar mensaje a contactos
  • Enviar correo a contacto.
  • Exportar Contactos.

Agregar Contactos

Usted podra agegar nuevos contactos de la misma manera como lo visto en clase, con la diferencia que ahora agrupara cada Contacto dentro de la letra con la que inicia como se muestra en el Ejemplo

Cada vez que se aƱada un nuevo contacto debe tomar la primera letra con la que inicia el nombre y lo agregara a la letra que pertenece.

Para cada uno de los campos debe pedirlo:

Ingrese el contacto

nombre: .....
telefono: ....
correo: ....
empresa: ....
extra: ....

verificando ....

Para los campos debe verificar las siguientes cosas:

  • El nombre debe tener 2 palabras "Nombre y Apellido"
  • el telefono debe tener solo numeros (pero en string).
  • Verificar que el correo sea valido usando validators.
  • Empresa es opcional
  • extra es opcional

Si no "pasa" alguna verificacion debera mostrar cual verificacion fallo y volver a pedir el contacto. (como puntos extra podria ingeniar que solo regrese a pedir lo que fallo la verificacion)

Buscar contactos

Debera buscar contactos por nombre o apellido, es decir por llave. El resultado sera una lista de contactos encontrados.

buscar: "Ant"

Resultados:
- Antoine Dufour
- Antonio Diaz
- Luis  Antonio Perez
- Carlos Antillan

Listar y Ver contactos

Debera mostrar los contactos de la siguiente forma.

Listar Contacto

A:
    1. Antoine Dufour
    2. Antonio Diaz
    3. Antonieta Vela

B:
    4. Boris Corzo
    5. Brenda Gomez

C:
    6. Carlos Lopez
    7. Carla Barrios

E:
    8. Ester Lopez
    9. Esdras Rivas

T:
    10. Tomas Barrios

Z:
    11. Zoila Cepeda

-----------------------
Ver Contacto: 8 # <-- vea como se usa un No.

Ester Lopez:
    telefono: "55554444"
    email: "elopez@gmail.com"
    company: "Google"
    extra: "Friend"
Listar e interactuar

De ahora en adelante para cada opcion de menu para interactuar lo podra hacer de alguna de estas dos formas:

  • Listar Contacto e interactuar con No.
  • Listar y proveer el nombre exacto para interactuar.

Borrar Contacto

Para borrar contacto lo puede hacer de dos maneras:

  • Listar Contacto y Borrar con No.
  • Listar y proveer el nombre exacto

Al borrar el contacto debera mostrar:

Contacto "Ester Lopez" Borrado
Tiempo de msg

el mensaje sera de 3 segundos (podra ser configurable), es decir se mostrara el mensaje durante 3 segs y se quitara el mensaje, regresando al menu principal

Llamar Contacto

Para Llamar contacto lo puede hacer de dos maneras:

  • Listar Contacto y Llamar con No.
  • Listar y proveer el nombre exacto

Para llamar contacto solo debera mostrar

Lamando a "Ester Lopez" al 55554444 ....
Tiempo de msg

el mensaje sera de 3 segundos (podra ser configurable), es decir se mostrara el mensaje durante 3 segs y se quitara el mensaje, regresando al menu principal

Enviar Msg

Para enviar msg a contacto lo puede hacer de dos maneras:

  • Listar Contacto y enviar msg a con No.
  • Listar y proveer el nombre exacto

Para enviar msg a contacto solo debera pedir el contacto y luego pedira el mensaje que desea enviar

----------
Contacto?: 8
"Ester Lopez"

Mensaje: "queria preguntarte a que hora vendras?"

Hola "Ester Lopez"  55554444
    > queria preguntarte a que hora vendras?

Enviar Correo

Para enviar Correo a contacto lo puede hacer de dos maneras:

  • Listar Contacto y enviar Correo a con No.
  • Listar y proveer el nombre exacto

Para enviar Correo a contacto solo debera pedir el contacto y luego pedira el mensaje que desea enviar

----------
Contacto?: 8
"Ester Lopez"

Subject: "Clase de hoy"
Mensaje: "queria preguntarte a que hora vendras?"

Enviando correo a  "Ester Lopez" elopez@gmail.com
    > Subject: Clase de hoy
    > Message: queria preguntarte a que hora vendras?

Exportar Contactos

Para exportar contactos debera exportar a un archivo CSV en el mismo directorio, a un archivo contact_manager.csv

La estructura del csv sera plana de la siguiente manera

Contactonombre telefono correo empresa extra
Antoine Dufour 54541111 ad@ufm.edu ufm catedratico de la facultad
Antonio Diaz 22220000 diaz@yahoo.com BI
Antonieta Vela 33330000 avela@fedex.com BAM
Boris Corzo 54321111 corzo@corzo.com Cementos progreso
Brenda Gomez 44440000 bgomez@u.net no recuerdo
Carlos Lopez 44432222 elcarlos@hi.com
Carla Barrios 55234444 cbarrios@correo.info
Ester Lopez 32111111 elopez@bi.com.gt Banco Industrial agente de cobros
Esdras Rivas 55341111 rivas@ri.com
Tomas Barrios 56783456 t@ufm.edu ufm decano
Zoila Cepeda 44321111 zoila@ufm.edu UFM secretaria