Skip to content

Commit 8030f82

Browse files
committed
file organization is updated
1 parent 4f48965 commit 8030f82

File tree

19 files changed

+76
-53
lines changed

19 files changed

+76
-53
lines changed

docs/README.es.md

Lines changed: 59 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
1-
## Selecciona tu lenguaje
1+
# Entrega Proyecto de Desarrollo Frontend con JavaScript
2+
3+
## Selecciona tu Lenguaje
24

35
- 🇺🇸 [Inglés](README.md)
46
- 🇩🇪 [Alemán](README.de.md)
57

6-
## URL del Proyecto mediante GitHub Pages
7-
[https://pablosch26.github.io/keepcoding-frontend-javascript-submission-5/](https://pablosch26.github.io/keepcoding-frontend-javascript-submission-5/)
8+
## Conocimientos Trabajados
89

9-
# 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.
1516
- Seleccionar nodos.
1617
- Crear y eliminar elementos del nodo.
1718
- Manipulanr atributos del nodo más sus estilos y clases CSS.
@@ -20,69 +21,77 @@
2021
- Event Bubbling & Capturing.
2122
- Promesas y sus estados: pending, fulfilled y rejected.
2223
- Peticiones HTTP con fetch.
23-
- localStorage & sessionStorage
24+
- LocalStorage & sessionStorage.
2425
- Almacenamiento local de datos de HTML5: cookies, storage y indexed DB.
2526

2627
## 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.
2830
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.
2931

3032
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.
3941

4042
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).
4850

4951
3. Creación de un anuncio.
5052

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.
6365

6466
4. Login.
6567

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.
6971

7072
5. Registro.
7173

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.
7577

7678
### Opcional
79+
7780
- Gestionar la paginación de anuncios en el listado, ya que por defecto la API sólo devuelve 10 elementos.
7881
- Implementar un buscador de anuncios en el listado.
7982
- Permitir editar un anuncio, sólo si el usuario autenticado es el propietario del anuncio.
8083
- 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).
8184
- Unido al anterior, hacer que los tags sean dinámicos.
8285

86+
### API REST de Apoyo Para la Práctica
8387

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.
89+
90+
Enlace al API REST
91+
92+
```bash
93+
git clone https://github.com/kasappeal/sparrest.js.git
94+
```
8695

8796
## Tecnologías Utilizadas
8897

@@ -96,26 +105,23 @@ Se utilizará sparrest.js como API REST de apoyo para la práctica (creado por e
96105
- **Visual Studio** (Testeado en la versión 1.99.0)
97106
- **Live Server** (Addon de Visual Studio, Opcional)
98107

99-
100108
### Descripción de los Programas
101109

102110
- **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.
103111
- **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.
104112

105-
### Pasos para utilizar este proyecto
113+
### Pasos Para Utilizar Este Proyecto
106114

107115
1. Descargue el comprimido del proyecto desde GitHub a su ordenador.
108116

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.
110118

111119
### Notas
112120

113121
- Asegúrate de tener correctamente instalados todos los programas necesarios antes de proceder con la ejecución del proyecto.
114122

115-
## Sin contribuciones ni licencias
123+
## Sin Contribuciones ni Licencias
116124

117125
Este proyecto no cuenta con contribuciones externas ni licencia en este momento.
118126

119-
## Vista previa del proyecto
120-
121-
-
127+
## Vista Previa del Proyecto

etc/sparrest.js-main.zip

33.7 KB
Binary file not shown.

public/cellphone.jpg

225 KB
Loading

public/chair.jpg

260 KB
Loading

public/drawer.jpg

147 KB
Loading

public/electric_saw.jpg

162 KB
Loading

public/monitor.jpg

216 KB
Loading

public/table.jpg

325 KB
Loading
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)