diff --git a/README.md b/README.md index f768e33..ad95022 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,61 @@ -# React + Vite +# Proyecto de OptiCenter -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. +## Descripción del Proyecto +Este proyecto tiene como objetivo el desarrollo de un sitio web para una óptica que permite la gestión de citas y la venta de productos ópticos. El sistema está desarrollado utilizando tecnologías modernas, como React para el frontend y Express para el backend, con una base de datos relacional para la gestión de citas y productos. -Currently, two official plugins are available: +El proyecto sigue la metodología XP (Extreme Programming), que se caracteriza por la flexibilidad, la colaboración cercana con el cliente y la mejora continua del código a través de ciclos cortos de desarrollo y entrega. -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh +## Objetivos +- Desarrollar una solución web que facilite la compra de productos ópticos. +- Implementar un sistema para la gestión de citas de manera eficiente. +- Aplicar prácticas de desarrollo ágil XP para asegurar calidad y rapidez en la entrega. + +## Metodología de Trabajo +Se utiliza la metodología XP (Extreme Programming), que se enfoca en la simplicidad del código, pruebas continuas, integración frecuente y la retroalimentación constante del cliente para asegurar que el proyecto cumpla con sus expectativas. + +## Control de Versiones +El proyecto utiliza Git como herramienta de control de versiones, con el repositorio alojado en GitHub. El flujo de trabajo sigue la estrategia Git Flow, donde se manejan ramas principales y de características: + +- master: Contiene el código listo para producción. +- develop: Ramas para el desarrollo activo, donde se integran las características antes de pasar a producción. +- Ramas de características (feature/nueva-funcionalidad): Para el desarrollo de nuevas funcionalidades. +- Ramas de correcciones (hotfix/arreglo-de-error): Para aplicar correcciones rápidas a la rama de producción. + +## Estrategia de Versionamiento y Gestión de Ramas +El versionamiento sigue el esquema SemVer (Versionado Semántico), que se estructura de la siguiente manera: + +- MAJOR: Cambios incompatibles con versiones anteriores. +- MINOR: Nuevas funcionalidades que son compatibles hacia atrás. +- PATCH: Correcciones de errores compatibles hacia atrás. + +La gestión de ramas utiliza el flujo Git Flow, permitiendo el desarrollo ordenado, pruebas e integración continua de nuevas características o correcciones. + +## Estrategia de Despliegue +El proyecto se despliega automáticamente utilizando un sistema de CI/CD. El entorno de despliegue consta de: + +- Entorno de Desarrollo: Permite probar nuevas características antes de ser desplegadas en producción. +- Entorno de Producción: Recibe el código listo para el cliente. + +Cada vez que se integra código en la rama main, se desencadena un proceso de despliegue automatizado hacia el servidor de producción, utilizando una plataforma como Railway o Vercel para el hosting. + +## Instrucciones de Instalación + +1.- Clona el repositorio en tu máquina local: + + git clone https://github.com/IrvingYHM/Opticenter.git + +2.- Navega al directorio del proyecto: + + cd Opticenter + +3.- Instala las dependencias del proyecto: + + npm install + +4.- Configura las variables de entorno necesarias para la base de datos y otros servicios. + +5.- Ejecuta el proyecto localmente: + + npm run dev + +6.- Accede al sitio web desde tu navegador en http://localhost:3000. \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6fe6cc1..c174a05 100644 --- a/package-lock.json +++ b/package-lock.json @@ -70,9 +70,8 @@ "postcss": "^8.4.31", "react-scripts": "^5.0.1", "tailwindcss": "^3.3.5", - "vite": "^5.4.11", - "vite-plugin-pwa": "^0.20.5", - "vitest": "^2.1.4" + "vite": "^4.5.5", + "vite-plugin-pwa": "^0.20.5" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -23458,9 +23457,15 @@ "license": "MIT" }, "node_modules/vite": { +<<<<<<< HEAD "version": "5.4.11", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", +======= + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.5.tgz", + "integrity": "sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==", +>>>>>>> 489cba9dc0c51807da5f3611f0a3df5a43ebb446 "dev": true, "license": "MIT", "dependencies": { @@ -25665,6 +25670,7 @@ } }, "@babel/plugin-proposal-private-property-in-object": { +<<<<<<< HEAD "version": "7.21.11", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", @@ -25675,6 +25681,13 @@ "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } +======= + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "requires": {} +>>>>>>> 489cba9dc0c51807da5f3611f0a3df5a43ebb446 }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -27896,9 +27909,15 @@ } }, "@mui/types": { +<<<<<<< HEAD "version": "7.2.19", "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.19.tgz", "integrity": "sha512-6XpZEM/Q3epK9RN8ENoXuygnqUQxE+siN/6rGRi2iwJPgBUR25mphYQ9ZI87plGh58YoZ5pp40bFvKYOCDJ3tA==", +======= + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.13.tgz", + "integrity": "sha512-qP9OgacN62s+l8rdDhSFRe05HWtLLJ5TGclC9I1+tQngbssu0m2dmFZs+Px53AcOs9fD7TbYd4gc9AXzVqO/+g==", +>>>>>>> 489cba9dc0c51807da5f3611f0a3df5a43ebb446 "requires": {} }, "@mui/utils": { @@ -31358,6 +31377,7 @@ "version": "1.5.3", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", +<<<<<<< HEAD "dev": true, "requires": {} }, @@ -31366,6 +31386,9 @@ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true +======= + "requires": {} +>>>>>>> 489cba9dc0c51807da5f3611f0a3df5a43ebb446 }, "deep-is": { "version": "0.1.4", @@ -34852,7 +34875,10 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", +<<<<<<< HEAD "dev": true, +======= +>>>>>>> 489cba9dc0c51807da5f3611f0a3df5a43ebb446 "requires": {} }, "jest-regex-util": { @@ -35207,6 +35233,16 @@ "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" } +<<<<<<< HEAD +======= + }, + "ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "requires": {} +>>>>>>> 489cba9dc0c51807da5f3611f0a3df5a43ebb446 } } }, @@ -41046,9 +41082,15 @@ } }, "vite": { +<<<<<<< HEAD "version": "5.4.11", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", +======= + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.5.tgz", + "integrity": "sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==", +>>>>>>> 489cba9dc0c51807da5f3611f0a3df5a43ebb446 "dev": true, "requires": { "esbuild": "^0.21.3", @@ -42193,6 +42235,10 @@ "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> 489cba9dc0c51807da5f3611f0a3df5a43ebb446 "requires": {} }, "xml-name-validator": { diff --git a/package.json b/package.json index a4a6e6d..b011e5a 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ "build": "vite build", "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview", - "test": "vitest", - "test:unit": "vitest run" + "test": "react-scripts test", + "cypress:run": "cypress run" }, "dependencies": { "@emotion/react": "^11.11.3", diff --git a/src/App.jsx b/src/App.jsx index a0ac853..d755b19 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -17,10 +17,6 @@ import TerminoC from "./views/terminosC"; import Carrito from "./views/Lente/carrito"; -//Esta barra es temporal -import BarraNavegacion from "./components/Navegacion/barraResponsiva"; - - /* import Carrito from "../src/components/err/NotFound"; */ import NotFound from "./components/err/NotFound"; import NotFound500 from "./components/err/error500"; @@ -98,6 +94,10 @@ function App() { element={} /> + } + /> + } /> } />} - /> + /> */} } />} diff --git a/src/components/Navegacion/barra.jsx b/src/components/Navegacion/barra.jsx index dbd25f0..5a767c7 100644 --- a/src/components/Navegacion/barra.jsx +++ b/src/components/Navegacion/barra.jsx @@ -58,7 +58,7 @@ function Barra() { const handleOpen = (value) => setOpen(open === value ? 0 : value); useEffect(() => { - // Verificar el tipo de usuario al cargar la página + // Verificar el tipo de usuario al cargar la página. const token = localStorage.getItem("token"); let nombreUsuario = ""; //let fotoUsuario = "";