Code Monkey home page Code Monkey logo

isamoviles-misw4203-2024-12's Introduction

ISAMoviles-MISW4203-2024-12

Configuración del Proyecto

  1. Clona este repositorio en tu máquina local utilizando el siguiente comando:

    git clone https://github.com/dparejaUniandes/ISAMoviles-MISW4203-2024-12.git
    
  2. Abre el proyecto en Android Studio.

  3. Espera a que el proyecto se sincronice y se descarguen las dependencias necesarias.

  4. Puedes visualizar la aplicación en un emulador siguiendo los pasos descritos en la sección: Ejecuta tu app en un dispositivo virtual (emulador)

Backend

El backend de la aplicación se encuentra desplegado en un servidor en la nube. Por lo tanto, no es necesario realizar alguna configuración adicional para ejecutar la aplicación.

APK de la Aplicación

A continuación se encuentra el APK de la aplicación, el cual podrás descargar haciendo clic en este enlace:

Puedes importarlo en Android Studio siguiendo los pasos descritos en: Instalar o adicionar archivos en el emulador

Pruebas Automatizadas con Espresso para la Aplicación Vinilos

Este proyecto contiene pruebas automatizadas desarrolladas con Espresso para la aplicación Vinilos. Estas pruebas tienen como objetivo verificar el correcto funcionamiento de las funcionalidades principales de la aplicación.

Requisitos

Antes de ejecutar las pruebas, asegúrate de tener lo siguiente:

  • Android Studio instalado en tu sistema.
  • Un emulador de Android configurado o un dispositivo físico conectado.
  • La aplicación Vinilos instalada en el emulador o dispositivo.

Ejecución de las Pruebas

Para ejecutar las pruebas automatizadas con Espresso, sigue estos pasos:

  1. Abre la clase VinilosAppTest ubicada en el directorio src/androidTest/java/com/example/vinilosapp/.

  2. Haz clic derecho en la clase VinilosAppTest y selecciona "Run 'VinilosAppTest'".

  3. Android Studio iniciará el emulador o se conectará al dispositivo físico y ejecutará las pruebas automatizadas.

  4. Podrás ver el progreso de las pruebas en la ventana "Run" de Android Studio.

  5. Una vez finalizadas las pruebas, se mostrará un resumen de los resultados indicando si las pruebas pasaron o fallaron.

Descripción de las Pruebas

Las pruebas automatizadas con Espresso para la aplicación Vinilos cubren las siguientes funcionalidades:

HU01: Listado de Álbumes

  • Se verifica que el listado de álbumes se muestre correctamente al usuario.
  • Se comprueba que el primer elemento del listado contenga el nombre y el cover del álbum, como información basica de un album.
  • Se simula la acción del usuario al hacer clic en un álbum para navegar a la pantalla de detalles.

HU02: Detalles del Álbum

  • Se asegura que la navegación desde la lista de álbumes hasta la pantalla de detalles funcione correctamente.
  • Se verifica que la información detallada del álbum seleccionado se muestre de manera adecuada.
  • Se comprueba que el botón "back" esté disponible para que el usuario pueda regresar a la lista de álbumes.
  • Se simula la acción del usuario al hacer clic en el botón "back" y se verifica que se regrese correctamente a la lista de álbumes.

isamoviles-misw4203-2024-12's People

Contributors

dparejauniandes avatar geraldinegomez avatar hernandavidc avatar jmgarciad1 avatar gsgomezm avatar

Watchers

 avatar  avatar

isamoviles-misw4203-2024-12's Issues

HU08 - Asociar tracks con un álbum

id HU08 - PHU: 3
Nombre Asociar tracks con un álbum
Descripción Como coleccionista quiero agregar tracks a un álbum para actualizar el catálogo
Criterios de aceptación
  • El usuario visitante puede acceder a la aplicación desde la ventana principal de la aplicación, en el formulario de ingreso digita usuario y contraseña; luego pulsa clic en el botón "Iniciar Sesión". Si las credenciales son correctas, se visualiza el listado de álbumes y en la parte inferior de la ventana se visualiza un menú de iconos.
  • La interfaz contiene en la parte superior un icono de flecha que permite regresar al listado de álbumes , el nombre del álbum, la cantidad de canciones del álbum y icono de más (+).
  • Se pulsa clic en el icono de más (+) ubicado en la parte superior derecha de la interfaz para asociar un track a un álbum.
  • La interfaz contiene en la parte superior izquierda un icono de flecha que permite regresar al álbum seleccionado previamente, al lado derecho el título "Asociat Track", imagen de la portada del álbum, nombre del álbumn y un listado de tracks (canciones) para seleccionar la requerida.
  • Por último, se pulsa clic sobre el botón "Asociar Track" para que se registre la asociación del track con el álbum.
  • En caso de error al mostrar el detalle del álbum, se debe informar al usuario utilizando el siguiente mensaje: Ha ocurrido un problema, por favor intente más tarde
Tareas
  • Desarrollar historia de usuario
  • Realizar pruebas unitarias
  • Manejar los errores y casos de borde, como la conexión fallida o el acceso no autorizado mostrando mensajes de error adecuados al usuario
  • Realizar el PR a la rama de desarrollo y las correcciones a las observaciones efectuadas
  • Integrar en la rama de desarrollo
  • Desplegar la aplicación con la funcionalidad
  • Realiza pruebas de aceptación manual

HU02 - Consular la información detallada de un álbum

id HU02
Nombre Consular la información detallada de un álbum
Descripción Como usuario visitante quiero consultar el detalle de un álbum para conocer su información
Criterios de aceptación
  • Al dar clic sobre el álbum en la lista debe aparecer su información detallada, se debe mostrar su descripción, fecha género y discografía
  • En la parte superior izquierda de la ventana, se debe mostrar un incono de flecha image para que el usuario al dar clic pueda regresar a la pantalla que muestra el listado de los álbumes
  • En caso de error al mostrar el detalle del álbum, se debe informar al usuario utilizando el siguiente mensaje: Ha ocurrido un problema, por favor intente más tarde
    Tareas
    • Crear una clase de modelo para representar los campos necesarios de la vista
    • Construir la interfaz para mostrar el detalle del álbum
    • Integrar la lógica de negocio con la interfaz de usuario
    • Realizar pruebas manuales
    • Manejar los errores y casos de borde, como la conexión fallida, una lista vacía de álbumes o el acceso no autorizado mostrando mensajes de error adecuados al usuario
    • Realizar el PR a la rama de desarrollo y las correcciones a las observaciones efectuadas
    • Integrar en la rama de desarrollo
    • Desplegar la aplicación con la funcionalidad
    • Realiza pruebas de aceptación manual

    HU05 - Consultar listado de coleccionistas

    id HU05
    Nombre Consultar el listado de coleccionistas
    Descripción Como usuario visitante quiero consultar el listado de coleccionistas para seleccionar los que más me interesan
    Tareas
    • 1. Indentificar / crear una clase de modelo (data class) para representar a los coleccionistas, incluyendo los campos necesarios
    • 2. Diseñar e implementar la lógica de negocio para manejar la obtención de la lista de coleccionistas
    • 3. Implementar la interfaz de usuario existente para mostrar la lista de coleccionistas.
    • 4. Integrar la lógica de negocio con la interfaz de usuario
    • 5. Realizar pruebas unitarias
    • 6. Manejar los errores y casos de borde, como la conexión fallida o una lista vacía de coleccionistas, mostrando mensajes de error adecuados al usuario
    • 7. Verificar que la lista de coleccionistas se muestre correctamente en la interfaz de usuario y realiza pruebas de aceptación manual

    UI:

    Doble click en Ok al Asociar track de forma éxitosa

    Descripción del error
    Cuando se ingresan todos los campos para la asociación de un Track, aparece un diálogo informando que el track se ha creado correctamente, sin embargo, se oprime el botón OK y el diálogo vuelve a aparecer, se vuelve a presionar y el diálogo desaparece.

    Pasos para reproducir
    Pasos para reproducir el comportamiento:

    1. Inicie la aplicación
    2. En el listado de álbumes, hacer clic en un álbum e ingresar a su detalle aparece el botón de Asociar track
    3. Diligencie todos los campos de forma correcta
    4. Oprima la opción crear Asociar track
    5. Aparece el diálogo informando que la operación fue exitosa, oprima el botón OK
    6. Se evidencia que el diálogo vuelve a aparecer
    7. Al presionar de nuevo en OK el diálogo desaparece.

    Comportamiento esperado
    Al presionar el botón OK del diálogo que informa sobre la correcta asociación del Track, se debería presionar una única vez el botón OK.

    Capturas de pantallas
    image

    image

    Smartphone (Por favor complete la siguiente información):

    • Device: Pixel 8 Pro API 33
    • OS: Android 8

    Network error on tracks view - HU16 - Listar canciones

    Descripción del error
    Al hacer clic en el botón de "Tracks" en la aplicación, no se abre la vista correspondiente y se muestra un error de "Network Error".

    Pasos para reproducir
    Pasos para reproducir

    1. Abrir la aplicación en el emulador.
    2. Esperar a que se carguen los elementos iniciales.
    3. Hacer clic en el botón de "Tracks" en el menú de navegación.
    4. Ver el error de "Network Error" en lugar de la vista de "Tracks".

    Comportamiento esperado
    Al hacer clic en el botón de "Tracks", se debería abrir la vista correspondiente mostrando la lista de canciones.

    Capturas de pantallas
    image

    Desktop (Por favor complete la siguiente información): N/A

    Smartphone (Por favor complete la siguiente información):
    Device: Emulador de Pixel 3a API 34
    OS: Android 13 (API level 34)
    Version: Extension Level 7 x86_64

    ISSUE No se listan los álbumes en la opción del menú inferior desde el detalle de un álbum

    Descripción del error
    No se listan los álbumes en la opción del menú inferior desde el detalle de un álbum.

    Pasos para reproducir
    Pasos para reproducir el comportamiento:

    1. Iniciar la aplicación
    2. Hacer clic en cualquiera de lo álbumes listados
    3. Desde el detalle del álbum, hacer clic en la opción "Álbumes del menú inferior"
    4. Evidenciar que no se muestra el listado de álbumes.

    Comportamiento esperado
    Cuando se ingresa a la aplicación y se da clic sobre un álbum, se debería poder dar clic desde el detalle del álbum en la opción Álbumes en el menú inferior para poder visualizar el listado de álbumes.

    Capturas de pantallas
    image

    Smartphone (Por favor complete la siguiente información):

    • Device: Pixel 3a
    • OS: Android 8.0 Oreo

    ISSUE Ausencia de título para último álbum listado

    Descripción del error
    En la vista que muestra el listado de álbumes, para el último álbum listado no se está mostrando el nombre del álbum.

    Pasos para reproducir
    Pasos para reproducir el comportamiento:

    1. Inicie la aplicación
    2. Ver el listado de álbumes (por defecto se debe presentar este listado)
    3. Hacer scroll hacia abajo, hasta llegar al final
    4. El último álbum no tiene el nombre.

    Comportamiento esperado
    Al hacer Scroll hasta el último álbum, se debe poder visualizar el nombre del álbum.

    Capturas de pantallas
    image

    Smartphone (Por favor complete la siguiente información):

    • Device: Pixel 3a
    • OS: Android 8.0 Oreo

    Oprimir 2 veces el botón de OK cuando se crea un álbum y es exitoso

    Descripción del error
    Cuando se ingresan todos los campos para la creación de un álbum, aparece un diálogo informando que el álbum se ha creado correctamente, sin embargo, se oprime el botón OK y el diálogo vuelve a aparecer, se vuelve a presionar y el diálogo desaparece.

    Pasos para reproducir
    Pasos para reproducir el comportamiento:

    1. Inicie la aplicación
    2. En el listado de álbumes, en la parte superior derecha aparece la opción para crear un álbum
    3. Diligencie todos los campos de forma correcta
    4. Oprima la opción crear álbum
    5. Aparece el diálogo informando que la operación fue exitosa, oprima el botón OK
    6. Se evidencia que el diálogo vuelve a aparecer
    7. Al presionar de nuevo en OK el diálogo desaparece.

    Comportamiento esperado
    Al presionar el botón OK del diálogo que informa sobre la correcta creación del álbum, se debería presionar una única vez el botón OK.

    Capturas de pantallas
    image

    image

    Smartphone (Por favor complete la siguiente información):

    • Device: Pixel 3a API 26
    • OS: Android 8

    Error al seleccionar un detalle ingresando desde el menú inferior

    Descripción del error
    Cuando se selecciona en el menú inferior la opción de álbumes o artistas y se selecciona un detalle, se presenta un error que automáticamente detiene a la aplicación.

    Pasos para reproducir
    Pasos para reproducir el comportamiento:

    1. Al iniciar la aplicación, ingresar a la opción de álbumes o artistas del menú inferior
    2. Seleccionar algún detalle listado
    3. Se evidencia que hay un error en la aplicación.

    Comportamiento esperado
    Cuando se selecciona en el menú inferior la opción de álbumes o artistas y se selecciona un detalle, se espera que el detalle se visualice correctamente.

    Capturas de pantallas

    image

    Smartphone (Por favor complete la siguiente información):

    • Device: Pixel 3a
    • OS: Android 8.0 Oreo

    HU04 - Consultar la información detallada de un artista

    id HU04 - PHU: 2
    Nombre Consultar la información detallada de un artista
    Descripción Como usuario visitante quiero ver el detalle de un artista para ampliar la información sobre él
    Criterios de aceptación
    • Cuando se ingresa a la ventana del detalle del artista, en la parte superior izquierda debe existir la opción para regresar a la ventana desde donde se invocó el detalle del artista.
    • En la ventana de detalle, como título debe aparecer el nombre del artista, debajo debe aparecer el número de álbumes que ha coleccionado, se debe poner la descripción y el cumpleaños
    • En la sección de cumpleaños, se debe respetar el formato aaaa-mm-dd
    • Debajo de la sección de cumpleaños, se debe mostrar el título de álbumes y listar todos los álbumes del coleccionista.
    • Por cada álbum listado, se debe presentar la portada del álbum, el nombre, el grupo musical y el número de canciones que posee el álbum
    • En caso de error al mostrar el detalle del álbum, se debe informar al usuario utilizando el siguiente mensaje: Ha ocurrido un problema, por favor intente más tarde
    Tareas
    • Identificar/crear el modelo de datos para detallar un artista.
    • Diseñar e implementar la lógica de negocio para presentar el detalle de un artista.
    • Realizar pruebas unitarias
    • Manejar los errores y casos de borde, como la conexión fallida o el acceso no autorizado mostrando mensajes de error adecuados al usuario
    • Realizar el PR a la rama de desarrollo y las correcciones a las observaciones efectuadas
    • Integrar en la rama de desarrollo
    • Desplegar la aplicación con la funcionalidad
    • Realiza pruebas de aceptación manual

    HU07 - Crear un álbum

    id HU07
    Nombre Crear un álbum
    Descripción Como coleccionista quiero agregar un álbum al listado
    Tareas
    • 1. Identificar/crear el modelo de datos para representar un álbum.
    • 2. Implementar la interfaz de usuario para el formulario de creación de un nuevo álbum
    • 3. Diseñar e implementar la lógica de negocio para manejar la creación de un nuevo álbum.
    • 4. Integrar la lógica de negocio con la interfaz de usuario del formulario de creación de álbum.
    • 5. Realizar validaciones de los campos del formulario antes de enviar la solicitud a la API.
    • 6. Realizar pruebas unitarias
    • 7. Mostrar mensajes de éxito o error al usuario después de la creación del álbum
    • 8. Realizar pruebas de aceptación para validar que la funcionalidad cumple con los criterios establecidos

    UI: https://www.figma.com/file/WNNhQPOODFxhtVxvs6aK3z/ISAMoviles-MISW4203-2024-12?type=design&node-id=6-86129&mode=design&t=KAEqY5Q3ArP2cpjP-0

    Image

    HU03 - Consultar el listado de artistas

    id HU03 - PHU: 2
    Nombre Consultar el listado de artistas
    Descripción Como usuario visitante quiero ver el listado de artistas para escoger los que más me interesan
    Criterios de aceptación
    • En la ventana de la aplicación, al presionar sobre el ícono image se deben listar todos los artistas que estén registrados en el sistema
    • Por cada artista, se debe presentar el nombre del artista con una imagen que lo identifique.
    • Al seleccionar un artista, se debe dirigir a la ventana que muestra el detalle del artista
    • En la parte superior izquierda de la ventana, se debe mostrar el título Artista y bajo este, se debe poder visualizar la cantidad de artistas que hay en el sistema.
    • En la parte superior derecha, se debe poner el ícono image el cual debe redirigir a la ventana que permite crear un artista
    • En caso de error al mostrar el detalle del álbum, se debe informar al usuario utilizando el siguiente mensaje: Ha ocurrido un problema, por favor intente más tarde
    Tareas
    • Identificar/crear el modelo de datos para listar un artista.
    • Diseñar e implementar la lógica de negocio para consultar el listado de artistas.
    • Realizar pruebas unitarias
    • Manejar los errores y casos de borde, como la conexión fallida o el acceso no autorizado mostrando mensajes de error adecuados al usuario
    • Realizar el PR a la rama de desarrollo y las correcciones a las observaciones efectuadas
    • Integrar en la rama de desarrollo
    • Desplegar la aplicación con la funcionalidad
    • Realiza pruebas de aceptación manual

    HU06 - Consultar la información detallada de coleccionista

    id HU06 - PHU: 3
    Nombre Consultar la información detallada de coleccionista
    Descripción Como usuario visitante quiero ver el detalle de un coleccionista para conocer sus gustos musicales
    Criterios de aceptación
    • El usuario visitante puede acceder a la aplicación desde la ventana principal de la aplicación, en el formulario de ingreso digita usuario y contraseña; luego pulsa clic en el botón "Iniciar Sesión". Si las credenciales son correctas, se visualiza el listado de álbumes y en la parte inferior de la ventana se visualiza un menú de iconos.
    • En el menú de iconos se selecciona el icono (vinilo) de coleccionistas. Posteriormente, se visualiza en la ventana el listado de coleccionistas que hay registrados en la aplicación.
    • Se pulsa clic en el nombre del coleccionista requerido. Posteriormente, se visualiza un formulario con los detalles del coleccionista.
    • La interfaz contiene en la parte superior izquierda un icono de flecha que permite regresar al listado de coleccionistas, al lado derecho el nombre del coleccionista, cantidad de álbumes asociados, teléfono, email, favoritos (artistas) y el listado de álbumes asociados.
    • En caso de error al mostrar el detalle del coleccionista, se debe informar al usuario utilizando el siguiente mensaje: Ha ocurrido un problema, por favor intente más tarde
    Tareas
    • Identificar/crear el modelo de datos para detallar un coleccionista.
    • Diseñar e implementar la lógica de negocio para presentar el detalle de un coleccionista.
    • Realizar pruebas unitarias
    • Manejar los errores y casos de borde, como la conexión fallida o el acceso no autorizado mostrando mensajes de error adecuados al usuario
    • Realizar el PR a la rama de desarrollo y las correcciones a las observaciones efectuadas
    • Integrar en la rama de desarrollo
    • Desplegar la aplicación con la funcionalidad
    • Realiza pruebas de aceptación manual

    HU01 - Consultar catálogo de álbumes

    id HU01
    Nombre Consultar catalogo de álbumes
    Descripción Como usuario visitante quiero consultar el catálogo de álbumes para seleccionar los que más me interesan
    Criterios de aceptación
    • Debe ser la vista que aparece cuando el usuario inicie sesión satisfactoriamente o el home de la aplicación
    • Los álbumes deben ser listados en orden descendente según su fecha de creación, mostrando primero los más recientes
    • En la parte superior izquierda de la ventana, se debe mostrar el título Álbumes y bajo este, se debe poder visualizar la cantidad de álbumes que hay en el sistema.
    • Por cada álbum, se debe presentar el nombre del álbum con una imagen que lo identifique
    • Al presionar en el menú inferior de la aplicación sobre el ícono image se deben listar todos los álbumes que estén registrados en el sistema
    • En caso de error al listar los álbumes, se debe informar al usuario utilizando el siguiente mensaje: Ha ocurrido un problema, por favor intente más tarde
      Tareas
      • Crear una clase/modelo para representar los campos necesarios de la vista
      • Construir la interfaz para mostrar la lista de álbumes
      • Integrar la lógica de negocio con la interfaz de usuario
      • Realizar pruebas unitarias
      • Manejar los errores y casos de borde, como la conexión fallida, una lista vacía de álbumes o el acceso no autorizado mostrando mensajes de error adecuados al usuario
      • Realizar el PR a la rama de desarrollo y las correcciones a las observaciones efectuadas
      • Desplegar la aplicación con la funcionalidad
      • Integrar en la rama de desarrollo
      • Desplegar la aplicación con la funcionalidad
      • Realiza pruebas de aceptación manual

      Accesibilidad evaluada en la HU07 Crear álbum

      Descripción del error
      Al ejecutar la aplicación Test de Accesibilidad, se han detectado varios problemas, especialmente relacionados al contraste, en la HU07, donde los colores de textos y el color de fondo no se marcan como propios para estar en un contraste superior al número 3.

      Pasos para reproducir
      Pasos para reproducir el comportamiento:

      1. Descargue la aplicación Test de Accesibilidad y habilítela.
      2. Desde el teléfono personal, abra la aplicación de vinilos e ingrese por la opción de agregar álbum.
      3. Desde la vista para agregar álbum, tomar una instantánea con la aplicación de accesibilidad
      4. Ver los reportes que se generan de accesibilidad

      Comportamiento esperado
      La historia de usuario HU07 debería reducir al máximo los problemas relacionados con accesibilidad.

      Capturas de pantallas
      image

      Smartphone (Por favor complete la siguiente información):

      • Device: Motorola
      • OS: Android 15

      Implementación de pruebas E2E

      Implementación de pruebas end-to-end (E2E) con Espresso para validar la funcionalidad principal de la aplicación VinilosApp. Se enfocará en dos escenarios clave: la lista de álbumes y el detalle de un álbum. El objetivo es asegurar que los elementos de la interfaz de usuario se comporten como se espera y que las acciones principales funcionen correctamente.

      Escenarios a Probar:

      • Consultar lista de álbumes:
      1. Verificar que el RecyclerView de álbumes se muestra y que contiene elementos.
      2. Desplazarse al primer elemento para verificar su contenido.
      3. Asegurarse de que el ImageView y otros elementos clave están visibles.
      • Consultar detalle de un álbum:
      1. Simular un clic en un álbum para verificar la navegación al detalle.
      2. Validar que el TextView del nombre del álbum y otros detalles están visibles.
      3. Verificar la funcionalidad del botón "back" para regresar a la lista de álbumes.

      Listado de álbumes con comportamientos inesperados.

      Descripción del error
      Cuando se accede al listado de álbumes, en principio a veces se muestran todos correctamente, pero al navegar por el listado, hay álbumes que dejan de mostrar el cover y a veces desaparecen por completo.

      Pasos para reproducir
      Pasos para reproducir el comportamiento:

      1. Inicie la aplicación
      2. Se visualiza el listado de álbumes
      3. Hacer scroll de arriba a abajo
      4. Evidenciar que hay álbumes que ya no presenta la imagen o desaparecen del listado.

      Comportamiento esperado
      Al acceder al listado de álbumes, se deben visualizar todos los álbumes que están almacenados en el sistema, sin importar que se haga scroll, la información se debe mantener.

      Capturas de pantallas
      El álbum no muestra la imagen
      image

      Smartphone (Por favor complete la siguiente información):

      • Device: Pixel 3a
      • OS: Android 8.0 Oreo

      Recommend Projects

      • React photo React

        A declarative, efficient, and flexible JavaScript library for building user interfaces.

      • Vue.js photo Vue.js

        🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

      • Typescript photo Typescript

        TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

      • TensorFlow photo TensorFlow

        An Open Source Machine Learning Framework for Everyone

      • Django photo Django

        The Web framework for perfectionists with deadlines.

      • D3 photo D3

        Bring data to life with SVG, Canvas and HTML. 📊📈🎉

      Recommend Topics

      • javascript

        JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

      • web

        Some thing interesting about web. New door for the world.

      • server

        A server is a program made to process requests and deliver data to clients.

      • Machine learning

        Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

      • Game

        Some thing interesting about game, make everyone happy.

      Recommend Org

      • Facebook photo Facebook

        We are working to build community through open source technology. NB: members must have two-factor auth.

      • Microsoft photo Microsoft

        Open source projects and samples from Microsoft.

      • Google photo Google

        Google ❤️ Open Source for everyone.

      • D3 photo D3

        Data-Driven Documents codes.