Una aplicación de chat en tiempo real construida con React y Material-UI que permite a los usuarios comunicarse de forma instantánea.
- Autenticación de usuarios segura
- Chat en tiempo real con WebSocket
- Sistema de mensajería instantánea
- Interfaz oscura moderna y personalizable
- Sistema de respuestas a mensajes con threading
- Indicadores de estado de conexión en tiempo real
- Diseño totalmente responsive
- Búsqueda avanzada de conversaciones
- Notificaciones en tiempo real
- Emojis y reacciones a mensajes
- React: ^18.3.1
- Material-UI: ^6.1.6
- Axios: ^1.7.7
- React Router: ^6.27.0
- Socket.IO: ^4.8.1
- Bootstrap: ^5.3.3
- Emoji Mart: ^1.1.1
- Tailwind CSS: ^3.4.14
- Jest: para testing
- React Testing Library: para pruebas de componentes
- Node.js (versión 16 o superior)
- NPM (versión 8 o superior)
- Conexión a Internet
- Clona el repositorio:
git clone https://github.com/guerreroFacundo/ChatAppFrontend.git
- Navega al directorio del proyecto:
cd chat-application
- Instala las dependencias:
npm install
- Configura las variables de entorno:
Crea un archivo
.env
en la raíz del proyecto con:
REACT_APP_API_URL=tu_url_api
REACT_APP_WS_URL=tu_url_websocket
- Inicia la aplicación:
npm start
La aplicación estará disponible en http://localhost:3000
src/
├── components/ # Componentes React reutilizables
│ ├── routing/ # Componentes de enrutamiento
├── context/ # Contextos de React (Auth, Theme, etc.)
├── css/ # Estilos modulares
├── hooks/ # Hooks personalizados
├── services/ # Servicios de API y autenticación
└── utils/ # Utilidades y helpers
ChatComponent
: Gestión de la lógica del chatChatLayout
: Estructura principal de la aplicaciónInputArea
: Entrada de mensajes con funciones avanzadasLoadingIndicator
: Indicador de cargaLoginComponent
: Sistema de autenticaciónMessageItem
: Visualización de un mensaje individualMessageList
: Visualización de mensajesMovableSquare
: Componente de cuadrado móvilRegisterComponent
: Sistema de registroReplyBox
: Sistema de respuestasStyledButton
: Botón estilizadoStyledPaper
: Papel estilizadoStyledTextField
: Campo de texto estilizado
npm start
: Inicia el servidor de desarrollonpm test
: Ejecuta las pruebasnpm run build
: Construye la app para producciónnpm run eject
: Expone la configuración de webpack
El proyecto incluye:
- Tests unitarios con Jest
- Tests de integración
- Tests de componentes con React Testing Library
Para ejecutar las pruebas:
npm test
- Construye la aplicación:
npm run build
- Los archivos de producción estarán en
build/
Para contribuir al proyecto, sigue estos pasos:
- Fork del proyecto.
- Crea tu rama de feature (
git checkout -b feature/NuevaCaracteristica
). - Realiza tus cambios y asegúrate de que todo funcione correctamente.
- Commit de cambios (
git commit -m 'Añade nueva característica'
). - Push a la rama (
git push origin feature/NuevaCaracteristica
). - Crea un Pull Request y describe los cambios realizados.
Si deseas reportar un problema, por favor crea un nuevo issue en el repositorio.
Para reportar bugs o solicitar nuevas características, por favor:
- Revisa los issues existentes.
- Crea un nuevo issue con detalles específicos.
- Incluye pasos para reproducir el problema.
- Si necesitas asistencia inmediata, puedes contactarnos a través de correo electrónico o unirte a nuestro canal de soporte en Discord.
Link del Proyecto: https://github.com/guerreroFacundo/ChatAppFrontend