feat: add BullMQ queue infrastructure and frontend job status hook

- apps/Backend/src/queue/: connection, queues, workers, processors
- apps/Frontend/src/hooks/use-job-status.ts: WebSocket job progress hook
- apps/Frontend/src/lib/socket.ts: shared Socket.IO singleton

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
ff
2026-04-13 22:30:40 -04:00
parent e10126f772
commit 90302a76b7
13 changed files with 1079 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
/**
* Shared Socket.IO client singleton.
*
* Import `socket` anywhere in the frontend to use the shared connection.
* The socket connects lazily — the first import triggers the connection.
*/
import { io, Socket } from "socket.io-client";
const SOCKET_URL =
import.meta.env.VITE_API_BASE_URL_BACKEND ||
(typeof window !== "undefined" ? window.location.origin : "");
export const socket: Socket = io(SOCKET_URL, {
withCredentials: true,
autoConnect: true,
});
socket.on("connect", () => {
console.log("[socket] connected:", socket.id);
});
socket.on("disconnect", () => {
console.log("[socket] disconnected");
});