diff --git a/.gitignore b/.gitignore index d94c3c0..b0555aa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ NodeJs/code/nodejs-app/.env -NodeJs/code/simple-nodejs-app/node_modules \ No newline at end of file +node_modules/ + +# Lock files +package-lock.json \ No newline at end of file diff --git a/Docker/code/Dockerfile b/Docker/code/Dockerfile index be6612e..223d5af 100644 --- a/Docker/code/Dockerfile +++ b/Docker/code/Dockerfile @@ -1,3 +1,3 @@ -# FROM nginx:1.23.0-alpine -# COPY /public /usr/share/nginx/html -# CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file +FROM nginx:1.23.0-alpine +COPY /public /usr/share/nginx/html +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/Docker/code/docker-compose.yml b/Docker/code/docker-compose.yml index cae06e3..4a93901 100644 --- a/Docker/code/docker-compose.yml +++ b/Docker/code/docker-compose.yml @@ -1,11 +1,11 @@ -# version: '3.7' -# services: -# webserver: -# build: -# context: . -# dockerfile: docker/Dockerfile -# container_name: webserver -# ports: -# - 9000:80 -# volumes: -# - ./public:/usr/share/nginx/html +version: '3.7' +services: + webserver: + build: + context: . + dockerfile: docker/Dockerfile + container_name: webserver + ports: + - 9000:80 + volumes: + - ./public:/usr/share/nginx/html diff --git a/Docker/code/docker/Dockerfile b/Docker/code/docker/Dockerfile new file mode 100644 index 0000000..223d5af --- /dev/null +++ b/Docker/code/docker/Dockerfile @@ -0,0 +1,3 @@ +FROM nginx:1.23.0-alpine +COPY /public /usr/share/nginx/html +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/Git/index.html b/Git/index.html new file mode 100644 index 0000000..d8294c0 --- /dev/null +++ b/Git/index.html @@ -0,0 +1 @@ +

hii

\ No newline at end of file diff --git a/Git/test.txt b/Git/test.txt new file mode 100644 index 0000000..740e51b --- /dev/null +++ b/Git/test.txt @@ -0,0 +1 @@ +hello there, hey again \ No newline at end of file diff --git a/NodeJs/code/nodejs-app/index.js b/NodeJs/code/nodejs-app/index.js index 036ae08..6e5b41f 100644 --- a/NodeJs/code/nodejs-app/index.js +++ b/NodeJs/code/nodejs-app/index.js @@ -1,25 +1,83 @@ // imports -const { response, json } = require('express'); -const express = require('express'); -const request = require('request'); -const wikip = require('wiki-infobox-parser'); -const dotenv = require('dotenv') -const axios = require('axios'); +const { response, json } = require("express"); +const express = require("express"); +const request = require("request"); +const wiki = require("wikipedia"); +const dotenv = require("dotenv"); +const axios = require("axios"); +const { URL } = require("node:url"); + +async function generateImage({ prompt, size = "256x256", n = 1 }) { + return await axios + .post( + "https://api.openai.com/v1/images/generations", + JSON.stringify({ + prompt, + n, + size, + }), + { + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${process.env.CHAT_GPT_API_KEY}`, + }, + } + ) + .then(function (response) { + return response.data.data[0].url; + }) + .catch(function (error) { + console.log(`Image genrator failed with the error: ${error}`); + return ""; + }); +} //Initializing Express for creating Server const app = express(); //Configuring env dotenv.config(); -//Static Resources +//Static Resources app.use("/static", express.static(__dirname + "/static/")); //Setting up the View Engine -app.set("view engine", 'ejs'); +app.set("view engine", "ejs"); //Dashboard route here +app.get("/", (req, res) => { + res.render("dashboard"); +}); //Nasa route here +app.get("/nasa", (req, res) => { + (async () => { + const url = new URL("https://api.nasa.gov/planetary/apod"); + url.searchParams.append("api_key", process.env.API_KEY); + const response = await axios.get(url.href); + res.render("nasa", { data: response.data }); + })(); +}); //Search route here +app.get("/search", async (req, response) => { + if (req.originalUrl === "/search") { + response.render("search"); + return; + } + const query = req.originalUrl.split("=")[1]; + const page = await wiki.page(query); + const summary = await page.summary(); + response.render("details", { data: summary }); +}); + +// chatgpt route here +app.get("/chatgpt", async (req, res) => { + if (req.originalUrl === "/chatgpt") { + res.render("chatgpt"); + return; + } + const prompt = req.originalUrl.split("=")[1]; + const image = await generateImage({ prompt }); + res.render("image", { data: { image: image, title: prompt } }); +}); //Starting the server -app.listen(6004, console.log("Listening at port 6004...")); \ No newline at end of file +app.listen(6004, console.log("Listening at port 6004...")); diff --git a/NodeJs/code/nodejs-app/package.json b/NodeJs/code/nodejs-app/package.json index 0a9fac3..4174970 100644 --- a/NodeJs/code/nodejs-app/package.json +++ b/NodeJs/code/nodejs-app/package.json @@ -7,7 +7,7 @@ "start": "nodemon index.js", "test": "echo \"Error: no test specified\" && exit 1" }, - "private":"true", + "private": "true", "dependencies": { "axios": "^0.19.2", "dotenv": "^16.0.3", @@ -16,6 +16,7 @@ "node-fetch": "^2.6.7", "nodemon": "^2.0.3", "request": "^2.88.2", - "wiki-infobox-parser": "^0.1.11" + "wiki-infobox-parser": "^0.1.11", + "wikipedia": "^2.0.0" } } diff --git a/NodeJs/code/nodejs-app/views/chatgpt.ejs b/NodeJs/code/nodejs-app/views/chatgpt.ejs new file mode 100644 index 0000000..1a3eeb0 --- /dev/null +++ b/NodeJs/code/nodejs-app/views/chatgpt.ejs @@ -0,0 +1,45 @@ + + + + + + UniCourt Workshop1 - OpenAI Image Generation + + + + +
+
+
+

OpenAI Image Generation

+
+
+ + +
+
+
+
+
+ + + diff --git a/NodeJs/code/nodejs-app/views/dashboard.ejs b/NodeJs/code/nodejs-app/views/dashboard.ejs index cb79d37..9afb167 100644 --- a/NodeJs/code/nodejs-app/views/dashboard.ejs +++ b/NodeJs/code/nodejs-app/views/dashboard.ejs @@ -16,7 +16,8 @@

Welcome To Node Workshop

NASA API Call - Wiki Search + Wiki Search + Generate Image using OpenAI
diff --git a/NodeJs/code/nodejs-app/views/details.ejs b/NodeJs/code/nodejs-app/views/details.ejs index 3f41d43..a509f8d 100644 --- a/NodeJs/code/nodejs-app/views/details.ejs +++ b/NodeJs/code/nodejs-app/views/details.ejs @@ -1,32 +1,50 @@ - + - - - UniCourt Workshop1 - Search Result - - - + + + UniCourt Workshop1 - Nasa + + - + +
-
-
-
Search Term: <%= data.person %>
+
+
<%= data.title %> Details
+
+
+
+ + +
-
-
-
Search Result:
-
-
-
-
<%= JSON.stringify(data,undefined,2) %>
+
+
+
+

<%= data.title %>

+

Explanation: <%= data.extract %>

+
+ Back
- Back
- - +
+ - \ No newline at end of file + diff --git a/NodeJs/code/nodejs-app/views/image.ejs b/NodeJs/code/nodejs-app/views/image.ejs new file mode 100644 index 0000000..b50b70c --- /dev/null +++ b/NodeJs/code/nodejs-app/views/image.ejs @@ -0,0 +1,42 @@ + + + + + + UniCourt Workshop1 - Nasa + + + + +
+
+
+
+
<%= data.title %> Image
+
+
+ + + +
+ Back +
+
+
+ + +