diff --git a/README.md b/README.md
index 13778698e..436c0f7af 100644
--- a/README.md
+++ b/README.md
@@ -3,6 +3,8 @@
# FactuClient
+
+
**FactuClient** es una aplicación de gestión diseñada para facilitar la creación, visualización y manejo de albaranes y facturas de clientes. Los usuarios pueden crear perfiles de clientes, gestionar sus datos, generar facturas a partir de albaranes existentes, y descargar o compartir estas facturas y albaranes en formato PDF. Este proyecto es parte del proyecto final del BootCamp de ISDICODERS.
## Tecnologías Utilizadas
@@ -42,14 +44,14 @@
2. **Instalar las dependencias del frontend:**
```bash
- cd client
+ cd factuclient
npm install
```
3. **Instalar las dependencias del backend:**
```bash
- cd ../server
+ cd ../api
npm install
```
@@ -65,13 +67,14 @@
5. **Iniciar el servidor:**
```bash
- npm run dev
+ cd api
+ npm run start
```
6. **Iniciar el frontend:**
```bash
- cd client
+ cd factuclient
npm run dev
```
@@ -89,7 +92,7 @@ Una vez que el servidor y el frontend están en funcionamiento, puedes acceder a
```
FactuClient/
-├── api/ # Código fuente del backend
+├── api/
│ ├── coverage/ # Reportes de cobertura de pruebas
│ ├── handlers/ # Manejadores de rutas y lógica de controladores
│ ├── logic/ # Lógica de negocio y funciones utilitarias
@@ -98,7 +101,8 @@ FactuClient/
│ ├── utils/ # Funciones utilitarias y helpers
│ ├── routes.js # Definición de las rutas de la API
│ └── server.js # Configuración e inicio del servidor
-├── doc/ # Documentación adicional del proyecto
+├── doc/ # Documentacion proyecto modelo de datos
+├── com/ # Package validate, errors.
├── FactuClient/ # Código fuente del frontend
│ ├── dist/ # Archivos estáticos generados para producción
│ ├── public/ # Recursos públicos, como imágenes y favicons
diff --git a/staff/jose-canto/project/FactuClient/src/components/PasswordField/index.jsx b/staff/jose-canto/project/FactuClient/src/components/PasswordField/index.jsx
new file mode 100644
index 000000000..7f849a3d6
--- /dev/null
+++ b/staff/jose-canto/project/FactuClient/src/components/PasswordField/index.jsx
@@ -0,0 +1,22 @@
+import { useState } from "react"
+import { MdVisibility, MdVisibilityOff } from "react-icons/md"
+import Field from "../core/Field"
+
+const PasswordField = ({ id, placeholder }) => {
+ const [showPassword, setShowPassword] = useState(false)
+
+ const togglePasswordVisibility = () => {
+ setShowPassword(!showPassword)
+ }
+
+ return (
+
+
+
+ {showPassword ? : }
+
+
+ )
+}
+
+export default PasswordField
diff --git a/staff/jose-canto/project/FactuClient/src/components/view/DeliveryInfo.jsx b/staff/jose-canto/project/FactuClient/src/components/view/DeliveryInfo.jsx
index 69dc3fa7c..c64ea5be8 100644
--- a/staff/jose-canto/project/FactuClient/src/components/view/DeliveryInfo.jsx
+++ b/staff/jose-canto/project/FactuClient/src/components/view/DeliveryInfo.jsx
@@ -22,6 +22,8 @@ import logic from "../../logic/index"
import "./DeliveryInfo.css"
export default function DeliveryInfo() {
+ const { alert } = useContext()
+
const navigate = useNavigate()
const { deliveryNoteId } = useParams()
const [deliveryNote, setDeliveryNote] = useState(null)
@@ -37,9 +39,7 @@ export default function DeliveryInfo() {
setDeliveryNote(deliveryNote)
const calculateTotal = deliveryNote.works.reduce(
- (accumulator, work) => accumulator + work.quantity * work.price,
- 0
- )
+ (accumulator, work) => accumulator + work.quantity * work.price, 0)
setTotal(calculateTotal)
})
.catch((error) => {
@@ -85,9 +85,13 @@ export default function DeliveryInfo() {
- {deliveryNote?.customer &&
{deliveryNote.customer.companyName}
}
- {deliveryNote?.customer &&
{deliveryNote.customer.address}
}
- {deliveryNote?.customer &&
{deliveryNote.customer.taxId}
}
+ {deliveryNote?.customer && (
+
+ - {deliveryNote.customer.companyName}
+ - {deliveryNote.customer.address}
+ - {deliveryNote.customer.taxId}
+
+ )}
diff --git a/staff/jose-canto/project/FactuClient/src/components/view/InvoiceInfo.jsx b/staff/jose-canto/project/FactuClient/src/components/view/InvoiceInfo.jsx
index 9d467b774..7d54b08c9 100644
--- a/staff/jose-canto/project/FactuClient/src/components/view/InvoiceInfo.jsx
+++ b/staff/jose-canto/project/FactuClient/src/components/view/InvoiceInfo.jsx
@@ -82,20 +82,28 @@ export default function InvoiceInfo() {
- {invoice?.company &&
{invoice.company.companyName}
}
- {invoice?.company &&
{invoice.company.address}
}
- {invoice?.company &&
{invoice.company.taxId}
}
- {invoice?.company &&
{invoice.company.email}
}
- {invoice?.company &&
{invoice.company.phone}
}
+ {invoice?.company && (
+
+ - {invoice.company.companyName}
+ - {invoice.company.address}
+ - {invoice.company.taxId}
+ - {invoice.company.email}
+ - {invoice.company.phone}
+
+ )}
DATOS CLIENTE:
- {invoice?.customer &&
{invoice.customer.companyName}
}
- {invoice?.customer &&
{invoice.customer.address}
}
- {invoice?.customer &&
{invoice.customer.taxId}
}
- {invoice?.customer &&
{invoice.customer.email}
}
- {invoice?.customer &&
{invoice.customer.phone}
}
+ {invoice?.customer && (
+
+ - {invoice.customer.companyName}
+ - {invoice.customer.address}
+ - {invoice.customer.taxId}
+ - {invoice.customer.email}
+ - {invoice.customer.phone}
+
+ )}
diff --git a/staff/jose-canto/project/FactuClient/src/components/view/Login.jsx b/staff/jose-canto/project/FactuClient/src/components/view/Login.jsx
index 806c6090d..f88de09ff 100644
--- a/staff/jose-canto/project/FactuClient/src/components/view/Login.jsx
+++ b/staff/jose-canto/project/FactuClient/src/components/view/Login.jsx
@@ -12,6 +12,7 @@ import Button from "../core/Button"
import Field from "../core/Field"
import Main from "../core/Main"
import Footer from "../core/Footer"
+import PasswordField from "../PasswordField"
export default function Login() {
const { alert } = useContext()
@@ -64,7 +65,7 @@ export default function Login() {