Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
253 changes: 111 additions & 142 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,167 +1,136 @@
const express = require('express');
const express = require("express");
const app = express();
const mysql = require('mysql');
const cors = require('cors');


app.use(cors())
const mysql = require("mysql");
const cors = require("cors");

app.use(cors());

const connection = mysql.createConnection({
user: "task-user",
host: "localhost",
database: "task-db",
password: "123456",
})
user: "myDBuser",
password: "Testme1234",
host: "127.0.0.1",
database: "workout",
});

connection.connect((err) => {
if (err) {
console.log(err.message)
}
else {
console.log("connection established")
}
})

if (err) {
console.log(err.message);
} else {
console.log("connection established");
}
});

// middleware
app.use(express.json())
// middleware
app.use(express.json());

// create table
const taskTable = ` CREATE TABLE Task (
id INT NOT NULL AUTO_INCREMENT,
task_name VARCHAR(255),
completed BOOLEAN DEFAULT false,
PRIMARY KEY (id)
) `;

// create task
app.post('/task/create', (req, res) => {
const name = req.body.name

if (!name) {
return res.status(400).send("Name is required!")
}
const createTask = `INSERT INTO Task (task_name) VALUES ('${name}')`
connection.query(createTask, (err, result) => {
if (err) {
return res.send(err.message)
}
else {
return res.send("Task created yoni")
}
})
})


app.post("/task/create", (req, res) => {
const name = req.body.name;

if (!name) {
return res.status(400).send("Name is required!");
}
const createTask = `INSERT INTO Task (task_name) VALUES ('${name}')`;
connection.query(createTask, (err, result) => {
if (err) {
return res.send(err.message);
} else {
return res.send("Task created");
}
});
});

// real all tasks ****
app.get('/task', (req, res) => {


const readAllTasks = `SELECT * FROM Task ORDER BY id DESC`

connection.query(readAllTasks, (err, result) => {
if (err) {
return res.status(500).send(err.message)
}
else {
return res.json(result)
}
})

})
app.get("/task", (req, res) => {
const readAllTasks = `SELECT * FROM Task ORDER BY id DESC`;

connection.query(readAllTasks, (err, result) => {
if (err) {
return res.status(500).send(err.message);
} else {
return res.json(result);
}
});
});

// read single task
app.get('/task/:id', (req, res) => {
const id = req.params.id

const readTask = `SELECT * FROM Task WHERE id = '${id}'`

connection.query(readTask, (err, result) => {
if (err) {
return res.send(err.message)
}
else if (result.length == 0) {
return res.send(`No task with id ${id}`)
}
else {
return res.json(result)
}
})

})

app.get("/task/:id", (req, res) => {
const id = req.params.id;

const readTask = `SELECT * FROM Task WHERE id = '${id}'`;

connection.query(readTask, (err, result) => {
if (err) {
return res.send(err.message);
} else if (result.length == 0) {
return res.send(`No task with id ${id}`);
} else {
return res.json(result);
}
});
});

// update single task
app.patch('/task/:id', (req, res) => {

const id = req.params.id
const name = req.body.name
let completed = req.body.completed

if (!name) {
return res.send("Name is required!")
}

if (completed) {
completed = 1
}
else {
completed = 0
}

const updateTask = ` UPDATE Task
app.patch("/task/:id", (req, res) => {
const id = req.params.id;
const name = req.body.name;
let completed = req.body.completed;

if (!name) {
return res.send("Name is required!");
}

if (completed) {
completed = 1;
} else {
completed = 0;
}

const updateTask = ` UPDATE Task
SET task_name = "${name}",
completed = ${completed}
WHERE id=${id} `


connection.query(updateTask, (err, result) => {
if (err) {
return res.send(err.message)
}
else if (result.affectedRows == 0) {
return res.send(`No task with id ${id}`)
}
else {
return res.send("Task updated ")
}
})
})

WHERE id=${id} `;

connection.query(updateTask, (err, result) => {
if (err) {
return res.send(err.message);
} else if (result.affectedRows == 0) {
return res.send(`No task with id ${id}`);
} else {
return res.send("Task updated ");
}
});
});

// Delete single task
app.delete("/task/:id", (req, res) => {
const id = req.params.id

const deleteTask = `DELETE FROM Task WHERE id = ${id} `

connection.query(deleteTask, (err, result) => {
if (err) {
return res.send(err.message)
}
else if (result.affectedRows == 0) {
return res.send(`No task with id ${id}`)
}
else {
return res.send("Task deleted")
}
})


})


const id = req.params.id;

const deleteTask = `DELETE FROM Task WHERE id = ${id} `;

connection.query(deleteTask, (err, result) => {
if (err) {
return res.send(err.message);
} else if (result.affectedRows == 0) {
return res.send(`No task with id ${id}`);
} else {
return res.send("Task deleted");
}
});
});

app.listen(5000, (err) => {
if (err) {
console.log(err)
}
else {
console.log("app listening on port 5000...")
}
})


const taskTable = ` CREATE TABLE Task (
id INT NOT NULL AUTO_INCREMENT,
task_name VARCHAR(255),
completed BOOLEAN DEFAULT false,
PRIMARY KEY (id)
) `
if (err) {
console.log(err);
} else {
console.log("app listening on port 5000...");
}
});
10 changes: 8 additions & 2 deletions client/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,15 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- font awesome -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css" />
<!-- bootstrap -->
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN"
crossorigin="anonymous"
/>


<title>Vite + React</title>
<title>Task Manager</title>
</head>

<body>
Expand Down
7 changes: 7 additions & 0 deletions client/src/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,13 @@ textarea {
border-color: transparent;
border: 1px solid var(--grey-300);
}
/* custom added */
.input-padd{
padding: 0;
}
.checkbox{
width: 10%;
}
.form-row {
margin-bottom: 1rem;
}
Expand Down
5 changes: 4 additions & 1 deletion client/src/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@ import './main.css';
import { BrowserRouter } from 'react-router-dom';

ReactDOM.createRoot(document.getElementById('root')).render(
<BrowserRouter>
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>

);
Loading