Skip to content

brayan3210/JSM-Connect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 JSM Connect

JSM Connect Logo

DeepWiki Documentation Build Status Package Version License


📝 Índice

  1. Introducción
  2. Características Clave
  3. Tecnologías y Herramientas
  4. Diagrama de Arquitectura
  5. Modelo de Datos
  6. Requisitos y Dependencias
  7. Instalación y Despliegue
  8. Configuración Avanzada
  9. Uso y Flujo de Trabajo
  10. API REST
  11. Mensajería y Notificaciones
  12. Administración y Panel de Control
  13. Pruebas y QA
  14. CI/CD y Mantenimiento
  15. Roadmap
  16. Contribuir
  17. Soporte
  18. Licencia

🌟 Introducción

JSM Connect es un marketplace de servicios robusto y escalable construido en Laravel, diseñado para facilitar el intercambio seguro de servicios entre clientes y proveedores. A través de perfiles completos, flujos de solicitud y mensajería en tiempo real, JSM Connect optimiza la experiencia del usuario al contratar servicios.

Toda la documentación técnica avanzada, diagramas UML y guías de implementación están disponibles en DeepWiki:

👉 Documentación Oficial


🚀 Características Clave

  • Autenticación & Registro: Soporte para roles (cliente, proveedor, administrador), verificación de correo y recuperación de contraseña.
  • Gestión de Servicios: CRUD completo de servicios con filtrado por categoría, etiquetas y geolocalización.
  • Flujo de Solicitudes: Proceso de solicitud, aprobación, cancelación y calificación.
  • Chat Interno: Mensajería en tiempo real (Pusher/Laravel Echo) entre usuarios.
  • Panel Administrativo: Dashboards con KPIs, gestión de usuarios, servicios y logs de actividad.
  • Notificaciones: Email y notificaciones push configurables.
  • Automatización: Tareas programadas (Laravel Scheduler) para limpieza de datos y recordatorios.
  • API REST: Endpoints versionados con autenticación via Laravel Sanctum.

🛠 Tecnologías y Herramientas

Capa Tecnología / Herramienta
Framework Laravel 10
Lenguaje PHP 8.1+
Plantillas Blade + Tailwind CSS
Enriquecimiento JS Alpine.js
Base de Datos MySQL 8 / PostgreSQL 13
Caching Redis
Colas Laravel Queue (Redis Driver)
Real-time Pusher + Laravel Echo
Testing PHPUnit, Pest, Mockery
CI/CD GitHub Actions
Documentación DeepWiki

🏗 Diagrama de Arquitectura

Arquitectura de JSM Connect

Figura: Vista de alto nivel de componentes y flujos de datos. Consulta más diagramas en DeepWiki.


💾 Modelo de Datos

Principales entidades y relaciones:

erDiagram
    USERS ||--o{ SERVICES : publishes
    SERVICES ||--o{ REQUESTS : receives
    USERS ||--o{ REQUESTS : requests
    REQUESTS ||--|{ MESSAGES : contains
    USERS ||--o{ MESSAGES : sends
Loading
  • User: id, name, email, role, profile
  • Service: id, title, description, category_id, provider_id
  • Category: id, name, parent_id
  • Request: id, service_id, client_id, status
  • Message: id, request_id, sender_id, content, read_at

Para un ER completo, revisa:

👉 Modelo de Datos Completo


⚙️ Requisitos y Dependencias

  • PHP >= 8.1

  • Composer >= 2.0

  • Node.js >= 16

  • npm >= 8 / Yarn >= 1.22

  • MySQL 8+ o PostgreSQL 13+

  • Extensiones PHP:

    • BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML

Instala dependencias globales:

composer global require laravel/installer
npm install -g yarn

⚙️ Instalación y Despliegue

  1. Clonar repositorio

git clone https://github.com/brayan3210/JSM-Connect.git cd JSM-Connect

2. **Configurar entorno**
   ```bash
cp .env.example .env
php artisan key:generate
  1. Instalar dependencias

composer install npm ci && npm run build

4. **Migraciones y Seeders**
   ```bash
php artisan migrate --seed
  1. Servidor Local

php artisan serve

6. **Despliegue**
   - Configura en tu servidor Apache/Nginx
   - Asegúrate de apuntar al folder `public/`
   - Configura tareas cron: `* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1`

---

## 🔧 Configuración Avanzada

- **Roles & Permisos**: `config/permissions.php`
- **Broadcasting**: `config/broadcasting.php`
- **Queue**: `QUEUE_CONNECTION=redis`
- **Mail**: `MAIL_MAILER=smtp`
- **Custom Services**: Registra en `app/Providers/ServiceProvider`

Más opciones en DeepWiki:
- [Setup & Configuration](https://deepwiki.com/brayan3210/JSM-Connect#6-Project-Setup--Configuration)
- [Middleware Pipeline](https://deepwiki.com/brayan3210/JSM-Connect#8-HTTP-Pipeline--Middleware)

---

## 👨‍💼 Uso y Flujo de Trabajo

### Roles y Acceso
- **Cliente**: Busca y solicita servicios.
- **Proveedor**: Publica servicios y gestiona solicitudes.
- **Administrador**: Monitorea, aprueba y gestiona toda la plataforma.

### Flujo Básico
1. **Registro/Login**: Usuario crea cuenta y verifica email.
2. **Perfil**: Completa datos y, para proveedores, agrega portafolio.
3. **Explorar Servicios**: Filtros avanzados y vista de detalle.
4. **Solicitud**: Cliente solicita; proveedor gestiona.
5. **Chat**: Comunicación en tiempo real hasta cierre.
6. **Calificación**: Cliente y proveedor evalúan al finalizar.

Para más mapas de flujo:
👉 [User & Admin Workflows](https://deepwiki.com/brayan3210/JSM-Connect#11-User-Features)

---

## 📡 API REST

Todos los endpoints usan prefijo `/api/v1` y autenticación con Sanctum.

| Método | Ruta                    | Descripción                      |
| ------ | ----------------------- | -------------------------------- |
| POST   | `/api/v1/register`      | Registrar usuario                |
| POST   | `/api/v1/login`         | Login                            |
| GET    | `/api/v1/services`      | Listar servicios (paginado)      |
| POST   | `/api/v1/services`      | Crear servicio                   |
| GET    | `/api/v1/services/:id`  | Ver detalles de un servicio      |
| POST   | `/api/v1/requests`      | Crear solicitud                  |
| GET    | `/api/v1/requests/:id`  | Ver solicitud y chat             |
| POST   | `/api/v1/requests/:id/messages` | Enviar mensaje            |

Especificación completa:
👉 [API Endpoints](https://deepwiki.com/brayan3210/JSM-Connect#5-API-Endpoints)

---

## 📨 Mensajería y Notificaciones

- **Realtime Chat**: Pusher & Laravel Echo (canales privados).
- **Emails**: Mailable classes para confirmaciones y notificaciones.
- **Broadcast Events**: Definidos en `app/Events`.

Guías:
👉 [Messaging & Events](https://deepwiki.com/brayan3210/JSM-Connect#13-Event-Driven)

---

## 🛡 Administración y Panel de Control

- **Dashboard**: Gráficos de usuarios activos, servicios publicados, solicitudes pendientes.
- **Gestión**: CRUD para usuarios, categorías, servicios y roles.
- **Logs**: Auditoría de acciones en `storage/logs`.

Para más detalle:
👉 [Admin System](https://deepwiki.com/brayan3210/JSM-Connect#16-Administrative-System)

---

## 🧪 Pruebas y QA

- **Unitarias**: `php artisan test --testsuite=Unit`
- **Funcionales**: `php artisan test --testsuite=Feature`
- **Cobertura**: `vendor/bin/phpunit --coverage-text`

Inspecta la guía de testing:
👉 [Testing](https://deepwiki.com/brayan3210/JSM-Connect#20-Testing)

---

## 🔄 CI/CD y Mantenimiento

Configuración de **GitHub Actions**:
- Linting PHP (PHPCS), JS (ESLint)
- Ejecución de tests
- Generación de artefactos
- Despliegue automático en staging/producción

Recomendación:
- Cronjob para `schedule:run`
- Supervisor para procesos de queue

Detalles:
👉 [CI/CD Pipelines](https://deepwiki.com/brayan3210/JSM-Connect#23-CICD)

---

## 📈 Roadmap

- ✅ Soporte para pasarelas de pago
- 🔄 App móvil (React Native)
- 📊 Análisis avanzado y ML
- 🌐 Internacionalización

Contribuye a la planificación:
👉 [Roadmap Issues](https://github.com/brayan3210/JSM-Connect/issues)

---

## 🤝 Contribuir

1. Forkea el repositorio.
2. Crea una rama: `git checkout -b feature/NOMBRE`
3. Commit de tus cambios: `git commit -m "feat: descripción"`
4. Push: `git push origin feature/NOMBRE`
5. Abre un PR y describe los cambios.

Lee las políticas:
👉 [Guía de Contribución](https://deepwiki.com/brayan3210/JSM-Connect#Contributing)
👉 [Código de Conducta](https://deepwiki.com/brayan3210/JSM-Connect#22-Legal--Compliance)

---

## 📬 Soporte

Para soporte técnico y consultas:

- **Email**: support@jsmconnect.com
- **Discord**: [discord.gg/jsmconnect](https://discord.gg/jsmconnect)
- **Issues**: https://github.com/brayan3210/JSM-Connect/issues

---

## 📄 Licencia

Este proyecto se distribuye bajo la **Apache License 2.0**. Consulta [LICENSE](LICENSE) para más detalles.

About

Plataforma de servicios entre clientes para que ofrezcan tiempo a cambio de un servicio en concreto con interacción de mensajes en tiempo real

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors