diff --git a/hackyourtemperature/package.json b/hackyourtemperature/package.json
new file mode 100644
index 000000000..066c18ba4
--- /dev/null
+++ b/hackyourtemperature/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "hackyourtemperature",
+ "version": "1.0.0",
+ "main": "server.js",
+ "type": "module",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "start": "node server.js",
+ "dev": "nodemon server.js"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "description": "",
+ "dependencies": {
+ "express": "^5.1.0",
+ "express-handlebars": "^8.0.3",
+ "node-fetch": "^3.3.2",
+ "nodemon": "^3.1.10"
+ }
+}
diff --git a/hackyourtemperature/server.js b/hackyourtemperature/server.js
new file mode 100644
index 000000000..1c8b0b174
--- /dev/null
+++ b/hackyourtemperature/server.js
@@ -0,0 +1,25 @@
+import express from 'express'
+import { engine } from 'express-handlebars'
+import fetch from 'node-fetch'
+
+
+const app = express()
+app.engine('handlebars', engine())
+app.set('view engine', 'handlebars')
+app.set('views', './views')
+
+app.get('/', (req, res) => {
+ res.render('home')
+})
+
+app.use(express.json())
+
+app.post('/weather', (req, res) => {
+ const cityName = req.body.cityName
+ res.json({message: 'City name: ' + cityName})
+})
+
+
+app.listen(3000, () => {
+ console.log(`server started on http://localhost:3000`)
+})
diff --git a/hackyourtemperature/views/home.handlebars b/hackyourtemperature/views/home.handlebars
new file mode 100644
index 000000000..e69de29bb
diff --git a/hackyourtemperature/views/layouts/main.handlebars b/hackyourtemperature/views/layouts/main.handlebars
new file mode 100644
index 000000000..87d24ab87
--- /dev/null
+++ b/hackyourtemperature/views/layouts/main.handlebars
@@ -0,0 +1 @@
+
Hello from backend to frontend!
\ No newline at end of file
diff --git a/week1/practice-exercises/learnyounode/baby-steps.js b/week1/practice-exercises/learnyounode/baby-steps.js
new file mode 100644
index 000000000..e69de29bb
diff --git a/week1/prep-exercises/1-web-server/server.js b/week1/prep-exercises/1-web-server/server.js
index 90cb5ee65..0ca2b6c30 100644
--- a/week1/prep-exercises/1-web-server/server.js
+++ b/week1/prep-exercises/1-web-server/server.js
@@ -1,14 +1,43 @@
/**
* Exercise 3: Create an HTTP web server
*/
-
-const http = require('http');
+const fs = require('fs').promises
+const path = require('path')
+const http = require('http')
//create a server
-let server = http.createServer(function (req, res) {
+let server = http.createServer(async function (req, res) {
// YOUR CODE GOES IN HERE
- res.write('Hello World!'); // Sends a response back to the client
- res.end(); // Ends the response
-});
+ try {
+ if (req.url === '/') {
+ const data = await fs.readFile(path.join(__dirname, 'index.html'))
+ res.writeHead(200, {
+ 'Content-Type': 'text/html',
+ })
+ res.end(data)
+ } else if (req.url === '/index.js') {
+ const data = await fs.readFile(path.join(__dirname, 'index.js'))
+ res.writeHead(200, {
+ 'Content-Type': 'application/javascript',
+ })
+ res.end(data)
+ } else {
+ res.writeHead(404, {
+ 'Content-Type': 'text/plain',
+ })
+ res.end('404 not found')
+ }
+ } catch (err) {
+ res.writeHead(500, {
+ 'Content-Type': 'text/plain',
+ })
+ res.end('server error')
+ console.error(err)
+ }
+ // res.write('Hello World!') // Sends a response back to the client
+ // res.end() // Ends the response
+})
-server.listen(3000); // The server starts to listen on port 3000
+server.listen(3000, () => {
+ console.log('server is running (listen on port 3000)')
+}) // The server starts to listen on port 3000