Este proyecto es un sistema de encuestas desarrollado con React, Tailwind CSS y Firebase. Permite a los usuarios registrarse, iniciar sesión, completar formularios de encuestas y ver reportes detallados. Los administradores pueden gestionar usuarios y visualizar estadísticas a través de un panel de administración.
- Autenticación de Usuarios: Registro e inicio de sesión.
- Formulario de Encuestas: Validación en tiempo real y subida de archivos.
- Reportes de Encuestas: Filtrado, exportación y visualización de datos.
- Panel de Administración: Gestión de usuarios y encuestas.
- Carga Diferida: Mejora del rendimiento mediante
React.lazy
ySuspense
. - Notificaciones: Indicadores de carga y mensajes de error claros.
- Seguridad: Reglas de seguridad en Firebase Firestore y Storage.
- Clona este repositorio:
git clone https://github.com/tu-usuario/sistema-encuesta.git
- Navega al directorio del proyecto:
cd sistema-encuesta
- Instala las dependencias:
npm install
- Configura Firebase:
Crea un proyecto en Firebase.
Añade la configuración de Firebase a un archivo .env en la raíz del proyecto:
env
REACT_APP_FIREBASE_API_KEY=your_api_key REACT_APP_FIREBASE_AUTH_DOMAIN=your_auth_domain REACT_APP_FIREBASE_PROJECT_ID=your_project_id REACT_APP_FIREBASE_STORAGE_BUCKET=your_storage_bucket REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id REACT_APP_FIREBASE_APP_ID=your_app_id
- Inicia la aplicación:
npm start
Navega a http://localhost:3000 para ver la aplicación en acción.
- Regístrate e inicia sesión para completar una encuesta.
- Accede a
/reporte
como administrador para ver los reportes y gestionar usuarios.
/src
: Código fuente del proyecto./components
: Componentes reutilizables./layouts
: Vistas y páginas principales.
/public
: Archivos públicos.
- React: Biblioteca de JavaScript para construir interfaces de usuario.
- Tailwind CSS: Framework de CSS para un diseño rápido y responsive.
- Firebase: Plataforma para el desarrollo de aplicaciones web y móviles.
- Firebase Auth: Autenticación de usuarios.
- Firebase Firestore: Base de datos en tiempo real.
- Firebase Storage: Almacenamiento de archivos.
- React Router: Enrutador para aplicaciones de React.
- ESLint: Herramienta de análisis de código para asegurar la calidad del código.
¡Las contribuciones son bienvenidas! Si deseas contribuir a este proyecto, por favor sigue estos pasos:
- Haz un fork del repositorio.
- Crea una nueva rama (
git checkout -b feature/nueva-caracteristica
). - Realiza tus cambios y haz commit (
git commit -m 'Añadir nueva característica'
). - Haz push a la rama (
git push origin feature/nueva-caracteristica
). - Abre un Pull Request.
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.