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
1,388 changes: 673 additions & 715 deletions package-lock.json

Large diffs are not rendered by default.

23 changes: 21 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,16 @@
"react-scripts": "*"
},
"dependencies": {
"body-parser": "^1.19.0",
"csvtojson": "^2.0.10",
"express": "^4.17.1",
"mongoose": "^5.6.7",
"node": "^12.7.0",
"node-fetch": "^2.6.0",
"prop-types": "*",
"react": "*",
"react-dom": "*"
"react-dom": "*",
"webpack-dev-server": "^3.7.2"
},
"scripts": {
"start": "nf start",
Expand All @@ -29,5 +36,17 @@
"last 1 firefox version",
"last 1 safari version"
]
}
},
"description": "Your company's front end team has completed a business dashboard requested by management. You need to build the data server that will provide the front end client with the data it needs to show.",
"main": "index.js",
"repository": {
"type": "git",
"url": "git+https://github.com/kelly-tnguyen/checkpoint-backend-1.git"
},
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/kelly-tnguyen/checkpoint-backend-1/issues"
},
"homepage": "https://github.com/kelly-tnguyen/checkpoint-backend-1#readme"
}
23 changes: 23 additions & 0 deletions server/controllers/messageController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
let Message = require("../models/messageModel")

exports.list = function list(request, response) {
Message.find((e,v)=>{
return response.json(v);
});
}
exports.show = function show(request, response) {
Message.findById(request.params.id, (err,v)=>{
return response.json(v);
});
}
exports.create = function create(request, response) {
let newMessage = new Message ({
id: request.body.id,
name: request.body.name,
date: request.body.date,
message: request.body.message
})
newMessage.save(()=>{
return response.json(newMessage);
});
}
23 changes: 23 additions & 0 deletions server/controllers/orderController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
let Order = require("../models/orderModel")

exports.list = function list(request, response) {
Order.find((e,v)=>{
return response.json(v);
});
}
exports.show = function show(request, response) {
Order.findById(request.params.id, (err,v)=>{
return response.json(v);
});
}
exports.create = function create(request, response) {
let newOrder = new Order ({
id: request.body.id,
orderDate: request.body.orderDate,
orderTime: request.body.orderTime,
amount: request.body.amount
})
newOrder.save(()=>{
return response.json(newOrder);
});
}
22 changes: 22 additions & 0 deletions server/controllers/taskController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
let Task = require("../models/taskModel")

exports.list = function list(request, response) {
Task.find((e,v)=>{
return response.json(v);
});
}
exports.show = function show(request, response) {
Task.findById(request.params.id, (err,v)=>{
return response.json(v);
});
}
exports.create = function create(request, response) {
let newTask = new Task ({
id: request.body.id,
task: request.body.task,
date: request.body.date,
})
newTask.save(()=>{
return response.json(newTask);
});
}
30 changes: 30 additions & 0 deletions server/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
app.use(bodyParser.json());
app.use(express.static("public"));

const mongoose = require('mongoose');
mongoose.connect('mongodb+srv://kelly-nguyen-1:45683968kn@aca-practice-ss4lm.mongodb.net/checkpoint-backend-1?retryWrites=true&w=majority', {useNewUrlParser: true});

let foxRoute = require("./routes/foxRoute");
let messageRoute = require("./routes/messageRoute");
let orderRoute = require("./routes/orderRoute");
let taskRoute = require("./routes/taskRoute");
let dataRoute = require("./routes/dataRoute")


app.use(foxRoute);
app.use(messageRoute);
app.use(orderRoute);
app.use(taskRoute);
app.use(dataRoute);


app.listen(3000, (err) => {
if (err) {
return console.log("Error", err);
}
console.log("Web server is now listening for messages on port",3000);
});

11 changes: 11 additions & 0 deletions server/models/messageModel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
const mongoose = require("mongoose");

var messageSchema = new mongoose.Schema({
id: Number,
name: String,
date: String,
message: String
});
var Message = mongoose.model('Message', messageSchema);

module.exports = Message
11 changes: 11 additions & 0 deletions server/models/orderModel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
const mongoose = require("mongoose");

var orderSchema = new mongoose.Schema({
id: Number,
orderDate: String,
orderTime: String,
amount: String
});
var Order = mongoose.model('Order', orderSchema);

module.exports = Order
10 changes: 10 additions & 0 deletions server/models/taskModel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const mongoose = require("mongoose");

var taskSchema = new mongoose.Schema({
id: Number,
task: String,
date: String
});
var Task = mongoose.model('Task', taskSchema);

module.exports = Task
42 changes: 42 additions & 0 deletions server/routes/dataRoute.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
const express = require("express");
const router = express.Router();
const filePath='./server/data.csv';
const csv = require("csvtojson");

router.get("/newDate", (request, response)=>{
response.send(new Date);
});

router.get("/newComments", (request, response)=>{
csv()
.fromFile(filePath)
.then(jsonObj=>{
response.send(jsonObj[0].new_comments)
});
});

router.get("/newTasks", (request, response)=>{
csv()
.fromFile(filePath)
.then(jsonObj=>{
response.send(jsonObj[0].new_tasks)
});
});

router.get("/newOrders", (request, response)=>{
csv()
.fromFile(filePath)
.then(jsonObj=>{
response.send(jsonObj[0].new_orders)
});
});

router.get("/tickets", (request, response)=>{
csv()
.fromFile(filePath)
.then(jsonObj=>{
response.send(jsonObj[0].tickets)
});
});

module.exports = router;
14 changes: 14 additions & 0 deletions server/routes/foxRoute.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
const express = require("express");
const router = express.Router();
const fetch = require('node-fetch');

router.get("/foxes", (req, res)=>{
fetch('https://randomfox.ca/floof/')
.then(res => res.json())
.then(json=>{
console.log(json)
res.json(json.image)
})
})

module.exports = router;
10 changes: 10 additions & 0 deletions server/routes/messageRoute.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const express = require("express");
const router = express.Router();
const {list,show,create} = require("../controllers/messageController");

// MESSAGES
router.get('/messages',list)
router.get('/messages/:id', show)
router.post('/messages', create)

module.exports = router;
10 changes: 10 additions & 0 deletions server/routes/orderRoute.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const express = require("express");
const router = express.Router();
const {list,show,create} = require("../controllers/messageController");

// ORDERS
router.get('/orders',list)
router.get('/orders/:id', show)
router.post('/orders', create)

module.exports = router;
10 changes: 10 additions & 0 deletions server/routes/taskRoute.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const express = require("express");
const router = express.Router();
const {list,show,create} = require("../controllers/taskController");

// TASKS
router.get('/tasks',list)
router.get('/tasks/:id', show)
router.post('/tasks', create)

module.exports = router;