aboutsummaryrefslogtreecommitdiffstats
path: root/csci4131/hw5/strap012_hw5
diff options
context:
space:
mode:
authorRossTheRoss <mstrapp@protonmail.com>2021-03-18 09:09:05 -0500
committerRossTheRoss <mstrapp@protonmail.com>2021-03-18 09:09:05 -0500
commit0e3bb39710e4f9e64bed9ab113fcb363aa9ef266 (patch)
treecfd544b2aaa5b3caf5de8b1c40a7c54fa3d76d9f /csci4131/hw5/strap012_hw5
parentS P A C I N G (diff)
downloadhomework-0e3bb39710e4f9e64bed9ab113fcb363aa9ef266.tar
homework-0e3bb39710e4f9e64bed9ab113fcb363aa9ef266.tar.gz
homework-0e3bb39710e4f9e64bed9ab113fcb363aa9ef266.tar.bz2
homework-0e3bb39710e4f9e64bed9ab113fcb363aa9ef266.tar.lz
homework-0e3bb39710e4f9e64bed9ab113fcb363aa9ef266.tar.xz
homework-0e3bb39710e4f9e64bed9ab113fcb363aa9ef266.tar.zst
homework-0e3bb39710e4f9e64bed9ab113fcb363aa9ef266.zip
Start Hw5
Diffstat (limited to '')
-rwxr-xr-xcsci4131/hw5/strap012_hw5/client/addContact.html113
-rwxr-xr-xcsci4131/hw5/strap012_hw5/client/contacts.html43
-rwxr-xr-xcsci4131/hw5/strap012_hw5/client/index.html27
-rwxr-xr-xcsci4131/hw5/strap012_hw5/client/stock.html99
-rwxr-xr-xcsci4131/hw5/strap012_hw5/contacts.json22
-rwxr-xr-xcsci4131/hw5/strap012_hw5/createServer.js56
-rwxr-xr-xcsci4131/hw5/strap012_hw5/package.json11
7 files changed, 371 insertions, 0 deletions
diff --git a/csci4131/hw5/strap012_hw5/client/addContact.html b/csci4131/hw5/strap012_hw5/client/addContact.html
new file mode 100755
index 0000000..12bfaa2
--- /dev/null
+++ b/csci4131/hw5/strap012_hw5/client/addContact.html
@@ -0,0 +1,113 @@
+<!doctype html>
+<html lang="en">
+
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
+ <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+ </head>
+
+ <body>
+ <nav class="navbar navbar-default">
+ <div class="container-fluid">
+ <ul class="nav navbar-nav">
+ <li><a href="index.html"><b>Home</b></a></li>
+ <li><a href="contacts.html"><b>Contacts</b></a></li>
+ <li><a href="addContact.html"><b>Add Contact</b></a></li>
+ <li><a href="stock.html"><b>Stock Page</b></a></li>
+ </ul>
+ </div>
+ </nav>
+ <br><br>
+
+ <div class="container">
+ <div class="row">
+ <p><br /></p>
+ </div>
+
+ <div class="row">
+ <div class="col-md-4"></div>
+ <div class="col-md-4">
+ <div class="panel panel-default">
+ <form name="addContact" method="post" action="/postContactEntry">
+ <p></p>
+ <table class="table table-bordered table-hover">
+ <tbody>
+ <tr>
+ <td class="col-md-6">Name</td>
+ <td class="col-md-6">
+ <div class="form-group">
+ <input type="text" class="form-control" name="name" required>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="col-md-6">Category</td>
+ <td class="col-md-6">
+ <div class="form-group">
+ <select class="form-control" name="category">
+ <option>Personal</option>
+ <option>Academic</option>
+ <option>Industry</option>
+ </select>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="col-md-6">Location</td>
+ <td class="col-md-6">
+ <div class="form-group">
+ <input type="text" class="form-control" name="location" required>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="col-md-6">Contact Information</td>
+ <td class="col-md-6">
+ <div class="form-group">
+ <input type="text" class="form-control" name="contact" required>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="col-md-6">Email</td>
+ <td class="col-md-6">
+ <div class="form-group">
+ <input type="email" class="form-control" name="email" required>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="col-md-6">Website Name</td>
+ <td class="col-md-6">
+ <div class="form-group">
+ <input type="text" class="form-control" name="website_name" required maxlength="100">
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="col-md-6">Website URL</td>
+ <td class="col-md-6">
+ <div class="form-group">
+ <input type="url" class="form-control" name="website_url" required maxlength="200">
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="col-md-6"></td>
+ <td class="col-md-6">
+ <input type="submit" value="Submit">
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </form>
+ </div>
+ </div>
+ <div class="col-md-4"></div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/csci4131/hw5/strap012_hw5/client/contacts.html b/csci4131/hw5/strap012_hw5/client/contacts.html
new file mode 100755
index 0000000..e24ca84
--- /dev/null
+++ b/csci4131/hw5/strap012_hw5/client/contacts.html
@@ -0,0 +1,43 @@
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
+ <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+ </head>
+ <body>
+ <nav class="navbar navbar-default">
+ <div class="container-fluid">
+ <ul class="nav navbar-nav">
+ <li><a href="index.html"><b>Home</b></a></li>
+ <li><a href="contacts.html"><b>Contacts</b></a></li>
+ <li><a href="addContact.html"><b>Add Contact</b></a></li>
+ <li><a href="stock.html"><b>Stock Page</b></a></li>
+ </ul>
+ </div>
+ </nav>
+ <br><br>
+
+ <div class="container">
+ <table class="table" id="contactsTable">
+ <thead>
+ <tr>
+ <th scope="col">Name</th>
+ <th scope="col">Category</th>
+ <th scope="col">Location</th>
+ <th scope="col">Contact Information</th>
+ <th scope="col">Email</th>
+ <th scope="col">Website <br> (URL) </th>
+ </tr>
+ </thead>
+ <tbody></tbody>
+ </table>
+ </div>
+ <script type="text/javascript">
+ /* TODO Fill this script in with a request to your server to GET contacts.json
+ / and display it in the contactsTable.
+ /*/
+ </script>
+ </body>
+</html>
diff --git a/csci4131/hw5/strap012_hw5/client/index.html b/csci4131/hw5/strap012_hw5/client/index.html
new file mode 100755
index 0000000..44c5d0f
--- /dev/null
+++ b/csci4131/hw5/strap012_hw5/client/index.html
@@ -0,0 +1,27 @@
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
+ <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+</head>
+ <body>
+ <nav class="navbar navbar-default">
+ <div class="container-fluid">
+ <ul class="nav navbar-nav">
+ <li><a href="index.html"><b>Home</b></a></li>
+ <li><a href="contacts.html"><b>Contacts</b></a></li>
+ <li><a href="addContact.html"><b>Add Contact</b></a></li>
+ <li><a href="stock.html"><b>Stock Page</b></a></li>
+ </ul>
+ </div>
+ </nav>
+ <br><br><br>
+ <div class="container">
+ <div class="panel panel-default">
+ <div class="panel-body"><center>Welcome to Contact Management</center></div>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/csci4131/hw5/strap012_hw5/client/stock.html b/csci4131/hw5/strap012_hw5/client/stock.html
new file mode 100755
index 0000000..91f8493
--- /dev/null
+++ b/csci4131/hw5/strap012_hw5/client/stock.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
+ <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+ <style>
+ textarea {
+ width: 100%;
+ min-height: 30rem;
+ background-color: black;
+ font-family: "Lucida Console", Monaco, monospace;
+ font-size: 0.75 rem;
+ line-height: 1.2;
+ color: #fff;
+ }
+ </style>
+</head>
+
+<body>
+ <nav class="navbar navbar-default">
+ <div class="container-fluid">
+ <ul class="nav navbar-nav">
+ <li><a href="index.html"><b>Home</b></a></li>
+ <li><a href="contacts.html"><b>Contacts</b></a></li>
+ <li><a href="addContact.html"><b>Add Contact</b></a></li>
+ <li><a href="stock.html"><b>Stock Page</b></a></li>
+ </ul>
+ </div>
+ </nav>
+ <br><br>
+
+ <div class="container">
+ <div class="panel panel-default">
+ <div class="panel-body"><center>Welcome to Stock Page</center></div>
+ </div>
+ </div>
+
+ <div class="container">
+ <div class="row">
+ <div class="col">
+ <table class="table table-bordered table-hover">
+ <tbody>
+ <tr>
+ <td class="col-md-6">Company</td>
+ <td class="col-md-6">
+ <div class="form-group">
+ <select name="Company">
+ <option value="GME">Gamestop</option>
+ <option value="MSFT">Microsoft</option>
+ <option value="BA">Boeing Company</option>
+ <option value="AAPL">Apple Inc</option>
+ <option value="AMZN">Amazon</option>
+ <option value="NVDA">NVIDIA Corporation</option>
+ </select>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <button type="button">Get Data</button>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+
+ <div class="container">
+ <div id="chartContainer"></div>
+ </div>
+
+ <div class="container">
+ <table class="table" id="StockData">
+ <thead>
+ <tr>
+ <th scope="col">Company-MetaData</th>
+ <th scope="col">Stock-Info</th>
+ </tr>
+ </thead>
+ <tbody></tbody>
+ </table>
+ </div>
+
+ <!-- <script>
+ /* TODO:
+ / Bonus 1. Request the TIME_SERIES_DAILY endpoint of alphavantage API
+ / for the company selected in the dropdown. Display the JSON
+ / in the result according to the write up.
+ / Bonus 2. Take the JSON from the alphavantage API and chart it to a
+ / line chart using Chart.js to the chartContainer div. Ensure
+ / the chart meets all requirements from the HW writeup.
+ /*/
+ </script> -->
+</body>
+</html>
diff --git a/csci4131/hw5/strap012_hw5/contacts.json b/csci4131/hw5/strap012_hw5/contacts.json
new file mode 100755
index 0000000..54149e8
--- /dev/null
+++ b/csci4131/hw5/strap012_hw5/contacts.json
@@ -0,0 +1,22 @@
+{
+ "contacts": [
+ {
+ "name": "President Joan T.A. Gabel",
+ "category": "Academic",
+ "location": "202 Morrill Hall\r\n100 Church Street SE\r\nMinneapolis, MN 55455",
+ "contact": "President of the University of Minnesota System",
+ "email": "upres@umn.edu",
+ "website_name": "Home Page",
+ "website_url": "https://president.umn.edu/"
+ },
+ {
+ "name": "Professor Dan Challou",
+ "category": "Academic",
+ "location": "383 Shepherd Laboratory\r\n100 Union Street SE\r\nMinneapolis, MN 55455",
+ "contact": "Professor of CSCI 4131 - Internet Programming",
+ "email": "chal0006@umn.edu",
+ "website_name": "Course Home Page",
+ "website_url": "https://canvas.umn.edu/courses/217376"
+ }
+ ]
+}
diff --git a/csci4131/hw5/strap012_hw5/createServer.js b/csci4131/hw5/strap012_hw5/createServer.js
new file mode 100755
index 0000000..01f1f08
--- /dev/null
+++ b/csci4131/hw5/strap012_hw5/createServer.js
@@ -0,0 +1,56 @@
+
+const http = require('http');
+const url = require('url');
+const fs = require('fs');
+const qs = require('querystring');
+
+const port = 9001;
+http.createServer(function (req, res) {
+ var q = url.parse(req.url, true);
+ var filename = "." + q.pathname;
+ if(req.url === '/'){
+ indexPage(req,res);
+ }
+ else if (req.url === '/index.html') {
+ indexPage(req, res, '/index.html');
+ }
+ else if (req.url === '/contacts.html') {
+ indexPage(req, res, '/contacts.html');
+ }
+ else if (req.url === '/addContact.html') {
+ indexPage(req, res, '/addContact.html');
+ }
+ else if (req.url === '/stock.html') {
+ jsonSock(req, res, '/stock.html');
+ }
+ else{
+ res.writeHead(404, {'Content-Type': 'text/html'});
+ return res.end("404 Not Found");
+ }
+}).listen(port);
+
+
+function indexPage(req, res, file) {
+ fs.readFile('client' + file, function(err, html) {
+ if(err) {
+ throw err;
+ }
+ res.statusCode = 200;
+ res.setHeader('Content-type', 'text/html');
+ res.write(html);
+ res.end();
+ });
+}
+
+function jsonSock(req, res, file) {
+ fs.readFile('client/' + file, function (err, json) {
+ if (err) {
+ throw err;
+ }
+ res.statusCode = 200;
+ res.setHeader('Content-type', 'text/json');
+ res.write(json);
+ res.end();
+ });
+}
+
diff --git a/csci4131/hw5/strap012_hw5/package.json b/csci4131/hw5/strap012_hw5/package.json
new file mode 100755
index 0000000..90f2542
--- /dev/null
+++ b/csci4131/hw5/strap012_hw5/package.json
@@ -0,0 +1,11 @@
+{
+ "name": "strap012_hw5",
+ "version": "1.0.0",
+ "description": "Assignment 5",
+ "main": "createServer.js",
+ "scripts": {
+ "test": "node createServer.js"
+ },
+ "author": "strap012",
+ "license": "ISC"
+}