Skip to content

Commit 391e3d6

Browse files
authored
Merge pull request #10 from aahill/image-search-webapp
Image search webapp
2 parents 582d011 + 254c097 commit 391e3d6

File tree

7 files changed

+761
-0
lines changed

7 files changed

+761
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Bing Image Search single-page web app
2+
3+
This single-page web application demonstrates how the Bing Image Search API (an [Azure Cognitive Service](https://docs.microsoft.com/azure/cognitive-services/)) can be used to retrieve, parse, and display relevant image results based on a user's query. This sample compliments the [single-page web app](https://docs.microsoft.com/azure/cognitive-services/bing-image-search/tutorial-bing-image-search-single-page-app) tutorial on docs.microsoft.com.
4+
5+
The sample app can:
6+
7+
* Call the Bing Image Search API with search options
8+
* Display image results
9+
* Paginate results
10+
* Manage subscription keys
11+
* Handle errors
12+
13+
To use this app, you must have a valid Azure subscription. If you don't have one, you can [get an account](https://azure.microsoft.com/free/) for free. After you sign up, you can use the subscription key from creating an [Azure Cognitive Services resource](http://docs.microsoft.com/azure/cognitive-services/cognitive-services-apis-create-account) for the Bing Search APIs.
14+
15+
## Prerequisites
16+
17+
* Node.js 8 or later
18+
* A valid Azure Cognitive Services subscription key for the Bing Search APIs
19+
20+
## Get started
21+
22+
1. Clone the repository.
23+
2. Navigate to the Bing Web Search Tutorial directory.
24+
3. Install Express.js:
25+
`npm install`
26+
27+
4. Run the sample app:
28+
`node bing-web-search.js`
29+
30+
5. Navigate to the provided URL and perform your first Bing Image Search!
31+
32+
## Next steps
33+
34+
* See the [single-page webapp tutorial](https://docs.microsoft.com/azure/cognitive-services/bing-image-search/tutorial-bing-image-search-single-page-app) that goes along with this sample.
35+
* Explore all of the available [Azure Cognitive Services](https://docs.microsoft.com/azure/cognitive-services/).
36+
* Use [computer vision](https://docs.microsoft.com/azure/cognitive-services/computer-vision/quickstarts-sdk/csharp-analyze-sdk) to quickly analyze an image.
37+
* View the rest of the [Bing Image Search Documentation](https://docs.microsoft.com/en-us/azure/cognitive-services/bing-image-search/).

Tutorials/Bing-Image-Search/app.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const http = require('http');
2+
const express = require("express");
3+
const app = express();
4+
var port = 8000;
5+
6+
app.use(express.static("public"));
7+
8+
app.listen(port, function () {
9+
console.log('Starting the Node.js server for this sample. Navigate to http://localhost:'+port+'/ to view the webpage.');
10+
});
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"name": "BingImageSearchApp",
3+
"version": "1.0.0",
4+
"description": "A single-page web app that displays images from the Bing Image Search API ",
5+
"main": "app.js",
6+
"license": "MIT",
7+
"scripts": {
8+
"test": "echo \"Error: no test specified\" && exit 1"
9+
},
10+
"author": "Microsoft Corporation",
11+
"dependencies": {
12+
"express": "^4.16.3"
13+
}
14+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
2+
html, body, div, p, h1, h2 {font-family: Verdana, "Lucida Sans", sans-serif; color: #000;}
3+
html, body, div, p {font-weight: normal;}
4+
body {background-color: #fff;}
5+
6+
h1, h2, h3 {font-weight: bold; color: #087;}
7+
sup {font-weight: normal;}
8+
9+
html, body, div, p {font-size: 12px;}
10+
h1 {font-size: 20px; margin-top: 30px;}
11+
h2 {font-size: 16px; clear: left;}
12+
h3 {font-size: 14px; clear: left;}
13+
14+
#sidebar {font-size: 10px; text-align: right; display: flex; padding: 0px 10px;
15+
float: right; margin-left: 15px; margin-right: 0px;}
16+
#sidebar p {margin-top: 0px; font-size: 10px;}
17+
#sidebar img {display: inline-block; float: none; padding-right: 0px;}
18+
#pole p {font-size: 14px;}
19+
#pole, #mainline, #json, #http, #sidebar, #error, #paging1, #paging2
20+
{display: none;}
21+
22+
#term {width: 100%;}
23+
#logo {padding: 15px; float: right; border-left: 2px solid #ccc;}
24+
#query {float: left;}
25+
26+
img {vertical-align: top; float: left; margin-right: 10px; margin-bottom: 10px;}
27+
p.images {display: inline-block; font-size: 9px; vertical-align: top;}
28+
p.images img {float: none;}
29+
p.relatedSearches {clear: none;}
30+
#logo p, p.news, p.webPages, p.images {clear: left;}
31+
32+
a[href="#"]:link {color: blue;}
33+
a[href="#"]:visited {color: blue;}
34+
35+
h3 a:visited {color: #087 !important;}
36+
h3 a:link {color: #087 !important;}
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
<!DOCTYPE html>
2+
<!-- saved from url=(0014)about:internet -->
3+
<!-- the above Mark of the Web lets IE run this page in the Internet security zone,
4+
avoiding the permission prompt for running active content such as JavaScript -->
5+
<html>
6+
<head>
7+
<meta charset="UTF-8">
8+
<title>Bing Image Search API Demo</title>
9+
<base target="_blank">
10+
11+
<link rel="stylesheet" href="/css/style.css">
12+
<script src="js/script.js"></script>
13+
14+
</head>
15+
<body onload="document.forms.bing.query.focus();">
16+
17+
<form name="bing" onsubmit="return newBingImageSearch(this)">
18+
19+
<div id="logo"><!-- logo block including search market/language -->
20+
<img src="data:image/png;base64,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">
21+
<I>api</I>
22+
<p><select name="where">
23+
<option value="es-AR">Argentina (Spanish)</option>
24+
<option value="en-AU">Australia (English)</option>
25+
<option value="de-AT">Austria (German)</option>
26+
<option value="nl-BE">Belgium (Dutch)</option>
27+
<option value="fr-BE">Belgium (French)</option>
28+
<option value="pt-BR">Brazil (Portuguese)</option>
29+
<option value="en-CA">Canada (English)</option>
30+
<option value="fr-CA">Canada (French)</option>
31+
<option value="es-CL">Chile (Spanish)</option>
32+
<option value="da-DK">Denmark (Danish)</option>
33+
<option value="fi-FI">Finland (Finnish)</option>
34+
<option value="fr-FR">France (French)</option>
35+
<option value="de-DE">Germany (German)</option>
36+
<option value="zh-HK">Hong Kong (Traditional Chinese)</option>
37+
<option value="en-IN">India (English)</option>
38+
<option value="en-ID">Indonesia (English)</option>
39+
<option value="it-IT">Italy (Italian)</option>
40+
<option value="ja-JP">Japan (Japanese)</option>
41+
<option value="ko-KR">Korea (Korean)</option>
42+
<option value="en-MY">Malaysia (English)</option>
43+
<option value="es-MX">Mexico (Spanish)</option>
44+
<option value="nl-NL">Netherlands (Dutch)</option>
45+
<option value="en-NZ">New Zealand (English)</option>
46+
<option value="no-NO">Norway (Norwegian)</option>
47+
<option value="zh-CN">People's Republic of China (Chinese)</option>
48+
<option value="pl-PL">Poland (Polish)</option>
49+
<option value="pt-PT">Portugal (Portuguese)</option>
50+
<option value="en-PH">Philippines (English)</option>
51+
<option value="ru-RU">Russia (Russian)</option>
52+
<option value="ar-SA">Saudi Arabia (Arabic)</option>
53+
<option value="en-ZA">South Africa (English)</option>
54+
<option value="es-ES">Spain (Spanish)</option>
55+
<option value="sv-SE">Sweden (Swedish)</option>
56+
<option value="fr-CH">Switzerland (French)</option>
57+
<option value="de-CH">Switzerland (German)</option>
58+
<option value="zh-TW">Taiwan (Traditional Chinese)</option>
59+
<option value="tr-TR">Turkey (Turkish)</option>
60+
<option value="en-GB">United Kingdom (English)</option>
61+
<option value="en-US" selected>United States (English)</option>
62+
<option value="es-US">United States (Spanish)</option>
63+
</select>
64+
<p>from Microsoft Cognitive Services
65+
</div>
66+
67+
<div id="query"><!-- query controls including search field and options -->
68+
<h1>Bing Image Search API demo</h2>
69+
70+
<input type="text" name="query" id="term" placeholder="Search for images" autocomplete=off>
71+
72+
<p>Aspect
73+
<input type=radio name="aspect" id="any" value="all" checked>
74+
<label for="any">Any</label>
75+
<input type=radio name="aspect" id="square" value="square">
76+
<label for="square">Square</label>
77+
<input type=radio name="aspect" id="wide" value="wide">
78+
<label for="wide">Wide</label>
79+
<input type=radio name="aspect" id="tall" value="tall">
80+
<label for="tall">Tall</label>
81+
82+
&nbsp;&nbsp;&nbsp;Color
83+
<select name="color">
84+
<option value="" selected>Any</option>
85+
<option value="coloronly">Only Color</option>
86+
<option value="monochrome">Black and White</option>
87+
<option value="black">Black</option>
88+
<option value="blue">Blue</option>
89+
<option value="black">Brown</option>
90+
<option value="gray">Gray</option>
91+
<option value="green">Green</option>
92+
<option value="orange">Orange</option>
93+
<option value="pink">Pink</option>
94+
<option value="purple">Purple</option>
95+
<option value="red">Red</option>
96+
<option value="teal">Teal</option>
97+
<option value="white">White</option>
98+
<option value="yellow">Yellow</option>
99+
</select>
100+
101+
&nbsp;&nbsp;&nbsp;From
102+
<select name="when">
103+
<option value="" selected>All time</option>
104+
<option value="month">Past month</option>
105+
<option value="week">Past week</option>
106+
<option value="day">Last 24 hours</option>
107+
</select>
108+
109+
&nbsp;&nbsp;&nbsp;<input type=checkbox id="safe" name="safe" value="on" checked><label for="safe">SafeSearch</label>
110+
111+
<!-- these hidden fields control paging -->
112+
<input type=hidden name="count" value="25">
113+
<input type=hidden name="offset" value="0">
114+
<input type=hidden name="nextoffset" value="">
115+
<input type=hidden name="stack" value="[]">
116+
</form>
117+
118+
</div>
119+
<div id="error">
120+
<h2>Error</h2>
121+
<div id="_error">
122+
</div>
123+
</div>
124+
125+
<h2>Results</h2>
126+
<div id="paging1">
127+
<div id="_paging1"></div>
128+
</div>
129+
130+
<div id="noresults">
131+
<div id="_noresults">None yet.</div>
132+
</div>
133+
134+
<div id="sidebar">
135+
<div id="_sidebar"></div>
136+
</div>
137+
138+
<div id="results">
139+
<div id="_results"></div>
140+
</div>
141+
142+
143+
<div id="paging2">
144+
<div id="_paging2"></div>
145+
</div>
146+
147+
<div id="json">
148+
<h3><a href="#" onclick="return toggleDisplay('_json')">JSON</a></h3>
149+
<div id="_json" style="display: none"></div>
150+
</div>
151+
152+
<div id="http">
153+
<h3><a href="#" onclick="return toggleDisplay('_http')">HTTP</a></h3>
154+
<div id="_http" style="display: none"></div>
155+
</div>
156+
157+
</body>
158+
</html>

0 commit comments

Comments
 (0)