You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Entrega Proyecto de Desarrollo Frontend con JavaScript
10
-
## Conocimientos trabajados
11
-
- Funcionamiento de un Navegador.
12
-
- Composicion de un href.
13
-
- Browser Object Model (BOM) y Document Object Model (DOM).
14
-
-Nodos y Element del DOM.
10
+
- Funcionamiento básico de un Navegador.
11
+
- Browser Object Model (BOM).
12
+
- Navigation.
13
+
- Location.
14
+
- Window.
15
+
-Document Object Model (DOM), sus nodos y elementos.
15
16
- Seleccionar nodos.
16
17
- Crear y eliminar elementos del nodo.
17
18
- Manipulanr atributos del nodo más sus estilos y clases CSS.
@@ -20,69 +21,77 @@
20
21
- Event Bubbling & Capturing.
21
22
- Promesas y sus estados: pending, fulfilled y rejected.
22
23
- Peticiones HTTP con fetch.
23
-
-localStorage & sessionStorage
24
+
-LocalStorage & sessionStorage.
24
25
- Almacenamiento local de datos de HTML5: cookies, storage y indexed DB.
25
26
26
27
## Descripción del Proyecto
27
-
Con el fin de ejercitar y demostrar los conocimientos adquiridos en clases virtuales este proyecto consiste en desarrollar una aplicación web similar a Wallapop. No se tiene permitido utilizar librerías o frameworks de JavaScript. En cambio, sí está permitido utilizar utilidades de CSS externas.
28
+
29
+
Con el fin de ejercitar y demostrar los conocimientos adquiridos en clases virtuales este proyecto consiste en desarrollar una aplicación web similar a Wallapop. No se tiene permitido utilizar librerías o frameworks de JavaScript. En cambio, sí está permitido utilizar utilidades de CSS externas.
28
30
Además, se debe proporcionar un archivo db.json para el backend con los datos de ejemplo para la corrección de la práctica.
29
31
30
32
1. Listado de anuncios.
31
-
- Cada anuncio debe mostrar su imagen (si tiene), nombre, descripción, precio y si es compra o venta. Los anuncios publicados deben obtenerse a través de un endpoint, mencionado más adelante.
32
-
- La pantalla de listado de los anuncios deberá gestionar todos los estados de interfaz correctamente:
33
-
-Vacío (no hay anuncios)
34
-
-Error (cuando se produce un error al cargar los anuncios).
35
-
-Carga (mientras se cargan los anuncios desde el backend).
36
-
-Éxito (cuando se han recuperado los anuncios y están listos para ser mostrados).
37
-
- Al pulsar sobre un anuncio, iremos a la pantalla de detalle de anuncio.
38
-
- Si el usuario ha hecho login, hay que mostrar al usuario un botón que le permita acceder a la pantalla de creación de un anuncio.
33
+
- Cada anuncio debe mostrar su imagen (si tiene), nombre, descripción, precio y si es compra o venta. Los anuncios publicados deben obtenerse a través de un endpoint, mencionado más adelante.
34
+
- La pantalla de listado de los anuncios deberá gestionar todos los estados de interfaz correctamente:
35
+
-**Vacío** (no hay anuncios).
36
+
-**Error** (cuando se produce un error al cargar los anuncios).
37
+
-**Carga** (mientras se cargan los anuncios desde el backend).
38
+
-**Éxito** (cuando se han recuperado los anuncios y están listos para ser mostrados).
39
+
- Al pulsar sobre un anuncio, iremos a la pantalla de detalle de anuncio.
40
+
- Si el usuario ha hecho login, hay que mostrar al usuario un botón que le permita acceder a la pantalla de creación de un anuncio.
39
41
40
42
2. Detalle de anuncio.
41
-
- La página de detalle de anuncio deberá mostrar foto (si tiene), nombre, descripción, precio y si es compra o venta.
42
-
- En este detalle de anuncio se deberá gestionar todos los estados de interfaz correctamente:
43
-
-Vacío (no existe el anuncio)
44
-
-Error (cuando se produce un error al cargar la información del anuncio)
45
-
-Carga (mientras se cargan la información del anuncio desde el backend)
46
-
-Éxito (cuando se ha recuperado la información del anuncio y está listo para ser mostrado).
47
-
- Si el usuario está autenticado y el anuncio le pertenece, deberá además mostrar un botón que permita eliminar el anuncio (aunque antes de eliminarlo, deberá confirmar con el usuario si realmente quiere eliminar o no el anuncio).
43
+
- La página de detalle de anuncio deberá mostrar foto (si tiene), nombre, descripción, precio y si es compra o venta.
44
+
- En este detalle de anuncio se deberá gestionar todos los estados de interfaz correctamente:
45
+
-**Vacío** (no existe el anuncio).
46
+
-**Error** (cuando se produce un error al cargar la información del anuncio).
47
+
-**Carga** (mientras se cargan la información del anuncio desde el backend).
48
+
-**Éxito** (cuando se ha recuperado la información del anuncio y está listo para ser mostrado).
49
+
- Si el usuario está autenticado y el anuncio le pertenece, deberá además mostrar un botón que permita eliminar el anuncio (aunque antes de eliminarlo, deberá confirmar con el usuario si realmente quiere eliminar o no el anuncio).
48
50
49
51
3. Creación de un anuncio.
50
52
51
-
- En la página para crear un anuncio se deberá mostrar al usuario un formulario con los siguientes campos:
52
-
-Foto (opcional): permitirá subir una foto del producto.
53
-
-Nombre (obligatorio): nombre del producto.
54
-
-Descripción (obligatorio): descripción del producto.
55
-
-Precio (obligatorio): precio del producto.
56
-
-Compra/venta (obligatorio): indica si el anuncio se trata de una compra o una venta.
57
-
- Cuando el usuario envíe el formulario, deberá enviar al backend una petición para guardar el anuncio.
58
-
- Se deberá gestionar todos los estados de interfaz correctamente:
59
-
-Error (cuando se produce un error al guardar la información del anuncio)
60
-
-Carga (mientras se guarda la información del anuncio en el backend)
61
-
-Éxito (cuando se han guardado correctamente la información del anuncio).
62
-
- A esta pantalla sólo podremos acceder si estamos logados. En caso contrario, habrá que redireccionar al usuario a la página de listado de anuncios, informándole del motivo.
53
+
- En la página para crear un anuncio se deberá mostrar al usuario un formulario con los siguientes campos:
54
+
-**Foto** (opcional): permitirá subir una foto del producto.
55
+
-**Nombre** (obligatorio): nombre del producto.
56
+
-**Descripción** (obligatorio): descripción del producto.
57
+
-**Precio** (obligatorio): precio del producto.
58
+
-**Compra/venta** (obligatorio): indica si el anuncio se trata de una compra o una venta.
59
+
- Cuando el usuario envíe el formulario, deberá enviar al backend una petición para guardar el anuncio.
60
+
- Se deberá gestionar todos los estados de interfaz correctamente:
61
+
-**Error** (cuando se produce un error al guardar la información del anuncio).
62
+
-**Carga** (mientras se guarda la información del anuncio en el backend).
63
+
-**Éxito** (cuando se han guardado correctamente la información del anuncio).
64
+
- A esta pantalla sólo podremos acceder si estamos logados. En caso contrario, habrá que redireccionar al usuario a la página de listado de anuncios, informándole del motivo.
63
65
64
66
4. Login.
65
67
66
-
- La página de login deberá mostrar un formulario solicitando el nombre de usuario y contraseña.
67
-
- Cuando el usuario envíe el formulario, deberá autenticar al usuario contra el backend para obtener un token JWT que será utilizado en las siguientes comunicaciones con el backend para autenticar al usuario.
68
-
- Se deberá gestionar todos los estados de interfaz correctamente: carga, error y éxito.
68
+
- La página de login deberá mostrar un formulario solicitando el nombre de usuario y contraseña.
69
+
- Cuando el usuario envíe el formulario, deberá autenticar al usuario contra el backend para obtener un token JWT que será utilizado en las siguientes comunicaciones con el backend para autenticar al usuario.
70
+
- Se deberá gestionar todos los estados de interfaz correctamente: carga, error y éxito.
69
71
70
72
5. Registro.
71
73
72
-
- Muy parecida a la de login. Deberá mostrar un formulario solicitando el nombre de usuario y contraseña.
73
-
- Cuando el usuario envíe el formulario, deberá registrar al usuario en el backend.
74
-
- Se deberá gestionar todos los estados de interfaz correctamente: carga, error y éxito.
74
+
- Muy parecida a la de login. Deberá mostrar un formulario solicitando el nombre de usuario y contraseña.
75
+
- Cuando el usuario envíe el formulario, deberá registrar al usuario en el backend.
76
+
- Se deberá gestionar todos los estados de interfaz correctamente: carga, error y éxito.
75
77
76
78
### Opcional
79
+
77
80
- Gestionar la paginación de anuncios en el listado, ya que por defecto la API sólo devuelve 10 elementos.
78
81
- Implementar un buscador de anuncios en el listado.
79
82
- Permitir editar un anuncio, sólo si el usuario autenticado es el propietario del anuncio.
80
83
- Permitir el filtrado de anuncios usando tags. Por lo que en el formulario de anuncio deberán poder incluirse tags de los mismos. Estos tags inicialmente pueden ser estáticos (siempre los mismos).
81
84
- Unido al anterior, hacer que los tags sean dinámicos.
82
85
86
+
### API REST de Apoyo Para la Práctica
83
87
84
-
### API REST de apoyo para la práctica
85
-
Se utilizará sparrest.js como API REST de apoyo para la práctica (creado por el docente de KeepCoding Alberto Casero), este proyecto está basado en la utilidad json-server , el cual nos ofrece un completo API REST para simular un backend real y adaptarse a las necesidades de esta práctica.
88
+
Se utilizará sparrest.js como API REST de apoyo para la práctica (creado por el docente de KeepCoding Alberto Casero), este proyecto está basado en la utilidad json-server, el cual nos ofrece un completo API REST para simular un backend real y adaptarse a las necesidades de esta práctica.
@@ -96,26 +105,23 @@ Se utilizará sparrest.js como API REST de apoyo para la práctica (creado por e
96
105
-**Visual Studio** (Testeado en la versión 1.99.0)
97
106
-**Live Server** (Addon de Visual Studio, Opcional)
98
107
99
-
100
108
### Descripción de los Programas
101
109
102
110
-**Visual Studio**: Entorno de desarrollo integrado (IDE) necesario para ejecutar el proyecto. Asegúrate de utilizar la versión 1.99.0 para evitar problemas de compatibilidad.
103
111
-**Live Server**: Extensión de Visual Studio que permite visualizar los archivos HTML de manera local en un navegador, mostrando los cambios en tiempo real.
104
112
105
-
### Pasos para utilizar este proyecto
113
+
### Pasos Para Utilizar Este Proyecto
106
114
107
115
1. Descargue el comprimido del proyecto desde GitHub a su ordenador.
108
116
109
-
2. Una vez desgargado el comprimido, abra el proyecto en Visual Studio agregando el directorio del proyecto a su espacio de trabajo.
117
+
2. Una vez desgcargado el comprimido, abra el proyecto en Visual Studio agregando el directorio del proyecto a su espacio de trabajo.
110
118
111
119
### Notas
112
120
113
121
- Asegúrate de tener correctamente instalados todos los programas necesarios antes de proceder con la ejecución del proyecto.
114
122
115
-
## Sin contribuciones ni licencias
123
+
## Sin Contribuciones ni Licencias
116
124
117
125
Este proyecto no cuenta con contribuciones externas ni licencia en este momento.
0 commit comments