Spaces:
Sleeping
Sleeping
Add Static Website
Browse files- .gitignore +1 -1
- LICENCE +399 -0
- README.md +5 -10
- main.py +21 -19
- static/404.html +248 -0
- static/css/main.css +0 -0
- static/emotion_detection.html +303 -0
- static/images/github-mark.svg +1 -0
- static/images/logo.svg +6 -0
- static/index.html +781 -0
- static/js/detection.js +134 -0
- static/js/main.js +0 -0
- static/js/summarizer.js +132 -0
- static/text_summarizer.html +305 -0
.gitignore
CHANGED
@@ -1 +1 @@
|
|
1 |
-
__pycache__
|
|
|
1 |
+
__pycache__/
|
LICENCE
ADDED
@@ -0,0 +1,399 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Attribution-NonCommercial 4.0 International
|
2 |
+
|
3 |
+
=======================================================================
|
4 |
+
|
5 |
+
Creative Commons Corporation ("Creative Commons") is not a law firm and
|
6 |
+
does not provide legal services or legal advice. Distribution of
|
7 |
+
Creative Commons public licenses does not create a lawyer-client or
|
8 |
+
other relationship. Creative Commons makes its licenses and related
|
9 |
+
information available on an "as-is" basis. Creative Commons gives no
|
10 |
+
warranties regarding its licenses, any material licensed under their
|
11 |
+
terms and conditions, or any related information. Creative Commons
|
12 |
+
disclaims all liability for damages resulting from their use to the
|
13 |
+
fullest extent possible.
|
14 |
+
|
15 |
+
Using Creative Commons Public Licenses
|
16 |
+
|
17 |
+
Creative Commons public licenses provide a standard set of terms and
|
18 |
+
conditions that creators and other rights holders may use to share
|
19 |
+
original works of authorship and other material subject to copyright
|
20 |
+
and certain other rights specified in the public license below. The
|
21 |
+
following considerations are for informational purposes only, are not
|
22 |
+
exhaustive, and do not form part of our licenses.
|
23 |
+
|
24 |
+
Considerations for licensors: Our public licenses are
|
25 |
+
intended for use by those authorized to give the public
|
26 |
+
permission to use material in ways otherwise restricted by
|
27 |
+
copyright and certain other rights. Our licenses are
|
28 |
+
irrevocable. Licensors should read and understand the terms
|
29 |
+
and conditions of the license they choose before applying it.
|
30 |
+
Licensors should also secure all rights necessary before
|
31 |
+
applying our licenses so that the public can reuse the
|
32 |
+
material as expected. Licensors should clearly mark any
|
33 |
+
material not subject to the license. This includes other CC-
|
34 |
+
licensed material, or material used under an exception or
|
35 |
+
limitation to copyright. More considerations for licensors:
|
36 |
+
wiki.creativecommons.org/Considerations_for_licensors
|
37 |
+
|
38 |
+
Considerations for the public: By using one of our public
|
39 |
+
licenses, a licensor grants the public permission to use the
|
40 |
+
licensed material under specified terms and conditions. If
|
41 |
+
the licensor's permission is not necessary for any reason--for
|
42 |
+
example, because of any applicable exception or limitation to
|
43 |
+
copyright--then that use is not regulated by the license. Our
|
44 |
+
licenses grant only permissions under copyright and certain
|
45 |
+
other rights that a licensor has authority to grant. Use of
|
46 |
+
the licensed material may still be restricted for other
|
47 |
+
reasons, including because others have copyright or other
|
48 |
+
rights in the material. A licensor may make special requests,
|
49 |
+
such as asking that all changes be marked or described.
|
50 |
+
Although not required by our licenses, you are encouraged to
|
51 |
+
respect those requests where reasonable. More_considerations
|
52 |
+
for the public:
|
53 |
+
wiki.creativecommons.org/Considerations_for_licensees
|
54 |
+
|
55 |
+
=======================================================================
|
56 |
+
|
57 |
+
Creative Commons Attribution-NonCommercial 4.0 International Public
|
58 |
+
License
|
59 |
+
|
60 |
+
By exercising the Licensed Rights (defined below), You accept and agree
|
61 |
+
to be bound by the terms and conditions of this Creative Commons
|
62 |
+
Attribution-NonCommercial 4.0 International Public License ("Public
|
63 |
+
License"). To the extent this Public License may be interpreted as a
|
64 |
+
contract, You are granted the Licensed Rights in consideration of Your
|
65 |
+
acceptance of these terms and conditions, and the Licensor grants You
|
66 |
+
such rights in consideration of benefits the Licensor receives from
|
67 |
+
making the Licensed Material available under these terms and
|
68 |
+
conditions.
|
69 |
+
|
70 |
+
Section 1 -- Definitions.
|
71 |
+
|
72 |
+
a. Adapted Material means material subject to Copyright and Similar
|
73 |
+
Rights that is derived from or based upon the Licensed Material
|
74 |
+
and in which the Licensed Material is translated, altered,
|
75 |
+
arranged, transformed, or otherwise modified in a manner requiring
|
76 |
+
permission under the Copyright and Similar Rights held by the
|
77 |
+
Licensor. For purposes of this Public License, where the Licensed
|
78 |
+
Material is a musical work, performance, or sound recording,
|
79 |
+
Adapted Material is always produced where the Licensed Material is
|
80 |
+
synched in timed relation with a moving image.
|
81 |
+
|
82 |
+
b. Adapter's License means the license You apply to Your Copyright
|
83 |
+
and Similar Rights in Your contributions to Adapted Material in
|
84 |
+
accordance with the terms and conditions of this Public License.
|
85 |
+
|
86 |
+
c. Copyright and Similar Rights means copyright and/or similar rights
|
87 |
+
closely related to copyright including, without limitation,
|
88 |
+
performance, broadcast, sound recording, and Sui Generis Database
|
89 |
+
Rights, without regard to how the rights are labeled or
|
90 |
+
categorized. For purposes of this Public License, the rights
|
91 |
+
specified in Section 2(b)(1)-(2) are not Copyright and Similar
|
92 |
+
Rights.
|
93 |
+
d. Effective Technological Measures means those measures that, in the
|
94 |
+
absence of proper authority, may not be circumvented under laws
|
95 |
+
fulfilling obligations under Article 11 of the WIPO Copyright
|
96 |
+
Treaty adopted on December 20, 1996, and/or similar international
|
97 |
+
agreements.
|
98 |
+
|
99 |
+
e. Exceptions and Limitations means fair use, fair dealing, and/or
|
100 |
+
any other exception or limitation to Copyright and Similar Rights
|
101 |
+
that applies to Your use of the Licensed Material.
|
102 |
+
|
103 |
+
f. Licensed Material means the artistic or literary work, database,
|
104 |
+
or other material to which the Licensor applied this Public
|
105 |
+
License.
|
106 |
+
|
107 |
+
g. Licensed Rights means the rights granted to You subject to the
|
108 |
+
terms and conditions of this Public License, which are limited to
|
109 |
+
all Copyright and Similar Rights that apply to Your use of the
|
110 |
+
Licensed Material and that the Licensor has authority to license.
|
111 |
+
|
112 |
+
h. Licensor means the individual(s) or entity(ies) granting rights
|
113 |
+
under this Public License.
|
114 |
+
|
115 |
+
i. NonCommercial means not primarily intended for or directed towards
|
116 |
+
commercial advantage or monetary compensation. For purposes of
|
117 |
+
this Public License, the exchange of the Licensed Material for
|
118 |
+
other material subject to Copyright and Similar Rights by digital
|
119 |
+
file-sharing or similar means is NonCommercial provided there is
|
120 |
+
no payment of monetary compensation in connection with the
|
121 |
+
exchange.
|
122 |
+
|
123 |
+
j. Share means to provide material to the public by any means or
|
124 |
+
process that requires permission under the Licensed Rights, such
|
125 |
+
as reproduction, public display, public performance, distribution,
|
126 |
+
dissemination, communication, or importation, and to make material
|
127 |
+
available to the public including in ways that members of the
|
128 |
+
public may access the material from a place and at a time
|
129 |
+
individually chosen by them.
|
130 |
+
|
131 |
+
k. Sui Generis Database Rights means rights other than copyright
|
132 |
+
resulting from Directive 96/9/EC of the European Parliament and of
|
133 |
+
the Council of 11 March 1996 on the legal protection of databases,
|
134 |
+
as amended and/or succeeded, as well as other essentially
|
135 |
+
equivalent rights anywhere in the world.
|
136 |
+
|
137 |
+
l. You means the individual or entity exercising the Licensed Rights
|
138 |
+
under this Public License. Your has a corresponding meaning.
|
139 |
+
|
140 |
+
Section 2 -- Scope.
|
141 |
+
|
142 |
+
a. License grant.
|
143 |
+
|
144 |
+
1. Subject to the terms and conditions of this Public License,
|
145 |
+
the Licensor hereby grants You a worldwide, royalty-free,
|
146 |
+
non-sublicensable, non-exclusive, irrevocable license to
|
147 |
+
exercise the Licensed Rights in the Licensed Material to:
|
148 |
+
|
149 |
+
a. reproduce and Share the Licensed Material, in whole or
|
150 |
+
in part, for NonCommercial purposes only; and
|
151 |
+
|
152 |
+
b. produce, reproduce, and Share Adapted Material for
|
153 |
+
NonCommercial purposes only.
|
154 |
+
|
155 |
+
2. Exceptions and Limitations. For the avoidance of doubt, where
|
156 |
+
Exceptions and Limitations apply to Your use, this Public
|
157 |
+
License does not apply, and You do not need to comply with
|
158 |
+
its terms and conditions.
|
159 |
+
|
160 |
+
3. Term. The term of this Public License is specified in Section
|
161 |
+
6(a).
|
162 |
+
|
163 |
+
4. Media and formats; technical modifications allowed. The
|
164 |
+
Licensor authorizes You to exercise the Licensed Rights in
|
165 |
+
all media and formats whether now known or hereafter created,
|
166 |
+
and to make technical modifications necessary to do so. The
|
167 |
+
Licensor waives and/or agrees not to assert any right or
|
168 |
+
authority to forbid You from making technical modifications
|
169 |
+
necessary to exercise the Licensed Rights, including
|
170 |
+
technical modifications necessary to circumvent Effective
|
171 |
+
Technological Measures. For purposes of this Public License,
|
172 |
+
simply making modifications authorized by this Section 2(a)
|
173 |
+
(4) never produces Adapted Material.
|
174 |
+
|
175 |
+
5. Downstream recipients.
|
176 |
+
|
177 |
+
a. Offer from the Licensor -- Licensed Material. Every
|
178 |
+
recipient of the Licensed Material automatically
|
179 |
+
receives an offer from the Licensor to exercise the
|
180 |
+
Licensed Rights under the terms and conditions of this
|
181 |
+
Public License.
|
182 |
+
|
183 |
+
b. No downstream restrictions. You may not offer or impose
|
184 |
+
any additional or different terms or conditions on, or
|
185 |
+
apply any Effective Technological Measures to, the
|
186 |
+
Licensed Material if doing so restricts exercise of the
|
187 |
+
Licensed Rights by any recipient of the Licensed
|
188 |
+
Material.
|
189 |
+
|
190 |
+
6. No endorsement. Nothing in this Public License constitutes or
|
191 |
+
may be construed as permission to assert or imply that You
|
192 |
+
are, or that Your use of the Licensed Material is, connected
|
193 |
+
with, or sponsored, endorsed, or granted official status by,
|
194 |
+
the Licensor or others designated to receive attribution as
|
195 |
+
provided in Section 3(a)(1)(A)(i).
|
196 |
+
|
197 |
+
b. Other rights.
|
198 |
+
|
199 |
+
1. Moral rights, such as the right of integrity, are not
|
200 |
+
licensed under this Public License, nor are publicity,
|
201 |
+
privacy, and/or other similar personality rights; however, to
|
202 |
+
the extent possible, the Licensor waives and/or agrees not to
|
203 |
+
assert any such rights held by the Licensor to the limited
|
204 |
+
extent necessary to allow You to exercise the Licensed
|
205 |
+
Rights, but not otherwise.
|
206 |
+
|
207 |
+
2. Patent and trademark rights are not licensed under this
|
208 |
+
Public License.
|
209 |
+
|
210 |
+
3. To the extent possible, the Licensor waives any right to
|
211 |
+
collect royalties from You for the exercise of the Licensed
|
212 |
+
Rights, whether directly or through a collecting society
|
213 |
+
under any voluntary or waivable statutory or compulsory
|
214 |
+
licensing scheme. In all other cases the Licensor expressly
|
215 |
+
reserves any right to collect such royalties, including when
|
216 |
+
the Licensed Material is used other than for NonCommercial
|
217 |
+
purposes.
|
218 |
+
|
219 |
+
Section 3 -- License Conditions.
|
220 |
+
|
221 |
+
Your exercise of the Licensed Rights is expressly made subject to the
|
222 |
+
following conditions.
|
223 |
+
|
224 |
+
a. Attribution.
|
225 |
+
|
226 |
+
1. If You Share the Licensed Material (including in modified
|
227 |
+
form), You must:
|
228 |
+
|
229 |
+
a. retain the following if it is supplied by the Licensor
|
230 |
+
with the Licensed Material:
|
231 |
+
|
232 |
+
i. identification of the creator(s) of the Licensed
|
233 |
+
Material and any others designated to receive
|
234 |
+
attribution, in any reasonable manner requested by
|
235 |
+
the Licensor (including by pseudonym if
|
236 |
+
designated);
|
237 |
+
|
238 |
+
ii. a copyright notice;
|
239 |
+
|
240 |
+
iii. a notice that refers to this Public License;
|
241 |
+
|
242 |
+
iv. a notice that refers to the disclaimer of
|
243 |
+
warranties;
|
244 |
+
|
245 |
+
v. a URI or hyperlink to the Licensed Material to the
|
246 |
+
extent reasonably practicable;
|
247 |
+
|
248 |
+
b. indicate if You modified the Licensed Material and
|
249 |
+
retain an indication of any previous modifications; and
|
250 |
+
|
251 |
+
c. indicate the Licensed Material is licensed under this
|
252 |
+
Public License, and include the text of, or the URI or
|
253 |
+
hyperlink to, this Public License.
|
254 |
+
|
255 |
+
2. You may satisfy the conditions in Section 3(a)(1) in any
|
256 |
+
reasonable manner based on the medium, means, and context in
|
257 |
+
which You Share the Licensed Material. For example, it may be
|
258 |
+
reasonable to satisfy the conditions by providing a URI or
|
259 |
+
hyperlink to a resource that includes the required
|
260 |
+
information.
|
261 |
+
|
262 |
+
3. If requested by the Licensor, You must remove any of the
|
263 |
+
information required by Section 3(a)(1)(A) to the extent
|
264 |
+
reasonably practicable.
|
265 |
+
|
266 |
+
4. If You Share Adapted Material You produce, the Adapter's
|
267 |
+
License You apply must not prevent recipients of the Adapted
|
268 |
+
Material from complying with this Public License.
|
269 |
+
|
270 |
+
Section 4 -- Sui Generis Database Rights.
|
271 |
+
|
272 |
+
Where the Licensed Rights include Sui Generis Database Rights that
|
273 |
+
apply to Your use of the Licensed Material:
|
274 |
+
|
275 |
+
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
|
276 |
+
to extract, reuse, reproduce, and Share all or a substantial
|
277 |
+
portion of the contents of the database for NonCommercial purposes
|
278 |
+
only;
|
279 |
+
|
280 |
+
b. if You include all or a substantial portion of the database
|
281 |
+
contents in a database in which You have Sui Generis Database
|
282 |
+
Rights, then the database in which You have Sui Generis Database
|
283 |
+
Rights (but not its individual contents) is Adapted Material; and
|
284 |
+
|
285 |
+
c. You must comply with the conditions in Section 3(a) if You Share
|
286 |
+
all or a substantial portion of the contents of the database.
|
287 |
+
|
288 |
+
For the avoidance of doubt, this Section 4 supplements and does not
|
289 |
+
replace Your obligations under this Public License where the Licensed
|
290 |
+
Rights include other Copyright and Similar Rights.
|
291 |
+
|
292 |
+
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
|
293 |
+
|
294 |
+
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
|
295 |
+
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
|
296 |
+
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
|
297 |
+
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
|
298 |
+
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
|
299 |
+
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
300 |
+
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
|
301 |
+
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
|
302 |
+
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
|
303 |
+
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
|
304 |
+
|
305 |
+
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
|
306 |
+
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
|
307 |
+
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
|
308 |
+
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
|
309 |
+
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
|
310 |
+
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
|
311 |
+
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
|
312 |
+
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
|
313 |
+
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
|
314 |
+
|
315 |
+
c. The disclaimer of warranties and limitation of liability provided
|
316 |
+
above shall be interpreted in a manner that, to the extent
|
317 |
+
possible, most closely approximates an absolute disclaimer and
|
318 |
+
waiver of all liability.
|
319 |
+
|
320 |
+
Section 6 -- Term and Termination.
|
321 |
+
|
322 |
+
a. This Public License applies for the term of the Copyright and
|
323 |
+
Similar Rights licensed here. However, if You fail to comply with
|
324 |
+
this Public License, then Your rights under this Public License
|
325 |
+
terminate automatically.
|
326 |
+
|
327 |
+
b. Where Your right to use the Licensed Material has terminated under
|
328 |
+
Section 6(a), it reinstates:
|
329 |
+
|
330 |
+
1. automatically as of the date the violation is cured, provided
|
331 |
+
it is cured within 30 days of Your discovery of the
|
332 |
+
violation; or
|
333 |
+
|
334 |
+
2. upon express reinstatement by the Licensor.
|
335 |
+
|
336 |
+
For the avoidance of doubt, this Section 6(b) does not affect any
|
337 |
+
right the Licensor may have to seek remedies for Your violations
|
338 |
+
of this Public License.
|
339 |
+
|
340 |
+
c. For the avoidance of doubt, the Licensor may also offer the
|
341 |
+
Licensed Material under separate terms or conditions or stop
|
342 |
+
distributing the Licensed Material at any time; however, doing so
|
343 |
+
will not terminate this Public License.
|
344 |
+
|
345 |
+
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
|
346 |
+
License.
|
347 |
+
|
348 |
+
Section 7 -- Other Terms and Conditions.
|
349 |
+
|
350 |
+
a. The Licensor shall not be bound by any additional or different
|
351 |
+
terms or conditions communicated by You unless expressly agreed.
|
352 |
+
|
353 |
+
b. Any arrangements, understandings, or agreements regarding the
|
354 |
+
Licensed Material not stated herein are separate from and
|
355 |
+
independent of the terms and conditions of this Public License.
|
356 |
+
|
357 |
+
Section 8 -- Interpretation.
|
358 |
+
|
359 |
+
a. For the avoidance of doubt, this Public License does not, and
|
360 |
+
shall not be interpreted to, reduce, limit, restrict, or impose
|
361 |
+
conditions on any use of the Licensed Material that could lawfully
|
362 |
+
be made without permission under this Public License.
|
363 |
+
|
364 |
+
b. To the extent possible, if any provision of this Public License is
|
365 |
+
deemed unenforceable, it shall be automatically reformed to the
|
366 |
+
minimum extent necessary to make it enforceable. If the provision
|
367 |
+
cannot be reformed, it shall be severed from this Public License
|
368 |
+
without affecting the enforceability of the remaining terms and
|
369 |
+
conditions.
|
370 |
+
|
371 |
+
c. No term or condition of this Public License will be waived and no
|
372 |
+
failure to comply consented to unless expressly agreed to by the
|
373 |
+
Licensor.
|
374 |
+
|
375 |
+
d. Nothing in this Public License constitutes or may be interpreted
|
376 |
+
as a limitation upon, or waiver of, any privileges and immunities
|
377 |
+
that apply to the Licensor or You, including from the legal
|
378 |
+
processes of any jurisdiction or authority.
|
379 |
+
|
380 |
+
=======================================================================
|
381 |
+
|
382 |
+
Creative Commons is not a party to its public
|
383 |
+
licenses. Notwithstanding, Creative Commons may elect to apply one of
|
384 |
+
its public licenses to material it publishes and in those instances
|
385 |
+
will be considered the βLicensor.β The text of the Creative Commons
|
386 |
+
public licenses is dedicated to the public domain under the CC0 Public
|
387 |
+
Domain Dedication. Except for the limited purpose of indicating that
|
388 |
+
material is shared under a Creative Commons public license or as
|
389 |
+
otherwise permitted by the Creative Commons policies published at
|
390 |
+
creativecommons.org/policies, Creative Commons does not authorize the
|
391 |
+
use of the trademark "Creative Commons" or any other trademark or logo
|
392 |
+
of Creative Commons without its prior written consent including,
|
393 |
+
without limitation, in connection with any unauthorized modifications
|
394 |
+
to any of its public licenses or any other arrangements,
|
395 |
+
understandings, or agreements concerning use of licensed material. For
|
396 |
+
the avoidance of doubt, this paragraph does not form part of the
|
397 |
+
public licenses.
|
398 |
+
|
399 |
+
Creative Commons may be contacted at creativecommons.org.
|
README.md
CHANGED
@@ -1,11 +1,6 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
emoji: π
|
4 |
-
colorFrom: blue
|
5 |
-
colorTo: yellow
|
6 |
-
sdk: docker
|
7 |
-
pinned: false
|
8 |
-
license: mit
|
9 |
-
---
|
10 |
|
11 |
-
|
|
|
|
|
|
1 |
+
# Text2Feature
|
2 |
+
Powerful text mining tool. Convert raw text into clean using modern technologies of NLP and AI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
4 |
+
You can test my website right here π
|
5 |
+
|
6 |
+
Link: [djacon.github.io/text2feature](https://djacon.github.io/text2feature)
|
main.py
CHANGED
@@ -1,30 +1,32 @@
|
|
1 |
-
import
|
2 |
-
from
|
3 |
-
from fastapi.
|
|
|
|
|
4 |
from inference import predict_emotions
|
5 |
|
6 |
app = FastAPI()
|
7 |
|
8 |
-
#
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
]
|
|
|
|
|
13 |
|
14 |
-
app.
|
15 |
-
CORSMiddleware,
|
16 |
-
allow_origins=allowed_hosts,
|
17 |
-
allow_credentials=True,
|
18 |
-
allow_methods=["*"],
|
19 |
-
allow_headers=["*"],
|
20 |
-
)
|
21 |
|
22 |
|
23 |
@app.get('/')
|
24 |
-
async def
|
25 |
-
return
|
|
|
|
|
|
|
|
|
26 |
|
27 |
|
28 |
@app.post('/predict_emotion')
|
29 |
-
async def predict(
|
30 |
-
return predict_emotions(text)
|
|
|
1 |
+
from fastapi import FastAPI
|
2 |
+
from pydantic import BaseModel
|
3 |
+
from fastapi.responses import RedirectResponse
|
4 |
+
from fastapi.staticfiles import StaticFiles
|
5 |
+
|
6 |
from inference import predict_emotions
|
7 |
|
8 |
app = FastAPI()
|
9 |
|
10 |
+
# app.add_middleware(
|
11 |
+
# CORSMiddleware,
|
12 |
+
# allow_origins=allowed_hosts,
|
13 |
+
# allow_credentials=True,
|
14 |
+
# allow_methods=["*"],
|
15 |
+
# allow_headers=["*"],
|
16 |
+
# )
|
17 |
|
18 |
+
app.mount("/static", StaticFiles(directory='static', html=True))
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
|
21 |
@app.get('/')
|
22 |
+
async def redirect_to_static_index():
|
23 |
+
return RedirectResponse(url='/static/index.html')
|
24 |
+
|
25 |
+
|
26 |
+
class EmotionRequest(BaseModel):
|
27 |
+
text: str
|
28 |
|
29 |
|
30 |
@app.post('/predict_emotion')
|
31 |
+
async def predict(request: EmotionRequest):
|
32 |
+
return predict_emotions(request.text)
|
static/404.html
ADDED
@@ -0,0 +1,248 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
|
4 |
+
<head>
|
5 |
+
<meta charset="utf-8">
|
6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
7 |
+
<link rel="canonical" href="">
|
8 |
+
<title>Text2Feature | 404 Page</title>
|
9 |
+
<link rel="stylesheet" href="css/main.css">
|
10 |
+
<link rel="icon" type="image/svg+xml" href="images/logo.svg">
|
11 |
+
<script defer src="js/main.js"></script>
|
12 |
+
</head>
|
13 |
+
|
14 |
+
<body class="overflow-hidden">
|
15 |
+
<!-- Google tag (gtag.js) -->
|
16 |
+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-B751Q3XBFC"></script>
|
17 |
+
<script>
|
18 |
+
window.dataLayer = window.dataLayer || [];
|
19 |
+
function gtag(){dataLayer.push(arguments);}
|
20 |
+
gtag('js', new Date());
|
21 |
+
|
22 |
+
gtag('config', 'G-B751Q3XBFC');
|
23 |
+
</script>
|
24 |
+
|
25 |
+
<div x-data="{ sidebarOpen: false }" class="relative flex h-screen text-gray-800 bg-white font-roboto">
|
26 |
+
<div x-cloak :class="sidebarOpen ? 'block' : 'hidden'" @click="sidebarOpen = false"
|
27 |
+
class="fixed inset-0 z-20 transition-opacity bg-black opacity-50 lg:hidden"></div>
|
28 |
+
|
29 |
+
<div x-cloak :class="sidebarOpen ? 'translate-x-0 ease-in' : '-translate-x-full ease-out'"
|
30 |
+
class="fixed inset-y-0 left-0 z-30 w-64 px-4 overflow-y-auto transition duration-200 transform bg-white border-r border-gray-100 lg:translate-x-0 lg:relative lg:inset-0 ">
|
31 |
+
<div class="mt-8">
|
32 |
+
<a href="index.html" class="flex items-center">
|
33 |
+
<img class="w-auto h-6" src="images/logo.svg" alt="logo">
|
34 |
+
<span class="mx-3 mt-1 font-medium text-lg">Text2<span class="text-indigo-600">Feature</span></span>
|
35 |
+
</a>
|
36 |
+
</div>
|
37 |
+
|
38 |
+
<hr class="my-6 border-gray-100">
|
39 |
+
|
40 |
+
<nav class="space-y-8">
|
41 |
+
<div class="space-y-4">
|
42 |
+
<h3 class="px-4 text-sm tracking-wider text-gray-400 uppercase">PAGES</h3>
|
43 |
+
|
44 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-200 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
45 |
+
href="index.html">
|
46 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none" viewBox="0 0 24 24"
|
47 |
+
stroke="currentColor">
|
48 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
49 |
+
d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" />
|
50 |
+
</svg>
|
51 |
+
<span class="mx-3 font-medium capitalize">Homepage</span>
|
52 |
+
</a>
|
53 |
+
|
54 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
55 |
+
href="text_summarizer.html">
|
56 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none" viewBox="0 0 24 24"
|
57 |
+
stroke="currentColor" stroke-width="2">
|
58 |
+
<path stroke-linecap="round" stroke-linejoin="round"
|
59 |
+
d="M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4" />
|
60 |
+
</svg>
|
61 |
+
<span class="mx-3 font-medium capitalize">Text Summarizer</span>
|
62 |
+
</a>
|
63 |
+
|
64 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
65 |
+
href="emotion_detection.html">
|
66 |
+
<svg width="24px" height="24px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
67 |
+
<path d="M9 16C9.85038 16.6303 10.8846 17 12 17C13.1154 17 14.1496 16.6303 15 16" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"/>
|
68 |
+
<path d="M16 10.5C16 11.3284 15.5523 12 15 12C14.4477 12 14 11.3284 14 10.5C14 9.67157 14.4477 9 15 9C15.5523 9 16 9.67157 16 10.5Z" fill="#1C274C"/>
|
69 |
+
<ellipse cx="9" cy="10.5" rx="1" ry="1.5" fill="#1C274C"/>
|
70 |
+
<path d="M7 3.33782C8.47087 2.48697 10.1786 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 10.1786 2.48697 8.47087 3.33782 7" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"/>
|
71 |
+
</svg>
|
72 |
+
<span class="mx-3 font-medium capitalize">Emotion Detection</span>
|
73 |
+
</a>
|
74 |
+
|
75 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
76 |
+
href="">
|
77 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none" viewBox="0 0 24 24"
|
78 |
+
stroke="currentColor">
|
79 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
80 |
+
d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" />
|
81 |
+
</svg>
|
82 |
+
|
83 |
+
<span class="mx-3 font-medium capitalize">Project 3</span>
|
84 |
+
</a>
|
85 |
+
|
86 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
87 |
+
href="">
|
88 |
+
<svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
89 |
+
<path
|
90 |
+
d="M13 10V14H19V10H13ZM11 10H5V14H11V10ZM13 19H19V16H13V19ZM11 19V16H5V19H11ZM13 5V8H19V5H13ZM11 5H5V8H11V5ZM19 3C20.1046 3 21 3.89543 21 5V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19V5C3 3.89543 3.89543 3 5 3H19Z"
|
91 |
+
fill="currentColor"></path>
|
92 |
+
</svg>
|
93 |
+
<span class="mx-3 font-medium capitalize">Project 4</span>
|
94 |
+
</a>
|
95 |
+
</div>
|
96 |
+
|
97 |
+
<div class="space-y-4">
|
98 |
+
<h3 class="px-4 text-sm tracking-wider text-gray-400 uppercase">OTHER</h3>
|
99 |
+
|
100 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
101 |
+
href="/">
|
102 |
+
<svg width="24" height="24" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
|
103 |
+
<path
|
104 |
+
d="M474.89,300.41a121.43,121.43,0,0,1-121.3,121.3H247.08V392.13H353.59a91.72,91.72,0,1,0,0-183.44H87.53L151,272.2l-20.92,20.92L30.89,193.9l99.22-99.22L151,115.6l-63.5,63.51H353.59A121.43,121.43,0,0,1,474.89,300.41Z" />
|
105 |
+
</svg>
|
106 |
+
<span class="mx-3 font-medium">Visit Main Website</span>
|
107 |
+
</a>
|
108 |
+
</div>
|
109 |
+
</nav>
|
110 |
+
</div>
|
111 |
+
|
112 |
+
<div class="flex flex-col flex-1 overflow-hidden bg-gray-100">
|
113 |
+
<header class="bg-white border-b border-gray-100">
|
114 |
+
<div class="flex items-center justify-between px-4 py-4 sm:px-6">
|
115 |
+
<div class="flex items-center">
|
116 |
+
<button @click="sidebarOpen = !sidebarOpen" class="text-gray-500 lg:hidden focus:outline-none">
|
117 |
+
<svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
118 |
+
<path d="M4 6H20M4 12H20M4 18H11" stroke="currentColor" stroke-width="2"
|
119 |
+
stroke-linecap="round" stroke-linejoin="round" />
|
120 |
+
</svg>
|
121 |
+
</button>
|
122 |
+
|
123 |
+
<div class="relative" x-data="{ search: '' }" @click.away="search = ''">
|
124 |
+
<div class="relative mx-4 lg:mx-0">
|
125 |
+
<span class="absolute inset-y-0 left-0 flex items-center pl-3">
|
126 |
+
<svg class="w-5 h-5 text-gray-400" viewBox="0 0 24 24" fill="none">
|
127 |
+
<path
|
128 |
+
d="M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z"
|
129 |
+
stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
130 |
+
stroke-linejoin="round"></path>
|
131 |
+
</svg>
|
132 |
+
</span>
|
133 |
+
|
134 |
+
<input x-model="search" type="text"
|
135 |
+
class="w-64 h-10 py-2 pl-10 pr-4 text-gray-700 placeholder-gray-400 transition-all duration-150 bg-white border border-gray-200 rounded-md focus:w-80 sm:w-64 sm:focus:w-80 focus:border-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-40"
|
136 |
+
placeholder="Find anything...">
|
137 |
+
</div>
|
138 |
+
|
139 |
+
<div class="absolute right-0 z-20 w-full py-2 mt-2 space-y-4 overflow-hidden bg-white rounded-md shadow-xl"
|
140 |
+
x-show="search.length > 0" x-cloak
|
141 |
+
x-transition:enter="transition ease-out duration-100 transform"
|
142 |
+
x-transition:enter-start="opacity-0 scale-95"
|
143 |
+
x-transition:enter-end="opacity-100 scale-100"
|
144 |
+
x-transition:leave="transition ease-in duration-75 transform"
|
145 |
+
x-transition:leave-start="opacity-100 scale-100"
|
146 |
+
x-transition:leave-end="opacity-0 scale-95">
|
147 |
+
|
148 |
+
<div>
|
149 |
+
<h3 class="px-5 text-xs tracking-wider text-gray-500 uppercase">Projects</h3>
|
150 |
+
<div class="mt-2">
|
151 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
152 |
+
href="text_summarizer.html">
|
153 |
+
Text Summarizer
|
154 |
+
</a>
|
155 |
+
|
156 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
157 |
+
href="emotion_detection.html">
|
158 |
+
Emotion Detection
|
159 |
+
</a>
|
160 |
+
|
161 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
162 |
+
href="">
|
163 |
+
Project 3
|
164 |
+
</a>
|
165 |
+
|
166 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
167 |
+
href="">
|
168 |
+
Project 4
|
169 |
+
</a>
|
170 |
+
</div>
|
171 |
+
</div>
|
172 |
+
<div>
|
173 |
+
<h3 class="px-5 text-xs tracking-wider text-gray-500 uppercase">Other</h3>
|
174 |
+
<div class="mt-2">
|
175 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
176 |
+
href="/">
|
177 |
+
Visit Main Website
|
178 |
+
</a>
|
179 |
+
</div>
|
180 |
+
</div>
|
181 |
+
</div>
|
182 |
+
</div>
|
183 |
+
</div>
|
184 |
+
|
185 |
+
<div class="flex items-center">
|
186 |
+
<div x-data="{ dropdownOpen: false }" class="relative inline-block">
|
187 |
+
<button @click="dropdownOpen = ! dropdownOpen" class="relative z-10 flex items-center flex-shrink-0 text-sm text-gray-600 focus:outline-none">
|
188 |
+
<img class="flex-shrink-0 object-cover w-8 h-8 rounded-full" src="images/github-mark.svg" alt="github-mark">
|
189 |
+
</button>
|
190 |
+
|
191 |
+
<div class="absolute right-0 z-20 w-56 py-2 mt-2 overflow-hidden bg-white rounded-md shadow-xl rtl:right-auto rtl:left-0" x-show="dropdownOpen" x-transition:enter="transition ease-out duration-100 transform" x-transition:enter-start="opacity-0 scale-95" x-transition:enter-end="opacity-100 scale-100" x-transition:leave="transition ease-in duration-75 transform" x-transition:leave-start="opacity-100 scale-100" x-transition:leave-end="opacity-0 scale-95" @click.away="dropdownOpen = false" style="display: none;">
|
192 |
+
<a target="_blank" href="https://github.com/Djacon/text2feature" class="flex items-center p-3 -mt-2 text-sm text-gray-600 transition-colors duration-200 transform hover:bg-gray-100">
|
193 |
+
<img class="flex-shrink-0 object-cover mx-1 rounded-full w-9 h-9" src="images/github-mark.svg" alt="github-mark">
|
194 |
+
<div class="mx-1">
|
195 |
+
<h1 class="text-sm font-semibold text-gray-700">Made By Djacon</h1>
|
196 |
+
<p class="text-sm text-gray-500">github.com/Djacon</p>
|
197 |
+
</div>
|
198 |
+
</a>
|
199 |
+
</div>
|
200 |
+
</div>
|
201 |
+
</div>
|
202 |
+
</div>
|
203 |
+
</header>
|
204 |
+
|
205 |
+
<main class="flex-1 overflow-y-auto">
|
206 |
+
<div class="px-4 py-8 sm:px-6">
|
207 |
+
<div>
|
208 |
+
<h1 class="text-2xl font-medium text-gray-700 sm:text-3xl"> 404
|
209 |
+
</h1>
|
210 |
+
|
211 |
+
<div class="hidden mt-3 overflow-y-auto text-sm lg:items-center lg:flex whitespace-nowrap">
|
212 |
+
<a class="text-gray-600">Pages</a>
|
213 |
+
<span class="mx-1 text-gray-500">/</span>
|
214 |
+
<a href="404.html" class="text-indigo-600 hover:underline">404</a>
|
215 |
+
</div>
|
216 |
+
</div>
|
217 |
+
|
218 |
+
<div class="mt-6">
|
219 |
+
<div class="flex flex-col items-center justify-center h-96">
|
220 |
+
<h1
|
221 |
+
class="font-bold text-transparent text-7xl md:text-9xl bg-clip-text bg-gradient-to-r from-indigo-800 via-indigo-900 to-gray-900">
|
222 |
+
404</h1>
|
223 |
+
|
224 |
+
<div
|
225 |
+
class="w-32 h-1 my-6 bg-gradient-to-r from-indigo-800 via-indigo-900 to-gray-900 md:my-6">
|
226 |
+
</div>
|
227 |
+
|
228 |
+
<h2 class="text-xl font-semibold text-gray-800 md:text-3xl">Page not found</h2>
|
229 |
+
|
230 |
+
|
231 |
+
<a href="index.html"
|
232 |
+
class="flex items-center px-4 py-2 mt-6 tracking-wide text-gray-600 capitalize transition-colors duration-200 transform bg-white rounded-md hover:bg-gray-50 focus:outline-none focus:ring focus:ring-gray-400 focus:ring-opacity-50">
|
233 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6 mx-1.5" fill="none"
|
234 |
+
viewBox="0 0 24 24" stroke="currentColor">
|
235 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
236 |
+
d="M7 16l-4-4m0 0l4-4m-4 4h18" />
|
237 |
+
</svg>
|
238 |
+
<span class="mx-1.5">Go Back</span>
|
239 |
+
</a>
|
240 |
+
</div>
|
241 |
+
</div>
|
242 |
+
</div>
|
243 |
+
</main>
|
244 |
+
</div>
|
245 |
+
</div>
|
246 |
+
</body>
|
247 |
+
|
248 |
+
</html>
|
static/css/main.css
ADDED
The diff for this file is too large to render.
See raw diff
|
|
static/emotion_detection.html
ADDED
@@ -0,0 +1,303 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
|
4 |
+
<head>
|
5 |
+
<meta charset="utf-8">
|
6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
7 |
+
<link rel="canonical" href="">
|
8 |
+
<title>Text2Feature | Detection</title>
|
9 |
+
<link rel="stylesheet" href="css/main.css">
|
10 |
+
<link rel="icon" type="image/svg+xml" href="images/logo.svg">
|
11 |
+
<script defer src="js/main.js"></script>
|
12 |
+
</head>
|
13 |
+
|
14 |
+
<body class="overflow-hidden">
|
15 |
+
<!-- Google tag (gtag.js) -->
|
16 |
+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-B751Q3XBFC"></script>
|
17 |
+
<script>
|
18 |
+
window.dataLayer = window.dataLayer || [];
|
19 |
+
function gtag(){dataLayer.push(arguments);}
|
20 |
+
gtag('js', new Date());
|
21 |
+
|
22 |
+
gtag('config', 'G-B751Q3XBFC');
|
23 |
+
</script>
|
24 |
+
|
25 |
+
<div x-data="{ sidebarOpen: false }" class="relative flex h-screen text-gray-800 bg-white font-roboto">
|
26 |
+
<div x-cloak :class="sidebarOpen ? 'block' : 'hidden'" @click="sidebarOpen = false"
|
27 |
+
class="fixed inset-0 z-20 transition-opacity bg-black opacity-50 lg:hidden"></div>
|
28 |
+
|
29 |
+
<div x-cloak :class="sidebarOpen ? 'translate-x-0 ease-in' : '-translate-x-full ease-out'"
|
30 |
+
class="fixed inset-y-0 left-0 z-30 w-64 px-4 overflow-y-auto transition duration-200 transform bg-white border-r border-gray-100 lg:translate-x-0 lg:relative lg:inset-0 ">
|
31 |
+
<div class="mt-8">
|
32 |
+
<a href="index.html" class="flex items-center">
|
33 |
+
<img class="w-auto h-6" src="images/logo.svg" alt="logo">
|
34 |
+
<span class="mx-3 mt-1 font-medium text-lg">Text2<span class="text-indigo-600">Feature</span></span>
|
35 |
+
</a>
|
36 |
+
</div>
|
37 |
+
|
38 |
+
<hr class="my-6 border-gray-100">
|
39 |
+
|
40 |
+
<nav class="space-y-8">
|
41 |
+
<div class="space-y-4">
|
42 |
+
<h3 class="px-4 text-sm tracking-wider text-gray-400 uppercase">PAGES</h3>
|
43 |
+
|
44 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-200 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
45 |
+
href="index.html">
|
46 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none" viewBox="0 0 24 24"
|
47 |
+
stroke="currentColor">
|
48 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
49 |
+
d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" />
|
50 |
+
</svg>
|
51 |
+
<span class="mx-3 font-medium capitalize">Homepage</span>
|
52 |
+
</a>
|
53 |
+
|
54 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-200 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
55 |
+
href="text_summarizer.html">
|
56 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none" viewBox="0 0 24 24"
|
57 |
+
stroke="currentColor" stroke-width="2">
|
58 |
+
<path stroke-linecap="round" stroke-linejoin="round"
|
59 |
+
d="M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4" />
|
60 |
+
</svg>
|
61 |
+
<span class="mx-3 font-medium capitalize">Text Summarizer</span>
|
62 |
+
</a>
|
63 |
+
|
64 |
+
<a class="flex items-center px-4 py-2 text-gray-600 transition-colors duration-300 transform bg-gray-200 rounded-lg bg-opacity-40"
|
65 |
+
href="emotion_detection.html">
|
66 |
+
<svg width="24px" height="24px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
67 |
+
<path d="M9 16C9.85038 16.6303 10.8846 17 12 17C13.1154 17 14.1496 16.6303 15 16" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"/>
|
68 |
+
<path d="M16 10.5C16 11.3284 15.5523 12 15 12C14.4477 12 14 11.3284 14 10.5C14 9.67157 14.4477 9 15 9C15.5523 9 16 9.67157 16 10.5Z" fill="#1C274C"/>
|
69 |
+
<ellipse cx="9" cy="10.5" rx="1" ry="1.5" fill="#1C274C"/>
|
70 |
+
<path d="M7 3.33782C8.47087 2.48697 10.1786 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 10.1786 2.48697 8.47087 3.33782 7" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"/>
|
71 |
+
</svg>
|
72 |
+
<span class="mx-3 font-medium capitalize">Emotion Detection</span>
|
73 |
+
</a>
|
74 |
+
|
75 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
76 |
+
href="">
|
77 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none" viewBox="0 0 24 24"
|
78 |
+
stroke="currentColor">
|
79 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
80 |
+
d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" />
|
81 |
+
</svg>
|
82 |
+
<span class="mx-3 font-medium capitalize">Project 3</span>
|
83 |
+
</a>
|
84 |
+
|
85 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
86 |
+
href="">
|
87 |
+
<svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
88 |
+
<path
|
89 |
+
d="M13 10V14H19V10H13ZM11 10H5V14H11V10ZM13 19H19V16H13V19ZM11 19V16H5V19H11ZM13 5V8H19V5H13ZM11 5H5V8H11V5ZM19 3C20.1046 3 21 3.89543 21 5V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19V5C3 3.89543 3.89543 3 5 3H19Z"
|
90 |
+
fill="currentColor"></path>
|
91 |
+
</svg>
|
92 |
+
<span class="mx-3 font-medium capitalize">Project 4</span>
|
93 |
+
</a>
|
94 |
+
</div>
|
95 |
+
|
96 |
+
<div class="space-y-4">
|
97 |
+
<h3 class="px-4 text-sm tracking-wider text-gray-400 uppercase">OTHER</h3>
|
98 |
+
|
99 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
100 |
+
href="/">
|
101 |
+
<svg width="24" height="24" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
|
102 |
+
<path
|
103 |
+
d="M474.89,300.41a121.43,121.43,0,0,1-121.3,121.3H247.08V392.13H353.59a91.72,91.72,0,1,0,0-183.44H87.53L151,272.2l-20.92,20.92L30.89,193.9l99.22-99.22L151,115.6l-63.5,63.51H353.59A121.43,121.43,0,0,1,474.89,300.41Z" />
|
104 |
+
</svg>
|
105 |
+
<span class="mx-3 font-medium">Visit Main Website</span>
|
106 |
+
</a>
|
107 |
+
</div>
|
108 |
+
</nav>
|
109 |
+
</div>
|
110 |
+
|
111 |
+
<div class="flex flex-col flex-1 overflow-hidden bg-gray-100">
|
112 |
+
<header class="bg-white border-b border-gray-100">
|
113 |
+
<div class="flex items-center justify-between px-4 py-4 sm:px-6">
|
114 |
+
<div class="flex items-center">
|
115 |
+
<button @click="sidebarOpen = !sidebarOpen" class="text-gray-500 lg:hidden focus:outline-none">
|
116 |
+
<svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
117 |
+
<path d="M4 6H20M4 12H20M4 18H11" stroke="currentColor" stroke-width="2"
|
118 |
+
stroke-linecap="round" stroke-linejoin="round" />
|
119 |
+
</svg>
|
120 |
+
</button>
|
121 |
+
|
122 |
+
<div class="relative" x-data="{ search: '' }" @click.away="search = ''">
|
123 |
+
<div class="relative mx-4 lg:mx-0">
|
124 |
+
<span class="absolute inset-y-0 left-0 flex items-center pl-3">
|
125 |
+
<svg class="w-5 h-5 text-gray-400" viewBox="0 0 24 24" fill="none">
|
126 |
+
<path
|
127 |
+
d="M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z"
|
128 |
+
stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
129 |
+
stroke-linejoin="round"></path>
|
130 |
+
</svg>
|
131 |
+
</span>
|
132 |
+
|
133 |
+
<input x-model="search" type="text"
|
134 |
+
class="w-64 h-10 py-2 pl-10 pr-4 text-gray-700 placeholder-gray-400 transition-all duration-150 bg-white border border-gray-200 rounded-md focus:w-80 sm:w-64 sm:focus:w-80 focus:border-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-40"
|
135 |
+
placeholder="Find anything...">
|
136 |
+
</div>
|
137 |
+
|
138 |
+
<div class="absolute right-0 z-20 w-full py-2 mt-2 space-y-4 overflow-hidden bg-white rounded-md shadow-xl"
|
139 |
+
x-show="search.length > 0" x-cloak
|
140 |
+
x-transition:enter="transition ease-out duration-100 transform"
|
141 |
+
x-transition:enter-start="opacity-0 scale-95"
|
142 |
+
x-transition:enter-end="opacity-100 scale-100"
|
143 |
+
x-transition:leave="transition ease-in duration-75 transform"
|
144 |
+
x-transition:leave-start="opacity-100 scale-100"
|
145 |
+
x-transition:leave-end="opacity-0 scale-95">
|
146 |
+
|
147 |
+
<div>
|
148 |
+
<h3 class="px-5 text-xs tracking-wider text-gray-500 uppercase">Projects</h3>
|
149 |
+
<div class="mt-2">
|
150 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
151 |
+
href="text_summarizer.html">
|
152 |
+
Text Summarizer
|
153 |
+
</a>
|
154 |
+
|
155 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
156 |
+
href="emotion_detection.html">
|
157 |
+
Emotion Detection
|
158 |
+
</a>
|
159 |
+
|
160 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
161 |
+
href="">
|
162 |
+
Project 3
|
163 |
+
</a>
|
164 |
+
|
165 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
166 |
+
href="">
|
167 |
+
Project 4
|
168 |
+
</a>
|
169 |
+
</div>
|
170 |
+
</div>
|
171 |
+
<div>
|
172 |
+
<h3 class="px-5 text-xs tracking-wider text-gray-500 uppercase">Other</h3>
|
173 |
+
<div class="mt-2">
|
174 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
175 |
+
href="/">
|
176 |
+
Visit Main Website
|
177 |
+
</a>
|
178 |
+
</div>
|
179 |
+
</div>
|
180 |
+
</div>
|
181 |
+
</div>
|
182 |
+
</div>
|
183 |
+
|
184 |
+
<div class="flex items-center">
|
185 |
+
<div x-data="{ dropdownOpen: false }" class="relative inline-block">
|
186 |
+
<button @click="dropdownOpen = ! dropdownOpen" class="relative z-10 flex items-center flex-shrink-0 text-sm text-gray-600 focus:outline-none">
|
187 |
+
<img class="flex-shrink-0 object-cover w-8 h-8 rounded-full" src="images/github-mark.svg" alt="github-mark">
|
188 |
+
</button>
|
189 |
+
|
190 |
+
<div class="absolute right-0 z-20 w-56 py-2 mt-2 overflow-hidden bg-white rounded-md shadow-xl rtl:right-auto rtl:left-0" x-show="dropdownOpen" x-transition:enter="transition ease-out duration-100 transform" x-transition:enter-start="opacity-0 scale-95" x-transition:enter-end="opacity-100 scale-100" x-transition:leave="transition ease-in duration-75 transform" x-transition:leave-start="opacity-100 scale-100" x-transition:leave-end="opacity-0 scale-95" @click.away="dropdownOpen = false" style="display: none;">
|
191 |
+
<a target="_blank" href="https://github.com/Djacon/text2feature" class="flex items-center p-3 -mt-2 text-sm text-gray-600 transition-colors duration-200 transform hover:bg-gray-100">
|
192 |
+
<img class="flex-shrink-0 object-cover mx-1 rounded-full w-9 h-9" src="images/github-mark.svg" alt="github-mark">
|
193 |
+
<div class="mx-1">
|
194 |
+
<h1 class="text-sm font-semibold text-gray-700">Made By Djacon</h1>
|
195 |
+
<p class="text-sm text-gray-500">github.com/Djacon</p>
|
196 |
+
</div>
|
197 |
+
</a>
|
198 |
+
</div>
|
199 |
+
</div>
|
200 |
+
</div>
|
201 |
+
</div>
|
202 |
+
</header>
|
203 |
+
|
204 |
+
<main class="flex-1 overflow-y-auto">
|
205 |
+
<div class="px-4 py-8 sm:px-6">
|
206 |
+
<div>
|
207 |
+
<h1 class="text-2xl font-medium text-gray-700 sm:text-3xl">Emotion Detection</h1>
|
208 |
+
|
209 |
+
<div class="hidden mt-3 overflow-y-auto text-sm lg:items-center lg:flex whitespace-nowrap">
|
210 |
+
<a class="text-gray-600">Pages</a>
|
211 |
+
<span class="mx-1 text-gray-500">/</span>
|
212 |
+
<a href="" class="text-indigo-600 hover:underline">Emotion_Detection</a>
|
213 |
+
</div>
|
214 |
+
</div>
|
215 |
+
|
216 |
+
<div class="mt-6">
|
217 |
+
<div class="w-full p-4 bg-white rounded-lg xl:p-6">
|
218 |
+
<h1 class="text-lg font-medium text-gray-700 capitalize sm:text-xl md:text-2xl">Upload text</h1>
|
219 |
+
|
220 |
+
<form id='sum-form' class="mt-6 space-y-5" onsubmit="return false;">
|
221 |
+
<div>
|
222 |
+
<label for="sum-type" class="block text-sm text-gray-700 capitalize">Select Type</label>
|
223 |
+
<select id="sum-type"
|
224 |
+
class="block w-full px-4 py-2.5 mt-2 text-gray-600 placeholder-gray-400 bg-white border border-gray-200 rounded-md focus:border-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-40">
|
225 |
+
<option value="sum-text">Identify Text</option>
|
226 |
+
<option value="sum-file">Identify PDF</option>
|
227 |
+
</select>
|
228 |
+
</div>
|
229 |
+
|
230 |
+
<div id="sum-text-div">
|
231 |
+
<label for="description"
|
232 |
+
class="block text-sm text-gray-700 capitalize">description</label>
|
233 |
+
<textarea id="sum-text-input" required class="block w-full px-4 py-2.5 mt-2 text-gray-600 placeholder-gray-400 bg-white border border-gray-200 rounded-md focus:border-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-40"
|
234 |
+
style="min-height: 300px;"></textarea>
|
235 |
+
</div>
|
236 |
+
|
237 |
+
<div id="sum-file-div" class="hidden">
|
238 |
+
<label for="image" class="block text-sm text-gray-700 capitalize">file</label>
|
239 |
+
<label
|
240 |
+
class="flex flex-col items-center justify-center w-full h-32 mt-2 text-gray-500 border-2 border-dashed rounded-md cursor-pointer hover:text-gray-600">
|
241 |
+
<svg class="w-8 h-8" fill="currentColor" xmlns="http://www.w3.org/2000/svg"
|
242 |
+
viewBox="0 0 20 20">
|
243 |
+
<path
|
244 |
+
d="M16.88 9.1A4 4 0 0 1 16 17H5a5 5 0 0 1-1-9.9V7a3 3 0 0 1 4.52-2.59A4.98 4.98 0 0 1 17 8c0 .38-.04.74-.12 1.1zM11 11h3l-4-4-4 4h3v3h2v-3z">
|
245 |
+
</path>
|
246 |
+
</svg>
|
247 |
+
<span class="mt-4">Select PDF File</span>
|
248 |
+
<input id="sum-file-input" type="file" class="hidden">
|
249 |
+
</label>
|
250 |
+
</div>
|
251 |
+
|
252 |
+
<div id="sum-video-div" class="hidden">
|
253 |
+
<label for="video" class="block text-sm text-gray-700 capitalize">Youtube link</label>
|
254 |
+
<input id="sum-video-input" placeholder="https://www.youtube.com/watch?v=dQw4w9WgXcQ" type="url"
|
255 |
+
class="block w-full px-4 py-2.5 mt-2 text-gray-600 placeholder-gray-400 bg-white border border-gray-200 rounded-md focus:border-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-40">
|
256 |
+
</div>
|
257 |
+
<p id='sum-err' class="hidden mt-2 text-sm text-red-500">Your password is too short.</p>
|
258 |
+
|
259 |
+
<div class="flex justify-end">
|
260 |
+
<button id="submit" type="button" class="w-full flex items-center justify-center px-2 py-2 text-sm font-medium tracking-wide text-white capitalize transition-colors duration-200 transform bg-indigo-500 rounded-md hover:bg-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-50">
|
261 |
+
<svg width="24px" height="24px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
262 |
+
<g id="SVGRepo_bgCarrier" stroke-width="0"></g>
|
263 |
+
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g>
|
264 |
+
<g id="SVGRepo_iconCarrier">
|
265 |
+
<path d="M7 10L12 15L17 10" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
266 |
+
</g>
|
267 |
+
</svg>
|
268 |
+
<span class="mx-1">Detect</span>
|
269 |
+
</button>
|
270 |
+
</div>
|
271 |
+
</form>
|
272 |
+
</div>
|
273 |
+
|
274 |
+
<div class="w-full p-4 mt-8 bg-white rounded-lg xl:p-6">
|
275 |
+
<h1 class="text-lg font-medium text-gray-700 capitalize sm:text-xl md:text-2xl">Result</h1>
|
276 |
+
|
277 |
+
<div class="md:flex gap-8">
|
278 |
+
<div class="w-full md:w-1/2 grid-cols-2 mt-6">
|
279 |
+
<label for="description"
|
280 |
+
class="block text-sm text-gray-700 capitalize">Extracted Text</label>
|
281 |
+
<textarea disabled id="extracted-text"
|
282 |
+
class="minh-text block w-full px-4 py-2.5 mt-2 text-gray-600 placeholder-gray-400 bg-white border border-gray-200 rounded-md focus:border-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-40"
|
283 |
+
style="min-height: 250px;"></textarea>
|
284 |
+
</div>
|
285 |
+
|
286 |
+
<div class="w-full md:w-1/2 grid-cols-2 mt-6">
|
287 |
+
<label for="description"
|
288 |
+
class="block text-sm text-gray-700 capitalize">Emotion Prediction</label>
|
289 |
+
<textarea disabled id="summarized-text"
|
290 |
+
class="minh-text block w-full px-4 py-2.5 mt-2 text-gray-600 placeholder-gray-400 bg-white border border-gray-200 rounded-md focus:border-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-40"
|
291 |
+
style="min-height: 250px;"></textarea>
|
292 |
+
</div>
|
293 |
+
</div>
|
294 |
+
</div>
|
295 |
+
</div>
|
296 |
+
</div>
|
297 |
+
</main>
|
298 |
+
</div>
|
299 |
+
</div>
|
300 |
+
|
301 |
+
<script src="js/detection.js"></script>
|
302 |
+
</body>
|
303 |
+
</html>
|
static/images/github-mark.svg
ADDED
static/images/logo.svg
ADDED
static/index.html
ADDED
@@ -0,0 +1,781 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
|
4 |
+
<head>
|
5 |
+
<meta charset="utf-8">
|
6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
7 |
+
<link rel="canonical" href="">
|
8 |
+
<title>Text2Feature | Homepage</title>
|
9 |
+
<link rel="stylesheet" href="css/main.css">
|
10 |
+
<link rel="icon" type="image/svg+xml" href="images/logo.svg">
|
11 |
+
<script defer src="js/main.js"></script>
|
12 |
+
</head>
|
13 |
+
|
14 |
+
<body class="overflow-hidden">
|
15 |
+
<!-- Google tag (gtag.js) -->
|
16 |
+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-B751Q3XBFC"></script>
|
17 |
+
<script>
|
18 |
+
window.dataLayer = window.dataLayer || [];
|
19 |
+
function gtag(){dataLayer.push(arguments);}
|
20 |
+
gtag('js', new Date());
|
21 |
+
|
22 |
+
gtag('config', 'G-B751Q3XBFC');
|
23 |
+
</script>
|
24 |
+
|
25 |
+
<div x-data="{ sidebarOpen: false }" class="relative flex h-screen text-gray-800 bg-white font-roboto">
|
26 |
+
<div x-cloak :class="sidebarOpen ? 'block' : 'hidden'" @click="sidebarOpen = false"
|
27 |
+
class="fixed inset-0 z-20 transition-opacity bg-black opacity-50 lg:hidden"></div>
|
28 |
+
|
29 |
+
<div x-cloak :class="sidebarOpen ? 'translate-x-0 ease-in' : '-translate-x-full ease-out'"
|
30 |
+
class="fixed inset-y-0 left-0 z-30 w-64 px-4 overflow-y-auto transition duration-200 transform bg-white border-r border-gray-100 lg:translate-x-0 lg:relative lg:inset-0 ">
|
31 |
+
<div class="mt-8">
|
32 |
+
<a href="index.html" class="flex items-center">
|
33 |
+
<img class="w-auto h-6" src="images/logo.svg" alt="logo">
|
34 |
+
<span class="mx-3 mt-1 font-medium text-lg">Text2<span class="text-indigo-600">Feature</span></span>
|
35 |
+
</a>
|
36 |
+
</div>
|
37 |
+
|
38 |
+
<hr class="my-6 border-gray-100">
|
39 |
+
|
40 |
+
<nav class="space-y-8">
|
41 |
+
<div class="space-y-4">
|
42 |
+
<h3 class="px-4 text-sm tracking-wider text-gray-400 uppercase">PAGES</h3>
|
43 |
+
|
44 |
+
<a class="flex items-center px-4 py-2 text-gray-600 transition-colors duration-200 transform bg-gray-200 rounded-lg bg-opacity-40"
|
45 |
+
href="index.html">
|
46 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none" viewBox="0 0 24 24"
|
47 |
+
stroke="currentColor">
|
48 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
49 |
+
d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" />
|
50 |
+
</svg>
|
51 |
+
<span class="mx-3 font-medium capitalize">Homepage</span>
|
52 |
+
</a>
|
53 |
+
|
54 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
55 |
+
href="text_summarizer.html">
|
56 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none" viewBox="0 0 24 24"
|
57 |
+
stroke="currentColor" stroke-width="2">
|
58 |
+
<path stroke-linecap="round" stroke-linejoin="round"
|
59 |
+
d="M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4" />
|
60 |
+
</svg>
|
61 |
+
<span class="mx-3 font-medium capitalize">Text Summarizer</span>
|
62 |
+
</a>
|
63 |
+
|
64 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
65 |
+
href="emotion_detection.html">
|
66 |
+
<svg width="24px" height="24px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
67 |
+
<path d="M9 16C9.85038 16.6303 10.8846 17 12 17C13.1154 17 14.1496 16.6303 15 16" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"/>
|
68 |
+
<path d="M16 10.5C16 11.3284 15.5523 12 15 12C14.4477 12 14 11.3284 14 10.5C14 9.67157 14.4477 9 15 9C15.5523 9 16 9.67157 16 10.5Z" fill="#1C274C"/>
|
69 |
+
<ellipse cx="9" cy="10.5" rx="1" ry="1.5" fill="#1C274C"/>
|
70 |
+
<path d="M7 3.33782C8.47087 2.48697 10.1786 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 10.1786 2.48697 8.47087 3.33782 7" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"/>
|
71 |
+
</svg>
|
72 |
+
<span class="mx-3 font-medium capitalize">Emotion Detection</span>
|
73 |
+
</a>
|
74 |
+
|
75 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
76 |
+
href="">
|
77 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none" viewBox="0 0 24 24"
|
78 |
+
stroke="currentColor">
|
79 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
80 |
+
d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" />
|
81 |
+
</svg>
|
82 |
+
<span class="mx-3 font-medium capitalize">Project 3</span>
|
83 |
+
</a>
|
84 |
+
|
85 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
86 |
+
href="">
|
87 |
+
<svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
88 |
+
<path
|
89 |
+
d="M13 10V14H19V10H13ZM11 10H5V14H11V10ZM13 19H19V16H13V19ZM11 19V16H5V19H11ZM13 5V8H19V5H13ZM11 5H5V8H11V5ZM19 3C20.1046 3 21 3.89543 21 5V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19V5C3 3.89543 3.89543 3 5 3H19Z"
|
90 |
+
fill="currentColor"></path>
|
91 |
+
</svg>
|
92 |
+
<span class="mx-3 font-medium capitalize">Project 4</span>
|
93 |
+
</a>
|
94 |
+
</div>
|
95 |
+
|
96 |
+
<div class="space-y-4">
|
97 |
+
<h3 class="px-4 text-sm tracking-wider text-gray-400 uppercase">OTHER</h3>
|
98 |
+
|
99 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
100 |
+
href="/">
|
101 |
+
<svg width="24" height="24" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
|
102 |
+
<path
|
103 |
+
d="M474.89,300.41a121.43,121.43,0,0,1-121.3,121.3H247.08V392.13H353.59a91.72,91.72,0,1,0,0-183.44H87.53L151,272.2l-20.92,20.92L30.89,193.9l99.22-99.22L151,115.6l-63.5,63.51H353.59A121.43,121.43,0,0,1,474.89,300.41Z" />
|
104 |
+
</svg>
|
105 |
+
<span class="mx-3 font-medium">Visit Main Website</span>
|
106 |
+
</a>
|
107 |
+
</div>
|
108 |
+
</nav>
|
109 |
+
</div>
|
110 |
+
|
111 |
+
<div class="flex flex-col flex-1 overflow-hidden bg-gray-100">
|
112 |
+
<header class="bg-white border-b border-gray-100">
|
113 |
+
<div class="flex items-center justify-between px-4 py-4 sm:px-6">
|
114 |
+
<div class="flex items-center">
|
115 |
+
<button @click="sidebarOpen = !sidebarOpen" class="text-gray-500 lg:hidden focus:outline-none">
|
116 |
+
<svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
117 |
+
<path d="M4 6H20M4 12H20M4 18H11" stroke="currentColor" stroke-width="2"
|
118 |
+
stroke-linecap="round" stroke-linejoin="round" />
|
119 |
+
</svg>
|
120 |
+
</button>
|
121 |
+
|
122 |
+
<div class="relative" x-data="{ search: '' }" @click.away="search = ''">
|
123 |
+
<div class="relative mx-4 lg:mx-0">
|
124 |
+
<span class="absolute inset-y-0 left-0 flex items-center pl-3">
|
125 |
+
<svg class="w-5 h-5 text-gray-400" viewBox="0 0 24 24" fill="none">
|
126 |
+
<path
|
127 |
+
d="M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z"
|
128 |
+
stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
129 |
+
stroke-linejoin="round"></path>
|
130 |
+
</svg>
|
131 |
+
</span>
|
132 |
+
|
133 |
+
<input x-model="search" type="text"
|
134 |
+
class="w-64 h-10 py-2 pl-10 pr-4 text-gray-700 placeholder-gray-400 transition-all duration-150 bg-white border border-gray-200 rounded-md focus:w-80 sm:w-64 sm:focus:w-80 focus:border-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-40"
|
135 |
+
placeholder="Find anything...">
|
136 |
+
</div>
|
137 |
+
|
138 |
+
<div class="absolute right-0 z-20 w-full py-2 mt-2 space-y-4 overflow-hidden bg-white rounded-md shadow-xl"
|
139 |
+
x-show="search.length > 0" x-cloak
|
140 |
+
x-transition:enter="transition ease-out duration-100 transform"
|
141 |
+
x-transition:enter-start="opacity-0 scale-95"
|
142 |
+
x-transition:enter-end="opacity-100 scale-100"
|
143 |
+
x-transition:leave="transition ease-in duration-75 transform"
|
144 |
+
x-transition:leave-start="opacity-100 scale-100"
|
145 |
+
x-transition:leave-end="opacity-0 scale-95">
|
146 |
+
|
147 |
+
<div>
|
148 |
+
<h3 class="px-5 text-xs tracking-wider text-gray-500 uppercase">Projects</h3>
|
149 |
+
<div class="mt-2">
|
150 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
151 |
+
href="text_summarizer.html">
|
152 |
+
Text Summarizer
|
153 |
+
</a>
|
154 |
+
|
155 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
156 |
+
href="emotion_detection.html">
|
157 |
+
Emotion Detection
|
158 |
+
</a>
|
159 |
+
|
160 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
161 |
+
href="">
|
162 |
+
Project 3
|
163 |
+
</a>
|
164 |
+
|
165 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
166 |
+
href="">
|
167 |
+
Project 4
|
168 |
+
</a>
|
169 |
+
</div>
|
170 |
+
</div>
|
171 |
+
<div>
|
172 |
+
<h3 class="px-5 text-xs tracking-wider text-gray-500 uppercase">Other</h3>
|
173 |
+
<div class="mt-2">
|
174 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
175 |
+
href="/">
|
176 |
+
Visit Main Website
|
177 |
+
</a>
|
178 |
+
</div>
|
179 |
+
</div>
|
180 |
+
</div>
|
181 |
+
</div>
|
182 |
+
</div>
|
183 |
+
|
184 |
+
<div class="flex items-center">
|
185 |
+
<div x-data="{ dropdownOpen: false }" class="relative inline-block">
|
186 |
+
<button @click="dropdownOpen = ! dropdownOpen" class="relative z-10 flex items-center flex-shrink-0 text-sm text-gray-600 focus:outline-none">
|
187 |
+
<img class="flex-shrink-0 object-cover w-8 h-8 rounded-full" src="images/github-mark.svg" alt="github-mark">
|
188 |
+
</button>
|
189 |
+
|
190 |
+
<div class="absolute right-0 z-20 w-56 py-2 mt-2 overflow-hidden bg-white rounded-md shadow-xl rtl:right-auto rtl:left-0" x-show="dropdownOpen" x-transition:enter="transition ease-out duration-100 transform" x-transition:enter-start="opacity-0 scale-95" x-transition:enter-end="opacity-100 scale-100" x-transition:leave="transition ease-in duration-75 transform" x-transition:leave-start="opacity-100 scale-100" x-transition:leave-end="opacity-0 scale-95" @click.away="dropdownOpen = false" style="display: none;">
|
191 |
+
<a target="_blank" href="https://github.com/Djacon/text2feature" class="flex items-center p-3 -mt-2 text-sm text-gray-600 transition-colors duration-200 transform hover:bg-gray-100">
|
192 |
+
<img class="flex-shrink-0 object-cover mx-1 rounded-full w-9 h-9" src="images/github-mark.svg" alt="github-mark">
|
193 |
+
<div class="mx-1">
|
194 |
+
<h1 class="text-sm font-semibold text-gray-700">Made By Djacon</h1>
|
195 |
+
<p class="text-sm text-gray-500">github.com/Djacon</p>
|
196 |
+
</div>
|
197 |
+
</a>
|
198 |
+
</div>
|
199 |
+
</div>
|
200 |
+
</div>
|
201 |
+
</div>
|
202 |
+
</header>
|
203 |
+
|
204 |
+
<main class="flex-1 overflow-y-auto">
|
205 |
+
<div class="px-4 py-8 sm:px-6">
|
206 |
+
<div>
|
207 |
+
<h1 class="text-2xl font-medium text-gray-700 sm:text-3xl">Homepage</h1>
|
208 |
+
|
209 |
+
<div class="hidden mt-3 overflow-y-auto text-sm lg:items-center lg:flex whitespace-nowrap">
|
210 |
+
<a class="text-gray-600">Pages</a>
|
211 |
+
<span class="mx-1 text-gray-500">/</span>
|
212 |
+
<a href="" class="text-indigo-600 hover:underline">Homepage</a>
|
213 |
+
</div>
|
214 |
+
</div>
|
215 |
+
|
216 |
+
<div class="mt-6">
|
217 |
+
<section class="grid grid-cols-1 gap-6 sm:grid-cols-2 xl:grid-cols-4">
|
218 |
+
<div class="flex items-center justify-between px-6 py-3 bg-white rounded-lg shadow-sm">
|
219 |
+
<div>
|
220 |
+
<p class="font-medium text-gray-500">Todayβs Users</p>
|
221 |
+
|
222 |
+
<div class="flex items-end">
|
223 |
+
<h2 class="mt-1 text-2xl font-medium text-gray-800">23</h2>
|
224 |
+
<span class="mx-2 text-indigo-500">
|
225 |
+
+55%
|
226 |
+
</span>
|
227 |
+
</div>
|
228 |
+
</div>
|
229 |
+
|
230 |
+
<div class="p-2 text-white bg-indigo-500 rounded-lg">
|
231 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none"
|
232 |
+
viewBox="0 0 24 24" stroke="currentColor">
|
233 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
234 |
+
d="M17 9V7a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2m2 4h10a2 2 0 002-2v-6a2 2 0 00-2-2H9a2 2 0 00-2 2v6a2 2 0 002 2zm7-5a2 2 0 11-4 0 2 2 0 014 0z" />
|
235 |
+
</svg>
|
236 |
+
</div>
|
237 |
+
</div>
|
238 |
+
|
239 |
+
<div class="flex items-center justify-between px-6 py-3 bg-white rounded-lg shadow-sm">
|
240 |
+
<div>
|
241 |
+
<p class="font-medium text-gray-500">Total Users</p>
|
242 |
+
|
243 |
+
<div class="flex items-end">
|
244 |
+
<h2 class="mt-1 text-2xl font-medium text-gray-800">54</h2>
|
245 |
+
<span class="mx-2 text-indigo-500">
|
246 |
+
+5%
|
247 |
+
</span>
|
248 |
+
</div>
|
249 |
+
</div>
|
250 |
+
|
251 |
+
<div class="p-2 text-white bg-indigo-500 rounded-lg">
|
252 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none"
|
253 |
+
viewBox="0 0 24 24" stroke="currentColor">
|
254 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
255 |
+
d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
|
256 |
+
</svg>
|
257 |
+
</div>
|
258 |
+
</div>
|
259 |
+
|
260 |
+
<div class="flex items-center justify-between px-6 py-3 bg-white rounded-lg shadow-sm">
|
261 |
+
<div>
|
262 |
+
<p class="font-medium text-gray-500">New Users</p>
|
263 |
+
|
264 |
+
<div class="flex items-end">
|
265 |
+
<h2 class="mt-1 text-2xl font-medium text-gray-800">+15</h2>
|
266 |
+
<span class="mx-2 text-green-500">
|
267 |
+
+34%
|
268 |
+
</span>
|
269 |
+
</div>
|
270 |
+
</div>
|
271 |
+
|
272 |
+
<div class="p-2 text-white bg-indigo-500 rounded-lg">
|
273 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none"
|
274 |
+
viewBox="0 0 24 24" stroke="currentColor">
|
275 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
276 |
+
d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" />
|
277 |
+
</svg>
|
278 |
+
</div>
|
279 |
+
</div>
|
280 |
+
|
281 |
+
<div class="flex items-center justify-between px-6 py-3 bg-white rounded-lg shadow-sm">
|
282 |
+
<div>
|
283 |
+
<p class="font-medium text-gray-500">Total Projects</p>
|
284 |
+
|
285 |
+
<div class="flex items-end">
|
286 |
+
<h2 class="mt-1 text-2xl font-medium text-gray-800">2</h2>
|
287 |
+
</div>
|
288 |
+
</div>
|
289 |
+
|
290 |
+
<div class="p-2 text-white bg-indigo-500 rounded-lg">
|
291 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none"
|
292 |
+
viewBox="0 0 24 24" stroke="currentColor">
|
293 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
294 |
+
d="M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z" />
|
295 |
+
</svg>
|
296 |
+
</div>
|
297 |
+
</div>
|
298 |
+
</section>
|
299 |
+
|
300 |
+
<section class="mt-6 space-y-6">
|
301 |
+
<div class="w-full p-4 bg-white rounded-lg xl:p-6">
|
302 |
+
<h1 class="text-lg font-medium text-gray-700 sm:text-xl md:text-2xl">
|
303 |
+
Welcome to Text2<span class="text-indigo-600">Feature</span>!
|
304 |
+
</h1>
|
305 |
+
<p class="mt-4 text-gray-800">
|
306 |
+
β your gateway to the world of text processing and analysis! Our tools empower you to
|
307 |
+
easily and swiftly process textual information from any source, be it files, web pages, or text data. We provide
|
308 |
+
you with powerful instruments to search for and extract key 'features' within text, aiding you in extracting
|
309 |
+
valuable insights and making informed decisions.
|
310 |
+
</p>
|
311 |
+
<p class="mt-4 text-gray-800">
|
312 |
+
With Text2Feature, you can:
|
313 |
+
</p>
|
314 |
+
<ul class="mt-2 text-gray-800" style="list-style-type: disc; list-style-position: inside;">
|
315 |
+
<li>Import and analyze text files in various formats.</li>
|
316 |
+
<li>Search for and highlight important features within text for further exploration.</li>
|
317 |
+
<li>Structure and organize your textual content for more effective analysis.</li>
|
318 |
+
<li>Utilize a range of tools and methods for text processing and knowledge extraction.</li>
|
319 |
+
</ul>
|
320 |
+
<p class="mt-4 text-gray-800">
|
321 |
+
Join Text2Feature and transform text into valuable knowledge effortlessly. Get started now and bring your
|
322 |
+
research and analytical ideas to life!
|
323 |
+
</p>
|
324 |
+
</div>
|
325 |
+
</section>
|
326 |
+
|
327 |
+
<!-- <section class="mt-6 space-y-6">
|
328 |
+
<div class="w-full p-4 bg-white rounded-lg xl:p-6">
|
329 |
+
<div class="mb-5 rounded-lg bg-gradient-to-r from-indigo-900 to-gray-900">
|
330 |
+
<canvas id="barChart" height="80"></canvas>
|
331 |
+
</div>
|
332 |
+
|
333 |
+
<div>
|
334 |
+
<h1 class="text-lg font-medium text-gray-700 capitalize sm:text-xl md:text-2xl">
|
335 |
+
active users</h1>
|
336 |
+
|
337 |
+
<p class="mt-2 text-gray-500">
|
338 |
+
<span class="text-green-500">(+10)</span> than last week
|
339 |
+
</p>
|
340 |
+
|
341 |
+
<div class="grid gap-12 mt-8 sm:grid-cols-2 md:grid-cols-4">
|
342 |
+
<div>
|
343 |
+
<div class="flex items-center capitalize">
|
344 |
+
<div class="p-2 text-white bg-indigo-500 rounded-lg">
|
345 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none"
|
346 |
+
viewBox="0 0 24 24" stroke="currentColor">
|
347 |
+
<path stroke-linecap="round" stroke-linejoin="round"
|
348 |
+
stroke-width="2"
|
349 |
+
d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z" />
|
350 |
+
</svg>
|
351 |
+
</div>
|
352 |
+
|
353 |
+
<div class="mx-3 font-medium text-gray-500 ">users</div>
|
354 |
+
</div>
|
355 |
+
|
356 |
+
<div class="mt-3">
|
357 |
+
<h1 class="text-xl font-semibold text-gray-600">23,212</h1>
|
358 |
+
|
359 |
+
<div class="w-full mt-3 overflow-hidden bg-gray-200 rounded-full">
|
360 |
+
<div class="w-8/12 h-1 bg-indigo-500"></div>
|
361 |
+
</div>
|
362 |
+
</div>
|
363 |
+
</div>
|
364 |
+
|
365 |
+
<div>
|
366 |
+
<div class="flex items-center capitalize">
|
367 |
+
<div class="p-2 text-white bg-indigo-500 rounded-lg">
|
368 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none"
|
369 |
+
viewBox="0 0 24 24" stroke="currentColor">
|
370 |
+
<path stroke-linecap="round" stroke-linejoin="round"
|
371 |
+
stroke-width="2"
|
372 |
+
d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122" />
|
373 |
+
</svg>
|
374 |
+
</div>
|
375 |
+
|
376 |
+
<div class="mx-3 font-medium text-gray-500 ">Clicks</div>
|
377 |
+
</div>
|
378 |
+
|
379 |
+
<div class="mt-3">
|
380 |
+
<h1 class="text-xl font-semibold text-gray-600">3,125m</h1>
|
381 |
+
|
382 |
+
<div class="w-full mt-3 overflow-hidden bg-gray-200 rounded-full">
|
383 |
+
<div class="w-11/12 h-1 bg-indigo-500"></div>
|
384 |
+
</div>
|
385 |
+
</div>
|
386 |
+
</div>
|
387 |
+
|
388 |
+
<div>
|
389 |
+
<div class="flex items-center capitalize">
|
390 |
+
<div class="p-2 text-white bg-indigo-500 rounded-lg">
|
391 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none"
|
392 |
+
viewBox="0 0 24 24" stroke="currentColor">
|
393 |
+
<path stroke-linecap="round" stroke-linejoin="round"
|
394 |
+
stroke-width="2"
|
395 |
+
d="M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z" />
|
396 |
+
</svg>
|
397 |
+
</div>
|
398 |
+
|
399 |
+
<div class="mx-3 font-medium text-gray-500 ">Sales</div>
|
400 |
+
</div>
|
401 |
+
|
402 |
+
<div class="mt-3">
|
403 |
+
<h1 class="text-xl font-semibold text-gray-600">$89,000</h1>
|
404 |
+
|
405 |
+
<div class="w-full mt-3 overflow-hidden bg-gray-200 rounded-full">
|
406 |
+
<div class="w-5/6 h-1 bg-indigo-500"></div>
|
407 |
+
</div>
|
408 |
+
</div>
|
409 |
+
</div>
|
410 |
+
|
411 |
+
<div>
|
412 |
+
<div class="flex items-center capitalize">
|
413 |
+
<div class="p-2 text-white bg-indigo-500 rounded-lg">
|
414 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none"
|
415 |
+
viewBox="0 0 24 24" stroke="currentColor">
|
416 |
+
<path stroke-linecap="round" stroke-linejoin="round"
|
417 |
+
stroke-width="2"
|
418 |
+
d="M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4" />
|
419 |
+
</svg>
|
420 |
+
</div>
|
421 |
+
|
422 |
+
<div class="mx-3 font-medium text-gray-500 ">Items</div>
|
423 |
+
</div>
|
424 |
+
|
425 |
+
<div class="mt-3">
|
426 |
+
<h1 class="text-xl font-semibold text-gray-600">260</h1>
|
427 |
+
|
428 |
+
<div class="w-full mt-3 overflow-hidden bg-gray-200 rounded-full">
|
429 |
+
<div class="w-2/3 h-1 bg-indigo-500"></div>
|
430 |
+
</div>
|
431 |
+
</div>
|
432 |
+
</div>
|
433 |
+
</div>
|
434 |
+
</div>
|
435 |
+
</div>
|
436 |
+
</section> -->
|
437 |
+
|
438 |
+
<!-- <section class="mt-6 space-y-6 xl:flex xl:space-y-0 xl:-mx-3">
|
439 |
+
<div class="w-full p-4 bg-white rounded-lg shadow-sm xl:mx-3 xl:w-2/3 xl:p-6">
|
440 |
+
<h2 class="text-lg font-medium text-gray-700 capitalize sm:text-xl md:text-2xl">Projects</h2>
|
441 |
+
|
442 |
+
<p class="flex items-center mt-2 text-gray-500">
|
443 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 text-green-500"
|
444 |
+
viewBox="0 0 20 20" fill="currentColor">
|
445 |
+
<path fill-rule="evenodd"
|
446 |
+
d="M6.267 3.455a3.066 3.066 0 001.745-.723 3.066 3.066 0 013.976 0 3.066 3.066 0 001.745.723 3.066 3.066 0 012.812 2.812c.051.643.304 1.254.723 1.745a3.066 3.066 0 010 3.976 3.066 3.066 0 00-.723 1.745 3.066 3.066 0 01-2.812 2.812 3.066 3.066 0 00-1.745.723 3.066 3.066 0 01-3.976 0 3.066 3.066 0 00-1.745-.723 3.066 3.066 0 01-2.812-2.812 3.066 3.066 0 00-.723-1.745 3.066 3.066 0 010-3.976 3.066 3.066 0 00.723-1.745 3.066 3.066 0 012.812-2.812zm7.44 5.252a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z"
|
447 |
+
clip-rule="evenodd" />
|
448 |
+
</svg>
|
449 |
+
|
450 |
+
<span class="mx-2">30 done this month</span>
|
451 |
+
</p>
|
452 |
+
|
453 |
+
<div class="flex flex-col mt-8">
|
454 |
+
<div class="overflow-x-auto">
|
455 |
+
<div class="inline-block min-w-full align-middle">
|
456 |
+
<div class="overflow-hidden">
|
457 |
+
<table class="min-w-full divide-y divide-gray-200">
|
458 |
+
<thead>
|
459 |
+
<tr>
|
460 |
+
<th scope="col"
|
461 |
+
class="px-6 py-3 text-sm font-medium tracking-wider text-left text-gray-500 uppercase rtl:text-right">
|
462 |
+
<span>COMPANIES</span>
|
463 |
+
</th>
|
464 |
+
<th scope="col"
|
465 |
+
class="px-6 py-3 text-sm font-medium tracking-wider text-left text-gray-500 uppercase rtl:text-right">
|
466 |
+
<span>MEMBERS</span>
|
467 |
+
</th>
|
468 |
+
<th scope="col"
|
469 |
+
class="px-6 py-3 text-sm font-medium tracking-wider text-left text-gray-500 uppercase rtl:text-right">
|
470 |
+
<span>BUDGET</span>
|
471 |
+
</th>
|
472 |
+
<th scope="col"
|
473 |
+
class="px-6 py-3 text-sm font-medium tracking-wider text-left text-gray-500 uppercase rtl:text-right">
|
474 |
+
<span>COMPLETION</span>
|
475 |
+
</th>
|
476 |
+
</tr>
|
477 |
+
</thead>
|
478 |
+
|
479 |
+
<tbody class="bg-white divide-y divide-gray-200">
|
480 |
+
<tr>
|
481 |
+
<td
|
482 |
+
class="px-6 py-4 font-medium text-gray-800 whitespace-nowrap">
|
483 |
+
Chakra Soft UI Version
|
484 |
+
</td>
|
485 |
+
|
486 |
+
<td class="px-6 py-4 font-medium whitespace-nowrap">
|
487 |
+
<div
|
488 |
+
class="relative z-0 flex -space-x-1 overflow-hidden">
|
489 |
+
<img class="relative z-30 inline-block w-6 h-6 rounded-full ring-2 ring-white"
|
490 |
+
src="https://images.unsplash.com/photo-1491528323818-fdd1faba62cc?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
|
491 |
+
alt="">
|
492 |
+
<img class="relative z-20 inline-block w-6 h-6 rounded-full ring-2 ring-white"
|
493 |
+
src="https://images.unsplash.com/photo-1550525811-e5869dd03032?ixlib=rb-1.2.1&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
|
494 |
+
alt="">
|
495 |
+
<img class="relative z-10 inline-block w-6 h-6 rounded-full ring-2 ring-white"
|
496 |
+
src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2.25&w=256&h=256&q=80"
|
497 |
+
alt="">
|
498 |
+
<img class="relative z-0 inline-block w-6 h-6 rounded-full ring-2 ring-white"
|
499 |
+
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
|
500 |
+
alt="">
|
501 |
+
</div>
|
502 |
+
</td>
|
503 |
+
|
504 |
+
<td
|
505 |
+
class="px-6 py-4 font-medium text-gray-700 whitespace-nowrap">
|
506 |
+
$128.00
|
507 |
+
</td>
|
508 |
+
|
509 |
+
<td
|
510 |
+
class="px-6 py-4 text-gray-700 capitalize whitespace-nowrap">
|
511 |
+
<span class="font-medium text-indigo-500">66%</span>
|
512 |
+
<div
|
513 |
+
class="w-full h-2 overflow-hidden bg-gray-200 rounded-full">
|
514 |
+
<div class="w-8/12 h-full bg-indigo-500"></div>
|
515 |
+
</div>
|
516 |
+
</td>
|
517 |
+
</tr>
|
518 |
+
|
519 |
+
<tr>
|
520 |
+
<td
|
521 |
+
class="px-6 py-4 font-medium text-gray-800 whitespace-nowrap">
|
522 |
+
Add Progress Track
|
523 |
+
</td>
|
524 |
+
|
525 |
+
<td class="px-6 py-4 font-medium whitespace-nowrap">
|
526 |
+
<div
|
527 |
+
class="relative z-0 flex -space-x-1 overflow-hidden">
|
528 |
+
<img class="relative z-30 inline-block w-6 h-6 rounded-full ring-2 ring-white"
|
529 |
+
src="https://images.unsplash.com/photo-1491528323818-fdd1faba62cc?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
|
530 |
+
alt="">
|
531 |
+
<img class="relative z-10 inline-block w-6 h-6 rounded-full ring-2 ring-white"
|
532 |
+
src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2.25&w=256&h=256&q=80"
|
533 |
+
alt="">
|
534 |
+
<img class="relative z-0 inline-block w-6 h-6 rounded-full ring-2 ring-white"
|
535 |
+
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
|
536 |
+
alt="">
|
537 |
+
</div>
|
538 |
+
</td>
|
539 |
+
|
540 |
+
<td
|
541 |
+
class="px-6 py-4 font-medium text-gray-700 whitespace-nowrap">
|
542 |
+
$220.00
|
543 |
+
</td>
|
544 |
+
|
545 |
+
<td
|
546 |
+
class="px-6 py-4 text-gray-700 capitalize whitespace-nowrap">
|
547 |
+
<span class="font-medium text-indigo-500">25%</span>
|
548 |
+
<div
|
549 |
+
class="w-full h-2 overflow-hidden bg-gray-200 rounded-full">
|
550 |
+
<div class="w-3/12 h-full bg-indigo-500 "></div>
|
551 |
+
</div>
|
552 |
+
</td>
|
553 |
+
</tr>
|
554 |
+
|
555 |
+
<tr>
|
556 |
+
<td
|
557 |
+
class="px-6 py-4 font-medium text-gray-800 whitespace-nowrap">
|
558 |
+
Fix Platform Errors
|
559 |
+
</td>
|
560 |
+
|
561 |
+
<td class="px-6 py-4 font-medium whitespace-nowrap">
|
562 |
+
<div
|
563 |
+
class="relative z-0 flex -space-x-1 overflow-hidden">
|
564 |
+
<img class="relative z-10 inline-block w-6 h-6 rounded-full ring-2 ring-white"
|
565 |
+
src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2.25&w=256&h=256&q=80"
|
566 |
+
alt="">
|
567 |
+
<img class="relative z-0 inline-block w-6 h-6 rounded-full ring-2 ring-white"
|
568 |
+
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
|
569 |
+
alt="">
|
570 |
+
</div>
|
571 |
+
</td>
|
572 |
+
|
573 |
+
<td
|
574 |
+
class="px-6 py-4 font-medium text-gray-700 whitespace-nowrap">
|
575 |
+
$89.00
|
576 |
+
</td>
|
577 |
+
|
578 |
+
<td
|
579 |
+
class="px-6 py-4 text-gray-700 capitalize whitespace-nowrap">
|
580 |
+
<span class="font-medium text-indigo-500">100%</span>
|
581 |
+
<div
|
582 |
+
class="w-full h-2 overflow-hidden bg-gray-200 rounded-full">
|
583 |
+
<div class="w-full h-full bg-indigo-500"></div>
|
584 |
+
</div>
|
585 |
+
</td>
|
586 |
+
</tr>
|
587 |
+
|
588 |
+
<tr>
|
589 |
+
<td
|
590 |
+
class="px-6 py-4 font-medium text-gray-800 whitespace-nowrap">
|
591 |
+
Chakra Soft UI Version
|
592 |
+
</td>
|
593 |
+
|
594 |
+
<td class="px-6 py-4 font-medium whitespace-nowrap">
|
595 |
+
<div
|
596 |
+
class="relative z-0 flex -space-x-1 overflow-hidden">
|
597 |
+
<img class="relative z-40 inline-block w-6 h-6 rounded-full ring-2 ring-white"
|
598 |
+
src="https://images.unsplash.com/photo-1570295999919-56ceb5ecca61?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=880&q=80"
|
599 |
+
alt="">
|
600 |
+
<img class="relative z-30 inline-block w-6 h-6 rounded-full ring-2 ring-white"
|
601 |
+
src="https://images.unsplash.com/photo-1491528323818-fdd1faba62cc?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
|
602 |
+
alt="">
|
603 |
+
<img class="relative z-20 inline-block w-6 h-6 rounded-full ring-2 ring-white"
|
604 |
+
src="https://images.unsplash.com/photo-1550525811-e5869dd03032?ixlib=rb-1.2.1&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
|
605 |
+
alt="">
|
606 |
+
<img class="relative z-10 inline-block w-6 h-6 rounded-full ring-2 ring-white"
|
607 |
+
src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2.25&w=256&h=256&q=80"
|
608 |
+
alt="">
|
609 |
+
<img class="relative z-0 inline-block w-6 h-6 rounded-full ring-2 ring-white"
|
610 |
+
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
|
611 |
+
alt="">
|
612 |
+
</div>
|
613 |
+
</td>
|
614 |
+
|
615 |
+
<td
|
616 |
+
class="px-6 py-4 font-medium text-gray-700 whitespace-nowrap">
|
617 |
+
$256.00
|
618 |
+
</td>
|
619 |
+
|
620 |
+
<td
|
621 |
+
class="px-6 py-4 text-gray-700 capitalize whitespace-nowrap">
|
622 |
+
<span class="font-medium text-indigo-500">75%</span>
|
623 |
+
<div
|
624 |
+
class="w-full h-2 overflow-hidden bg-gray-200 rounded-full">
|
625 |
+
<div class="w-9/12 h-full bg-indigo-500 "></div>
|
626 |
+
</div>
|
627 |
+
</td>
|
628 |
+
</tr>
|
629 |
+
</tbody>
|
630 |
+
</table>
|
631 |
+
</div>
|
632 |
+
</div>
|
633 |
+
</div>
|
634 |
+
</div>
|
635 |
+
</div>
|
636 |
+
|
637 |
+
<div class="w-full p-4 bg-white rounded-lg shadow-sm xl:mx-3 xl:w-1/3 xl:p-6">
|
638 |
+
<h2 class="text-lg font-medium text-gray-700 capitalize sm:text-xl md:text-2xl">Orders overview</h2>
|
639 |
+
|
640 |
+
<p class="mt-2 text-gray-500">
|
641 |
+
<span class="text-green-500">+30%</span> this month
|
642 |
+
</p>
|
643 |
+
|
644 |
+
<div class="flow-root mt-6">
|
645 |
+
<ul class="-mb-8">
|
646 |
+
<li>
|
647 |
+
<div class="relative pb-8">
|
648 |
+
<span
|
649 |
+
class="absolute top-4 left-4 rtl:right-4 rtl:left-auto -ml-px h-full w-0.5 bg-gray-200"
|
650 |
+
aria-hidden="true"></span>
|
651 |
+
<div class="relative flex">
|
652 |
+
<div>
|
653 |
+
<span
|
654 |
+
class="flex items-center justify-center w-8 h-8 bg-white rounded-full ring-8 ring-white">
|
655 |
+
<svg xmlns="http://www.w3.org/2000/svg"
|
656 |
+
class="w-5 h-5 text-blue-500" viewBox="0 0 20 20"
|
657 |
+
fill="currentColor">
|
658 |
+
<path
|
659 |
+
d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z" />
|
660 |
+
</svg>
|
661 |
+
</span>
|
662 |
+
</div>
|
663 |
+
|
664 |
+
<div class="min-w-0 flex-1 pt-1.5 mx-3">
|
665 |
+
<div>
|
666 |
+
<p class="text-sm font-medium text-gray-700">$2400, Design
|
667 |
+
changes</p>
|
668 |
+
<p
|
669 |
+
class="w-32 mt-1 text-sm text-gray-500 truncate sm:w-auto">
|
670 |
+
22 DEC 7:20 PM</p>
|
671 |
+
</div>
|
672 |
+
</div>
|
673 |
+
</div>
|
674 |
+
</div>
|
675 |
+
</li>
|
676 |
+
|
677 |
+
<li>
|
678 |
+
<div class="relative pb-8">
|
679 |
+
<span
|
680 |
+
class="absolute top-4 left-4 -ml-px rtl:right-4 rtl:left-auto h-full w-0.5 bg-gray-200"
|
681 |
+
aria-hidden="true"></span>
|
682 |
+
<div class="relative flex">
|
683 |
+
<div>
|
684 |
+
<span
|
685 |
+
class="flex items-center justify-center w-8 h-8 bg-white rounded-full ring-8 ring-white">
|
686 |
+
<svg xmlns="http://www.w3.org/2000/svg"
|
687 |
+
class="w-5 h-5 text-indigo-500" viewBox="0 0 20 20"
|
688 |
+
fill="currentColor">
|
689 |
+
<path fill-rule="evenodd"
|
690 |
+
d="M10 2a4 4 0 00-4 4v1H5a1 1 0 00-.994.89l-1 9A1 1 0 004 18h12a1 1 0 00.994-1.11l-1-9A1 1 0 0015 7h-1V6a4 4 0 00-4-4zm2 5V6a2 2 0 10-4 0v1h4zm-6 3a1 1 0 112 0 1 1 0 01-2 0zm7-1a1 1 0 100 2 1 1 0 000-2z"
|
691 |
+
clip-rule="evenodd" />
|
692 |
+
</svg>
|
693 |
+
</span>
|
694 |
+
</div>
|
695 |
+
|
696 |
+
<div class="min-w-0 flex-1 pt-1.5 mx-3">
|
697 |
+
<div>
|
698 |
+
<p class="text-sm font-medium text-gray-700">New order
|
699 |
+
#4219423</p>
|
700 |
+
<p
|
701 |
+
class="w-32 mt-1 text-sm text-gray-500 truncate sm:w-auto">
|
702 |
+
21 DEC 11:21 PM</p>
|
703 |
+
</div>
|
704 |
+
</div>
|
705 |
+
</div>
|
706 |
+
</div>
|
707 |
+
</li>
|
708 |
+
|
709 |
+
<li>
|
710 |
+
<div class="relative pb-8">
|
711 |
+
<span
|
712 |
+
class="absolute top-4 left-4 -ml-px rtl:right-4 rtl:left-auto h-full w-0.5 bg-gray-200"
|
713 |
+
aria-hidden="true"></span>
|
714 |
+
<div class="relative flex">
|
715 |
+
<div>
|
716 |
+
<span
|
717 |
+
class="flex items-center justify-center w-8 h-8 bg-white rounded-full ring-8 ring-white">
|
718 |
+
<svg xmlns="http://www.w3.org/2000/svg"
|
719 |
+
class="w-5 h-5 text-cyan-500" viewBox="0 0 20 20"
|
720 |
+
fill="currentColor">
|
721 |
+
<path d="M4 4a2 2 0 00-2 2v1h16V6a2 2 0 00-2-2H4z" />
|
722 |
+
<path fill-rule="evenodd"
|
723 |
+
d="M18 9H2v5a2 2 0 002 2h12a2 2 0 002-2V9zM4 13a1 1 0 011-1h1a1 1 0 110 2H5a1 1 0 01-1-1zm5-1a1 1 0 100 2h1a1 1 0 100-2H9z"
|
724 |
+
clip-rule="evenodd" />
|
725 |
+
</svg>
|
726 |
+
</span>
|
727 |
+
</div>
|
728 |
+
|
729 |
+
<div class="min-w-0 flex-1 pt-1.5 mx-3">
|
730 |
+
<div>
|
731 |
+
<p class="text-sm font-medium text-gray-700">New card added
|
732 |
+
for order #3210145</p>
|
733 |
+
<p
|
734 |
+
class="w-32 mt-1 text-sm text-gray-500 truncate sm:w-auto">
|
735 |
+
21 DEC 11:21 PM</p>
|
736 |
+
</div>
|
737 |
+
</div>
|
738 |
+
</div>
|
739 |
+
</div>
|
740 |
+
</li>
|
741 |
+
|
742 |
+
<li>
|
743 |
+
<div class="relative pb-8">
|
744 |
+
<div class="relative flex">
|
745 |
+
<div>
|
746 |
+
<span
|
747 |
+
class="flex items-center justify-center w-8 h-8 bg-white rounded-full ring-8 ring-white">
|
748 |
+
<svg xmlns="http://www.w3.org/2000/svg"
|
749 |
+
class="w-5 h-5 text-green-500" viewBox="0 0 20 20"
|
750 |
+
fill="currentColor">
|
751 |
+
<path
|
752 |
+
d="M3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z" />
|
753 |
+
</svg>
|
754 |
+
</span>
|
755 |
+
</div>
|
756 |
+
|
757 |
+
|
758 |
+
<div class="min-w-0 flex-1 pt-1.5 mx-3">
|
759 |
+
<div>
|
760 |
+
<p class="text-sm font-medium text-gray-700">Server Payments
|
761 |
+
for April</p>
|
762 |
+
<p
|
763 |
+
class="w-32 mt-1 text-sm text-gray-500 truncate sm:w-auto">
|
764 |
+
21 DEC 9:28 PM</p>
|
765 |
+
</div>
|
766 |
+
</div>
|
767 |
+
</div>
|
768 |
+
</div>
|
769 |
+
</li>
|
770 |
+
</ul>
|
771 |
+
</div>
|
772 |
+
</div>
|
773 |
+
</section> -->
|
774 |
+
</div>
|
775 |
+
</div>
|
776 |
+
</main>
|
777 |
+
</div>
|
778 |
+
</div>
|
779 |
+
</body>
|
780 |
+
|
781 |
+
</html>
|
static/js/detection.js
ADDED
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Form Divs
|
2 |
+
const form = document.getElementById("sum-form");
|
3 |
+
const sumText = document.getElementById("sum-text-div");
|
4 |
+
const sumFile = document.getElementById("sum-file-div");
|
5 |
+
const sumVideo = document.getElementById("sum-video-div");
|
6 |
+
|
7 |
+
// Form Data
|
8 |
+
const selectOption = document.getElementById("sum-type");
|
9 |
+
const sumTextInput = document.getElementById("sum-text-input");
|
10 |
+
const sumVideoInput = document.getElementById("sum-video-input");
|
11 |
+
|
12 |
+
// Error Output Section
|
13 |
+
const sumError = document.getElementById("sum-err");
|
14 |
+
|
15 |
+
// Result Section
|
16 |
+
const extractText = document.getElementById("extracted-text");
|
17 |
+
const summaryText = document.getElementById("summarized-text");
|
18 |
+
|
19 |
+
|
20 |
+
// In progress...
|
21 |
+
function _summarize(text) {
|
22 |
+
var xhr = new XMLHttpRequest();
|
23 |
+
xhr.open("POST", "/predict_emotion", true);
|
24 |
+
xhr.setRequestHeader("Content-Type", "application/json");
|
25 |
+
|
26 |
+
var data = JSON.stringify({ "text": text });
|
27 |
+
|
28 |
+
xhr.onreadystatechange = function () {
|
29 |
+
if (xhr.readyState === 4 && xhr.status === 200) {
|
30 |
+
resp = xhr.responseText;
|
31 |
+
result = Object.entries(JSON.parse(resp)).sort((a, b) => b[1] - a[1]).map(a => a[0]+': '+a[1]).join('\n');
|
32 |
+
summaryText.value = result;
|
33 |
+
}
|
34 |
+
};
|
35 |
+
|
36 |
+
xhr.send(data)
|
37 |
+
return;
|
38 |
+
}
|
39 |
+
|
40 |
+
// In progress...
|
41 |
+
function _extractPDF(file) {
|
42 |
+
return file;
|
43 |
+
}
|
44 |
+
|
45 |
+
// In progress...
|
46 |
+
function _getCaptions(src) {
|
47 |
+
return src;
|
48 |
+
}
|
49 |
+
|
50 |
+
|
51 |
+
function summarize(event) {
|
52 |
+
event.preventDefault();
|
53 |
+
|
54 |
+
if (selectOption.value === 'sum-video' && !sumVideoInput.value.startsWith('https://www.youtube.com/watch?v=')) {
|
55 |
+
sumError.innerText = 'Invalid Youtube Link';
|
56 |
+
sumError.classList.remove('hidden');
|
57 |
+
return;
|
58 |
+
}
|
59 |
+
|
60 |
+
switch (selectOption.value) {
|
61 |
+
case 'sum-text':
|
62 |
+
let value = sumTextInput.value
|
63 |
+
if (value === '') {
|
64 |
+
sumError.innerText = `You need to input some text`;
|
65 |
+
sumError.classList.remove('hidden');
|
66 |
+
return;
|
67 |
+
}
|
68 |
+
break;
|
69 |
+
case 'sum-file':
|
70 |
+
sumError.innerText = 'This option is not supported, yet';
|
71 |
+
sumError.classList.remove('hidden');
|
72 |
+
return;
|
73 |
+
}
|
74 |
+
|
75 |
+
sumError.classList.add('hidden');
|
76 |
+
|
77 |
+
// Here we can finally summarize data
|
78 |
+
let extractedText = '';
|
79 |
+
switch (selectOption.value) {
|
80 |
+
case 'sum-text':
|
81 |
+
extractedText = sumTextInput.value;
|
82 |
+
break;
|
83 |
+
case 'sum-file':
|
84 |
+
extractedText = _extractPDF(sumFileInput);
|
85 |
+
break;
|
86 |
+
case 'sum-video':
|
87 |
+
extractedText = _getCaptions(sumVideoInput.value);
|
88 |
+
break;
|
89 |
+
}
|
90 |
+
|
91 |
+
extractText.value = extractedText;
|
92 |
+
_summarize(extractedText);
|
93 |
+
}
|
94 |
+
|
95 |
+
|
96 |
+
document.addEventListener("DOMContentLoaded", function () {
|
97 |
+
selectOption.addEventListener("change", function () {
|
98 |
+
switch (selectOption.value) {
|
99 |
+
case 'sum-text':
|
100 |
+
sumText.classList.remove('hidden');
|
101 |
+
sumFile.classList.add('hidden');
|
102 |
+
sumVideo.classList.add('hidden');
|
103 |
+
|
104 |
+
sumTextInput.setAttribute("required", "");
|
105 |
+
sumVideoInput.removeAttribute("required");
|
106 |
+
break;
|
107 |
+
case 'sum-file':
|
108 |
+
sumText.classList.add('hidden');
|
109 |
+
sumFile.classList.remove('hidden');
|
110 |
+
sumVideo.classList.add('hidden');
|
111 |
+
|
112 |
+
sumTextInput.removeAttribute("required");
|
113 |
+
sumVideoInput.removeAttribute("required");
|
114 |
+
break;
|
115 |
+
case 'sum-video':
|
116 |
+
sumText.classList.add('hidden');
|
117 |
+
sumFile.classList.add('hidden');
|
118 |
+
sumVideo.classList.remove('hidden');
|
119 |
+
|
120 |
+
sumTextInput.removeAttribute("required");
|
121 |
+
sumVideoInput.setAttribute("required", "");
|
122 |
+
break;
|
123 |
+
}
|
124 |
+
sumError.classList.add('hidden');
|
125 |
+
});
|
126 |
+
});
|
127 |
+
|
128 |
+
document.addEventListener("DOMContentLoaded", function () {
|
129 |
+
var submitButton = document.getElementById("submit");
|
130 |
+
|
131 |
+
submitButton.addEventListener("click", function (e) {
|
132 |
+
summarize(e);
|
133 |
+
});
|
134 |
+
});
|
static/js/main.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
static/js/summarizer.js
ADDED
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Form Divs
|
2 |
+
const form = document.getElementById("sum-form");
|
3 |
+
const sumText = document.getElementById("sum-text-div");
|
4 |
+
const sumFile = document.getElementById("sum-file-div");
|
5 |
+
const sumVideo = document.getElementById("sum-video-div");
|
6 |
+
|
7 |
+
// Form Data
|
8 |
+
const selectOption = document.getElementById("sum-type");
|
9 |
+
const sumTextInput = document.getElementById("sum-text-input");
|
10 |
+
const sumVideoInput = document.getElementById("sum-video-input");
|
11 |
+
|
12 |
+
// Error Output Section
|
13 |
+
const sumError = document.getElementById("sum-err");
|
14 |
+
|
15 |
+
// Result Section
|
16 |
+
const extractText = document.getElementById("extracted-text");
|
17 |
+
const summaryText = document.getElementById("summarized-text");
|
18 |
+
|
19 |
+
|
20 |
+
// In progress...
|
21 |
+
function _summarize(text) {
|
22 |
+
var xhr = new XMLHttpRequest();
|
23 |
+
xhr.open("POST", "https://www.editpad.org/tool/tool/summarizingTool", true);
|
24 |
+
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
25 |
+
|
26 |
+
var data = `text=${text}&percnt=40&modd=1&captha=0`;
|
27 |
+
xhr.onreadystatechange = function () {
|
28 |
+
if (xhr.readyState === 4 && xhr.status === 200) {
|
29 |
+
var response = JSON.parse(xhr.responseText);
|
30 |
+
summaryText.value = response.content;
|
31 |
+
}
|
32 |
+
};
|
33 |
+
|
34 |
+
xhr.send(data)
|
35 |
+
return;
|
36 |
+
}
|
37 |
+
|
38 |
+
// In progress...
|
39 |
+
function _extractPDF(file) {
|
40 |
+
return file;
|
41 |
+
}
|
42 |
+
|
43 |
+
// In progress...
|
44 |
+
function _getCaptions(src) {
|
45 |
+
return src;
|
46 |
+
}
|
47 |
+
|
48 |
+
|
49 |
+
function summarize(event) {
|
50 |
+
event.preventDefault();
|
51 |
+
|
52 |
+
if (selectOption.value === 'sum-video' && !sumVideoInput.value.startsWith('https://www.youtube.com/watch?v=')) {
|
53 |
+
sumError.innerText = 'Invalid Youtube Link';
|
54 |
+
sumError.classList.remove('hidden');
|
55 |
+
return;
|
56 |
+
}
|
57 |
+
|
58 |
+
switch (selectOption.value) {
|
59 |
+
case 'sum-text':
|
60 |
+
len = sumTextInput.value.length
|
61 |
+
if (len < 100) {
|
62 |
+
sumError.innerText = `The text size should be at least 100 characters (${len} < 100)`;
|
63 |
+
sumError.classList.remove('hidden');
|
64 |
+
return;
|
65 |
+
}
|
66 |
+
break;
|
67 |
+
case 'sum-file':
|
68 |
+
sumError.innerText = 'This option is not supported, yet';
|
69 |
+
sumError.classList.remove('hidden');
|
70 |
+
return;
|
71 |
+
}
|
72 |
+
|
73 |
+
sumError.classList.add('hidden');
|
74 |
+
|
75 |
+
// Here we can finally summarize data
|
76 |
+
let extractedText = '';
|
77 |
+
switch (selectOption.value) {
|
78 |
+
case 'sum-text':
|
79 |
+
extractedText = sumTextInput.value;
|
80 |
+
break;
|
81 |
+
case 'sum-file':
|
82 |
+
extractedText = _extractPDF(sumFileInput);
|
83 |
+
break;
|
84 |
+
case 'sum-video':
|
85 |
+
extractedText = _getCaptions(sumVideoInput.value);
|
86 |
+
break;
|
87 |
+
}
|
88 |
+
|
89 |
+
extractText.value = extractedText;
|
90 |
+
_summarize(extractedText);
|
91 |
+
}
|
92 |
+
|
93 |
+
|
94 |
+
document.addEventListener("DOMContentLoaded", function () {
|
95 |
+
selectOption.addEventListener("change", function () {
|
96 |
+
switch (selectOption.value) {
|
97 |
+
case 'sum-text':
|
98 |
+
sumText.classList.remove('hidden');
|
99 |
+
sumFile.classList.add('hidden');
|
100 |
+
sumVideo.classList.add('hidden');
|
101 |
+
|
102 |
+
sumTextInput.setAttribute("required", "");
|
103 |
+
sumVideoInput.removeAttribute("required");
|
104 |
+
break;
|
105 |
+
case 'sum-file':
|
106 |
+
sumText.classList.add('hidden');
|
107 |
+
sumFile.classList.remove('hidden');
|
108 |
+
sumVideo.classList.add('hidden');
|
109 |
+
|
110 |
+
sumTextInput.removeAttribute("required");
|
111 |
+
sumVideoInput.removeAttribute("required");
|
112 |
+
break;
|
113 |
+
case 'sum-video':
|
114 |
+
sumText.classList.add('hidden');
|
115 |
+
sumFile.classList.add('hidden');
|
116 |
+
sumVideo.classList.remove('hidden');
|
117 |
+
|
118 |
+
sumTextInput.removeAttribute("required");
|
119 |
+
sumVideoInput.setAttribute("required", "");
|
120 |
+
break;
|
121 |
+
}
|
122 |
+
sumError.classList.add('hidden');
|
123 |
+
});
|
124 |
+
});
|
125 |
+
|
126 |
+
document.addEventListener("DOMContentLoaded", function () {
|
127 |
+
var submitButton = document.getElementById("submit");
|
128 |
+
|
129 |
+
submitButton.addEventListener("click", function (e) {
|
130 |
+
summarize(e);
|
131 |
+
});
|
132 |
+
});
|
static/text_summarizer.html
ADDED
@@ -0,0 +1,305 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
|
4 |
+
<head>
|
5 |
+
<meta charset="utf-8">
|
6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
7 |
+
<link rel="canonical" href="">
|
8 |
+
<title>Text2Feature | Summarizer</title>
|
9 |
+
<link rel="stylesheet" href="css/main.css">
|
10 |
+
<link rel="icon" type="image/svg+xml" href="images/logo.svg">
|
11 |
+
<script defer src="js/main.js"></script>
|
12 |
+
</head>
|
13 |
+
|
14 |
+
<body class="overflow-hidden">
|
15 |
+
<!-- Google tag (gtag.js) -->
|
16 |
+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-B751Q3XBFC"></script>
|
17 |
+
<script>
|
18 |
+
window.dataLayer = window.dataLayer || [];
|
19 |
+
function gtag(){dataLayer.push(arguments);}
|
20 |
+
gtag('js', new Date());
|
21 |
+
|
22 |
+
gtag('config', 'G-B751Q3XBFC');
|
23 |
+
</script>
|
24 |
+
|
25 |
+
<div x-data="{ sidebarOpen: false }" class="relative flex h-screen text-gray-800 bg-white font-roboto">
|
26 |
+
<div x-cloak :class="sidebarOpen ? 'block' : 'hidden'" @click="sidebarOpen = false"
|
27 |
+
class="fixed inset-0 z-20 transition-opacity bg-black opacity-50 lg:hidden"></div>
|
28 |
+
|
29 |
+
<div x-cloak :class="sidebarOpen ? 'translate-x-0 ease-in' : '-translate-x-full ease-out'"
|
30 |
+
class="fixed inset-y-0 left-0 z-30 w-64 px-4 overflow-y-auto transition duration-200 transform bg-white border-r border-gray-100 lg:translate-x-0 lg:relative lg:inset-0 ">
|
31 |
+
<div class="mt-8">
|
32 |
+
<a href="index.html" class="flex items-center">
|
33 |
+
<img class="w-auto h-6" src="images/logo.svg" alt="logo">
|
34 |
+
<span class="mx-3 mt-1 font-medium text-lg">Text2<span class="text-indigo-600">Feature</span></span>
|
35 |
+
</a>
|
36 |
+
</div>
|
37 |
+
|
38 |
+
<hr class="my-6 border-gray-100">
|
39 |
+
|
40 |
+
<nav class="space-y-8">
|
41 |
+
<div class="space-y-4">
|
42 |
+
<h3 class="px-4 text-sm tracking-wider text-gray-400 uppercase">PAGES</h3>
|
43 |
+
|
44 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-200 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
45 |
+
href="index.html">
|
46 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none" viewBox="0 0 24 24"
|
47 |
+
stroke="currentColor">
|
48 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
49 |
+
d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" />
|
50 |
+
</svg>
|
51 |
+
<span class="mx-3 font-medium capitalize">Homepage</span>
|
52 |
+
</a>
|
53 |
+
|
54 |
+
<a class="flex items-center px-4 py-2 text-gray-600 transition-colors duration-300 transform bg-gray-200 rounded-lg bg-opacity-40"
|
55 |
+
href="text_summarizer.html">
|
56 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none" viewBox="0 0 24 24"
|
57 |
+
stroke="currentColor" stroke-width="2">
|
58 |
+
<path stroke-linecap="round" stroke-linejoin="round"
|
59 |
+
d="M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4" />
|
60 |
+
</svg>
|
61 |
+
<span class="mx-3 font-medium capitalize">Text Summarizer</span>
|
62 |
+
</a>
|
63 |
+
|
64 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
65 |
+
href="emotion_detection.html">
|
66 |
+
<svg width="24px" height="24px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
67 |
+
<path d="M9 16C9.85038 16.6303 10.8846 17 12 17C13.1154 17 14.1496 16.6303 15 16" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"/>
|
68 |
+
<path d="M16 10.5C16 11.3284 15.5523 12 15 12C14.4477 12 14 11.3284 14 10.5C14 9.67157 14.4477 9 15 9C15.5523 9 16 9.67157 16 10.5Z" fill="#1C274C"/>
|
69 |
+
<ellipse cx="9" cy="10.5" rx="1" ry="1.5" fill="#1C274C"/>
|
70 |
+
<path d="M7 3.33782C8.47087 2.48697 10.1786 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 10.1786 2.48697 8.47087 3.33782 7" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"/>
|
71 |
+
</svg>
|
72 |
+
<span class="mx-3 font-medium capitalize">Emotion Detection</span>
|
73 |
+
</a>
|
74 |
+
|
75 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
76 |
+
href="">
|
77 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" fill="none" viewBox="0 0 24 24"
|
78 |
+
stroke="currentColor">
|
79 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
80 |
+
d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" />
|
81 |
+
</svg>
|
82 |
+
<span class="mx-3 font-medium capitalize">Project 3</span>
|
83 |
+
</a>
|
84 |
+
|
85 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
86 |
+
href="">
|
87 |
+
<svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
88 |
+
<path
|
89 |
+
d="M13 10V14H19V10H13ZM11 10H5V14H11V10ZM13 19H19V16H13V19ZM11 19V16H5V19H11ZM13 5V8H19V5H13ZM11 5H5V8H11V5ZM19 3C20.1046 3 21 3.89543 21 5V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19V5C3 3.89543 3.89543 3 5 3H19Z"
|
90 |
+
fill="currentColor"></path>
|
91 |
+
</svg>
|
92 |
+
<span class="mx-3 font-medium capitalize">Project 4</span>
|
93 |
+
</a>
|
94 |
+
</div>
|
95 |
+
|
96 |
+
<div class="space-y-4">
|
97 |
+
<h3 class="px-4 text-sm tracking-wider text-gray-400 uppercase">OTHER</h3>
|
98 |
+
|
99 |
+
<a class="flex items-center px-4 py-2 text-gray-500 transition-colors duration-300 transform rounded-lg hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
100 |
+
href="/">
|
101 |
+
<svg width="24" height="24" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
|
102 |
+
<path
|
103 |
+
d="M474.89,300.41a121.43,121.43,0,0,1-121.3,121.3H247.08V392.13H353.59a91.72,91.72,0,1,0,0-183.44H87.53L151,272.2l-20.92,20.92L30.89,193.9l99.22-99.22L151,115.6l-63.5,63.51H353.59A121.43,121.43,0,0,1,474.89,300.41Z" />
|
104 |
+
</svg>
|
105 |
+
<span class="mx-3 font-medium">Visit Main Website</span>
|
106 |
+
</a>
|
107 |
+
</div>
|
108 |
+
</nav>
|
109 |
+
</div>
|
110 |
+
|
111 |
+
<div class="flex flex-col flex-1 overflow-hidden bg-gray-100">
|
112 |
+
<header class="bg-white border-b border-gray-100">
|
113 |
+
<div class="flex items-center justify-between px-4 py-4 sm:px-6">
|
114 |
+
<div class="flex items-center">
|
115 |
+
<button @click="sidebarOpen = !sidebarOpen" class="text-gray-500 lg:hidden focus:outline-none">
|
116 |
+
<svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
117 |
+
<path d="M4 6H20M4 12H20M4 18H11" stroke="currentColor" stroke-width="2"
|
118 |
+
stroke-linecap="round" stroke-linejoin="round" />
|
119 |
+
</svg>
|
120 |
+
</button>
|
121 |
+
|
122 |
+
<div class="relative" x-data="{ search: '' }" @click.away="search = ''">
|
123 |
+
<div class="relative mx-4 lg:mx-0">
|
124 |
+
<span class="absolute inset-y-0 left-0 flex items-center pl-3">
|
125 |
+
<svg class="w-5 h-5 text-gray-400" viewBox="0 0 24 24" fill="none">
|
126 |
+
<path
|
127 |
+
d="M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z"
|
128 |
+
stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
129 |
+
stroke-linejoin="round"></path>
|
130 |
+
</svg>
|
131 |
+
</span>
|
132 |
+
|
133 |
+
<input x-model="search" type="text"
|
134 |
+
class="w-64 h-10 py-2 pl-10 pr-4 text-gray-700 placeholder-gray-400 transition-all duration-150 bg-white border border-gray-200 rounded-md focus:w-80 sm:w-64 sm:focus:w-80 focus:border-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-40"
|
135 |
+
placeholder="Find anything...">
|
136 |
+
</div>
|
137 |
+
|
138 |
+
<div class="absolute right-0 z-20 w-full py-2 mt-2 space-y-4 overflow-hidden bg-white rounded-md shadow-xl"
|
139 |
+
x-show="search.length > 0" x-cloak
|
140 |
+
x-transition:enter="transition ease-out duration-100 transform"
|
141 |
+
x-transition:enter-start="opacity-0 scale-95"
|
142 |
+
x-transition:enter-end="opacity-100 scale-100"
|
143 |
+
x-transition:leave="transition ease-in duration-75 transform"
|
144 |
+
x-transition:leave-start="opacity-100 scale-100"
|
145 |
+
x-transition:leave-end="opacity-0 scale-95">
|
146 |
+
|
147 |
+
<div>
|
148 |
+
<h3 class="px-5 text-xs tracking-wider text-gray-500 uppercase">Projects</h3>
|
149 |
+
<div class="mt-2">
|
150 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
151 |
+
href="text_summarizer.html">
|
152 |
+
Text Summarizer
|
153 |
+
</a>
|
154 |
+
|
155 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
156 |
+
href="emotion_detection.html">
|
157 |
+
Emotion Detection
|
158 |
+
</a>
|
159 |
+
|
160 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
161 |
+
href="">
|
162 |
+
Project 3
|
163 |
+
</a>
|
164 |
+
|
165 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
166 |
+
href="">
|
167 |
+
Project 4
|
168 |
+
</a>
|
169 |
+
</div>
|
170 |
+
</div>
|
171 |
+
<div>
|
172 |
+
<h3 class="px-5 text-xs tracking-wider text-gray-500 uppercase">Other</h3>
|
173 |
+
<div class="mt-2">
|
174 |
+
<a class="block px-5 py-2 text-sm text-gray-700 capitalize transition-colors duration-200 transform sm:px-12 hover:text-gray-600 hover:bg-gray-100 bg-opacity-40"
|
175 |
+
href="/">
|
176 |
+
Visit Main Website
|
177 |
+
</a>
|
178 |
+
</div>
|
179 |
+
</div>
|
180 |
+
</div>
|
181 |
+
</div>
|
182 |
+
</div>
|
183 |
+
|
184 |
+
<div class="flex items-center">
|
185 |
+
<div x-data="{ dropdownOpen: false }" class="relative inline-block">
|
186 |
+
<button @click="dropdownOpen = ! dropdownOpen" class="relative z-10 flex items-center flex-shrink-0 text-sm text-gray-600 focus:outline-none">
|
187 |
+
<img class="flex-shrink-0 object-cover w-8 h-8 rounded-full" src="images/github-mark.svg" alt="github-mark">
|
188 |
+
</button>
|
189 |
+
|
190 |
+
<div class="absolute right-0 z-20 w-56 py-2 mt-2 overflow-hidden bg-white rounded-md shadow-xl rtl:right-auto rtl:left-0" x-show="dropdownOpen" x-transition:enter="transition ease-out duration-100 transform" x-transition:enter-start="opacity-0 scale-95" x-transition:enter-end="opacity-100 scale-100" x-transition:leave="transition ease-in duration-75 transform" x-transition:leave-start="opacity-100 scale-100" x-transition:leave-end="opacity-0 scale-95" @click.away="dropdownOpen = false" style="display: none;">
|
191 |
+
<a target="_blank" href="https://github.com/Djacon/text2feature" class="flex items-center p-3 -mt-2 text-sm text-gray-600 transition-colors duration-200 transform hover:bg-gray-100">
|
192 |
+
<img class="flex-shrink-0 object-cover mx-1 rounded-full w-9 h-9" src="images/github-mark.svg" alt="github-mark">
|
193 |
+
<div class="mx-1">
|
194 |
+
<h1 class="text-sm font-semibold text-gray-700">Made By Djacon</h1>
|
195 |
+
<p class="text-sm text-gray-500">github.com/Djacon</p>
|
196 |
+
</div>
|
197 |
+
</a>
|
198 |
+
</div>
|
199 |
+
</div>
|
200 |
+
</div>
|
201 |
+
</div>
|
202 |
+
</header>
|
203 |
+
|
204 |
+
<main class="flex-1 overflow-y-auto">
|
205 |
+
<div class="px-4 py-8 sm:px-6">
|
206 |
+
<div>
|
207 |
+
<h1 class="text-2xl font-medium text-gray-700 sm:text-3xl">Text Summarizer</h1>
|
208 |
+
|
209 |
+
<div class="hidden mt-3 overflow-y-auto text-sm lg:items-center lg:flex whitespace-nowrap">
|
210 |
+
<a class="text-gray-600">Pages</a>
|
211 |
+
<span class="mx-1 text-gray-500">/</span>
|
212 |
+
<a href="" class="text-indigo-600 hover:underline">Text_Summarizer</a>
|
213 |
+
</div>
|
214 |
+
</div>
|
215 |
+
|
216 |
+
<div class="mt-6">
|
217 |
+
<div class="w-full p-4 bg-white rounded-lg xl:p-6">
|
218 |
+
<h1 class="text-lg font-medium text-gray-700 capitalize sm:text-xl md:text-2xl">Upload text</h1>
|
219 |
+
|
220 |
+
<form id='sum-form' class="mt-6 space-y-5" onsubmit="return false;">
|
221 |
+
<div>
|
222 |
+
<label for="sum-type" class="block text-sm text-gray-700 capitalize">Select Type</label>
|
223 |
+
<select id="sum-type"
|
224 |
+
class="block w-full px-4 py-2.5 mt-2 text-gray-600 placeholder-gray-400 bg-white border border-gray-200 rounded-md focus:border-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-40">
|
225 |
+
<option value="sum-text">Summarize Text</option>
|
226 |
+
<option value="sum-file">Summarize PDF</option>
|
227 |
+
<!-- In progress... -->
|
228 |
+
<!-- <option value="sum-video">Summarize Youtube Video</option> -->
|
229 |
+
</select>
|
230 |
+
</div>
|
231 |
+
|
232 |
+
<div id="sum-text-div">
|
233 |
+
<label for="description"
|
234 |
+
class="block text-sm text-gray-700 capitalize">description</label>
|
235 |
+
<textarea id="sum-text-input" required class="block w-full px-4 py-2.5 mt-2 text-gray-600 placeholder-gray-400 bg-white border border-gray-200 rounded-md focus:border-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-40"
|
236 |
+
style="min-height: 300px;"></textarea>
|
237 |
+
</div>
|
238 |
+
|
239 |
+
<div id="sum-file-div" class="hidden">
|
240 |
+
<label for="image" class="block text-sm text-gray-700 capitalize">file</label>
|
241 |
+
<label
|
242 |
+
class="flex flex-col items-center justify-center w-full h-32 mt-2 text-gray-500 border-2 border-dashed rounded-md cursor-pointer hover:text-gray-600">
|
243 |
+
<svg class="w-8 h-8" fill="currentColor" xmlns="http://www.w3.org/2000/svg"
|
244 |
+
viewBox="0 0 20 20">
|
245 |
+
<path
|
246 |
+
d="M16.88 9.1A4 4 0 0 1 16 17H5a5 5 0 0 1-1-9.9V7a3 3 0 0 1 4.52-2.59A4.98 4.98 0 0 1 17 8c0 .38-.04.74-.12 1.1zM11 11h3l-4-4-4 4h3v3h2v-3z">
|
247 |
+
</path>
|
248 |
+
</svg>
|
249 |
+
<span class="mt-4">Select PDF File</span>
|
250 |
+
<input id="sum-file-input" type="file" class="hidden">
|
251 |
+
</label>
|
252 |
+
</div>
|
253 |
+
|
254 |
+
<div id="sum-video-div" class="hidden">
|
255 |
+
<label for="video" class="block text-sm text-gray-700 capitalize">Youtube link</label>
|
256 |
+
<input id="sum-video-input" placeholder="https://www.youtube.com/watch?v=dQw4w9WgXcQ" type="url"
|
257 |
+
class="block w-full px-4 py-2.5 mt-2 text-gray-600 placeholder-gray-400 bg-white border border-gray-200 rounded-md focus:border-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-40">
|
258 |
+
</div>
|
259 |
+
<p id='sum-err' class="hidden mt-2 text-sm text-red-500">Your password is too short.</p>
|
260 |
+
|
261 |
+
<div class="flex justify-end">
|
262 |
+
<button id="submit" type="button" class="w-full flex items-center justify-center px-2 py-2 text-sm font-medium tracking-wide text-white capitalize transition-colors duration-200 transform bg-indigo-500 rounded-md hover:bg-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-50">
|
263 |
+
<svg width="24px" height="24px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
264 |
+
<g id="SVGRepo_bgCarrier" stroke-width="0"></g>
|
265 |
+
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g>
|
266 |
+
<g id="SVGRepo_iconCarrier">
|
267 |
+
<path d="M7 10L12 15L17 10" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
268 |
+
</g>
|
269 |
+
</svg>
|
270 |
+
<span class="mx-1">Summarize</span>
|
271 |
+
</button>
|
272 |
+
</div>
|
273 |
+
</form>
|
274 |
+
</div>
|
275 |
+
|
276 |
+
<div class="w-full p-4 mt-8 bg-white rounded-lg xl:p-6">
|
277 |
+
<h1 class="text-lg font-medium text-gray-700 capitalize sm:text-xl md:text-2xl">Result</h1>
|
278 |
+
|
279 |
+
<div class="md:flex gap-8">
|
280 |
+
<div class="w-full md:w-1/2 grid-cols-2 mt-6">
|
281 |
+
<label for="description"
|
282 |
+
class="block text-sm text-gray-700 capitalize">Extracted Text</label>
|
283 |
+
<textarea disabled id="extracted-text"
|
284 |
+
class="minh-text block w-full px-4 py-2.5 mt-2 text-gray-600 placeholder-gray-400 bg-white border border-gray-200 rounded-md focus:border-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-40"
|
285 |
+
style="min-height: 300px;"></textarea>
|
286 |
+
</div>
|
287 |
+
|
288 |
+
<div class="w-full md:w-1/2 grid-cols-2 mt-6">
|
289 |
+
<label for="description"
|
290 |
+
class="block text-sm text-gray-700 capitalize">Summarized Text</label>
|
291 |
+
<textarea disabled id="summarized-text"
|
292 |
+
class="minh-text block w-full px-4 py-2.5 mt-2 text-gray-600 placeholder-gray-400 bg-white border border-gray-200 rounded-md focus:border-indigo-400 focus:outline-none focus:ring focus:ring-indigo-300 focus:ring-opacity-40"
|
293 |
+
style="min-height: 300px;"></textarea>
|
294 |
+
</div>
|
295 |
+
</div>
|
296 |
+
</div>
|
297 |
+
</div>
|
298 |
+
</div>
|
299 |
+
</main>
|
300 |
+
</div>
|
301 |
+
</div>
|
302 |
+
|
303 |
+
<script src="js/summarizer.js"></script>
|
304 |
+
</body>
|
305 |
+
</html>
|