diff --git a/server/data/tasks.js b/server/data/tasks.js new file mode 100644 index 0000000..a84b4cf --- /dev/null +++ b/server/data/tasks.js @@ -0,0 +1,33 @@ +import { v4 as uuidv4 } from 'uuid'; + +export const allTasks = new Map(); + +allTasks + .set(uuidv4(), { + title: 'Re-work UI/UX', + priority: 'Low', + releaseDate: '12/05/2025', + assignedTo: 'Said, Rachael, Alejandro', + projectName: 'Time App', + }) + .set(uuidv4(), { + title: 'Dark mode toggle', + priority: 'High', + releaseDate: '09/03/2025', + assignedTo: 'Umair, Precious', + projectName: 'ASA Darkmode Feature', + }) + .set(uuidv4(), { + title: 'Accessibility checks', + priority: 'Medium', + releaseDate: '15/04/2025', + assignedTo: 'Michael, Ricardo', + projectName: 'Time App', + }) + .set(uuidv4(), { + title: 'Notification integration', + priority: 'High', + releaseDate: '11/03/2025', + assignedTo: 'Ebtesam, Deborah', + projectName: 'Time App', + }); diff --git a/server/package-lock.json b/server/package-lock.json index ed06e9d..e1adac4 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -9,6 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "cors": "^2.8.5", "express": "^4.21.2", "nodemon": "^3.1.9", "uuid": "^11.1.0" @@ -214,6 +215,19 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "license": "MIT" }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -774,6 +788,15 @@ "node": ">=0.10.0" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", diff --git a/server/package.json b/server/package.json index bef9576..f85b8da 100644 --- a/server/package.json +++ b/server/package.json @@ -11,6 +11,7 @@ "license": "ISC", "description": "", "dependencies": { + "cors": "^2.8.5", "express": "^4.21.2", "nodemon": "^3.1.9", "uuid": "^11.1.0" diff --git a/server/server.js b/server/server.js index ebc19d8..b3e5f8f 100644 --- a/server/server.js +++ b/server/server.js @@ -1,13 +1,15 @@ -const express = require('express'); +import express from 'express' const app = express(); +import cors from 'cors'; import {allTasks} from './data/tasks.js'; const port = process.env.PORT || 3333; // ...existing code... app.use(express.json()); +app.use(cors()); app.get('/tasks', (req, res) => { - res.json(allTasks); + res.json(Array.from(allTasks.values())); }); app.post('/tasks', (req, res) => { diff --git a/web/src/hooks/useFetchData.js b/web/src/hooks/useFetchData.js index 1122d7c..fd7a29b 100644 --- a/web/src/hooks/useFetchData.js +++ b/web/src/hooks/useFetchData.js @@ -10,7 +10,7 @@ export const useFetchData = (endpoint) => { const fetchData = async () => { setIsLoading(true); try { - const response = await fetch(`/api/${endpoint}`); + const response = await fetch(`http://localhost:3333/${endpoint}`); if (!response.ok) { throw new Error('Something went wrong!'); } diff --git a/web/src/main.jsx b/web/src/main.jsx index 2a04367..429cfb9 100644 --- a/web/src/main.jsx +++ b/web/src/main.jsx @@ -9,21 +9,7 @@ import { DataFetchingDemoPage } from './pages/DataFetchingDemoPage.jsx'; import { TaskLayout } from './pages/TaskLayout/TaskLayout.jsx'; import { TaskForm } from './components/domains/task/TaskForm/TaskForm'; -async function enableMocking() { - if (import.meta.env === 'development') { - return; - } - const { worker } = await import('./mocks/browser'); - - // `worker.start()` returns a Promise that resolves - // once the Service Worker is up and ready to intercept requests. - return worker.start({ - onUnhandledRequest: 'bypass', // Allows non-mocked requests to pass through - }); -} - -enableMocking().then(() => { createRoot(document.getElementById('root')).render( @@ -43,4 +29,3 @@ enableMocking().then(() => { , ); -});