From 6e46e50836f62b9dfc6fc3524c4650f18a3a9e69 Mon Sep 17 00:00:00 2001
From: Randip Leon <123591141+leonRandip@users.noreply.github.com>
Date: Tue, 16 Apr 2024 20:19:01 +0530
Subject: [PATCH] chatbot
---
chat.html | 42 ++++++++
chat.js | 185 ++++++++++++++++++++++++++++++++
chatstyle.css | 257 +++++++++++++++++++++++++++++++++++++++++++++
images/chatbot.png | Bin 0 -> 82835 bytes
images/user.png | Bin 0 -> 712323 bytes
index.html | 36 +++++++
login.css | 158 ++++++++++++++++++++++++++++
login.html | 36 +++++++
login.js | 37 +++++++
signup.html | 38 +++++++
signup.js | 43 ++++++++
style.css | 82 +++++++++++++++
12 files changed, 914 insertions(+)
create mode 100644 chat.html
create mode 100644 chat.js
create mode 100644 chatstyle.css
create mode 100644 images/chatbot.png
create mode 100644 images/user.png
create mode 100644 index.html
create mode 100644 login.css
create mode 100644 login.html
create mode 100644 login.js
create mode 100644 signup.html
create mode 100644 signup.js
create mode 100644 style.css
diff --git a/chat.html b/chat.html
new file mode 100644
index 0000000..f2780cf
--- /dev/null
+++ b/chat.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+ send
+
+
+ light_mode
+ delete
+ event_busy
+
+
+
+
+
diff --git a/chat.js b/chat.js
new file mode 100644
index 0000000..32a4ad2
--- /dev/null
+++ b/chat.js
@@ -0,0 +1,185 @@
+const chatInput = document.querySelector("#chat-input");
+const sendButton = document.querySelector("#send-btn");
+const chatContainer = document.querySelector(".chat-container");
+const themeButton = document.querySelector("#theme-btn");
+const deleteButton = document.querySelector("#delete-btn");
+let userText = "Hello";
+
+const API_KEY = fetch("https://hostapi-ipwd.onrender.com/env").then(response=>response.json()).then(data=>data.API_KEY);
+const loadDataFromLocalstorage = () => {
+ const themeColor = localStorage.getItem("themeColor");
+ document.body.classList.toggle("light-mode", themeColor === "light_mode");
+ themeButton.innerText = document.body.classList.contains("light-mode")
+ ? "dark_mode"
+ : "light_mode";
+ const defaultText = `
+
ChatGPT
+
Start a conversation and explore the power of AI.
Your chat history will be displayed here.
+
`;
+ chatContainer.innerHTML = localStorage.getItem("all-chats") || defaultText;
+ chatContainer.scrollTo(0, chatContainer.scrollHeight);
+};
+const createChatElement = (content, className) => {
+ const chatDiv = document.createElement("div");
+ chatDiv.classList.add("chat", className);
+ chatDiv.innerHTML = content;
+ return chatDiv;
+};
+const getGitHubInfo = async () => {
+ const githubToken = "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";
+ const headers = {
+ "Authorization": `Bearer ${githubToken}`,
+ "Content-Type": "application/json"
+ };
+
+ try {
+ const reposResponse = await fetch("https://api.github.com/user/repos", {
+ method: "GET",
+ headers: headers
+ });
+
+ if (!reposResponse.ok) {
+ throw new Error("Failed to fetch GitHub repositories.");
+ }
+
+ const reposData = await reposResponse.json();
+ const repositories = reposData.map(repo => repo.full_name);
+
+ const userResponse = await fetch("https://api.github.com/user", {
+ method: "GET",
+ headers: headers
+ });
+
+ if (!userResponse.ok) {
+ throw new Error("Failed to fetch GitHub username.");
+ }
+
+ const userData = await userResponse.json();
+ const username = userData.login;
+
+ return { username, repositories };
+ } catch (error) {
+ console.error("Error fetching GitHub info:", error);
+ return { username: "", repositories: [] };
+ }
+};
+
+const getChatResponse = async (incomingChatDiv) => {
+ const API_URL = "https://api.openai.com/v1/chat/completions";
+ const pElement = document.createElement("p");
+
+ userText = userText.toLowerCase();
+
+ const GitHubInfo = await getGitHubInfo();
+ const username = GitHubInfo.username;
+ const repositories = GitHubInfo.repositories;
+
+ if (userText.includes("hello")) {
+ pElement.textContent = `Hello ${username}`;
+ } else if (userText.includes("what are my repos")) {
+ pElement.textContent = `Your repos are: ${repositories.join(", ")}`;
+ } else {
+ const messages = [{ role: "user", content: userText }];
+ try {
+ const response = await fetch(API_URL, {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ Authorization: `Bearer ${API_KEY}`,
+ },
+ body: JSON.stringify({
+ model: "gpt-3.5-turbo",
+ messages: messages,
+ }),
+ });
+ if (!response.ok) {
+ throw new Error("Failed to fetch response from the API.");
+ }
+ const data = await response.json();
+ pElement.textContent = data.choices[0].message.content.trim();
+ } catch (error) {
+ pElement.classList.add("error");
+ pElement.textContent = "Oops! Something went wrong. Please try again.";
+ console.error("Error fetching response:", error);
+ }
+ }
+
+ incomingChatDiv.querySelector(".typing-animation").remove();
+ incomingChatDiv.querySelector(".chat-details").appendChild(pElement);
+ localStorage.setItem("all-chats", chatContainer.innerHTML);
+ chatContainer.scrollTo(0, chatContainer.scrollHeight);
+};
+
+
+
+
+const copyResponse = (copyBtn) => {
+ const reponseTextElement = copyBtn.parentElement.querySelector("p");
+ navigator.clipboard.writeText(reponseTextElement.textContent);
+ copyBtn.textContent = "done";
+ setTimeout(() => (copyBtn.textContent = "content_copy"), 1000);
+};
+const showTypingAnimation = () => {
+ const html = `
+
+
+
+
+
content_copy
+
`;
+ const incomingChatDiv = createChatElement(html, "incoming");
+ chatContainer.appendChild(incomingChatDiv);
+ chatContainer.scrollTo(0, chatContainer.scrollHeight);
+ getChatResponse(incomingChatDiv);
+};
+const handleOutgoingChat = () => {
+ userText = chatInput.value.trim();
+ if (!userText) return;
+
+ chatInput.value = "";
+ chatInput.style.height = `${initialInputHeight}px`;
+ const html = `
+
+
+
${userText}
+
+
`;
+
+ const outgoingChatDiv = createChatElement(html, "outgoing");
+ chatContainer.querySelector(".default-text")?.remove();
+ chatContainer.appendChild(outgoingChatDiv);
+ chatContainer.scrollTo(0, chatContainer.scrollHeight);
+ setTimeout(showTypingAnimation, 500);
+};
+deleteButton.addEventListener("click", () => {
+
+ if (confirm("Are you sure you want to delete all the chats?")) {
+ localStorage.removeItem("all-chats");
+ loadDataFromLocalstorage();
+ }
+});
+themeButton.addEventListener("click", () => {
+ document.body.classList.toggle("light-mode");
+ localStorage.setItem("themeColor", themeButton.innerText);
+ themeButton.innerText = document.body.classList.contains("light-mode")
+ ? "dark_mode"
+ : "light_mode";
+});
+const initialInputHeight = chatInput.scrollHeight;
+chatInput.addEventListener("input", () => {
+ chatInput.style.height = `${initialInputHeight}px`;
+ chatInput.style.height = `${chatInput.scrollHeight}px`;
+});
+chatInput.addEventListener("keydown", (e) => {
+
+ if (e.key === "Enter" && !e.shiftKey && window.innerWidth > 800) {
+ e.preventDefault();
+ handleOutgoingChat();
+ }
+});
+loadDataFromLocalstorage();
+sendButton.addEventListener("click", handleOutgoingChat);
diff --git a/chatstyle.css b/chatstyle.css
new file mode 100644
index 0000000..da5e69b
--- /dev/null
+++ b/chatstyle.css
@@ -0,0 +1,257 @@
+@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap');
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ font-family: "Poppins", sans-serif;
+}
+:root {
+ --text-color: #FFFFFF;
+ --icon-color: #ACACBE;
+ --icon-hover-bg: #5b5e71;
+ --placeholder-color: #dcdcdc;
+ --outgoing-chat-bg: #343541;
+ --incoming-chat-bg: #444654;
+ --outgoing-chat-border: #343541;
+ --incoming-chat-border: #444654;
+}
+.light-mode {
+ --text-color: #343541;
+ --icon-color: #a9a9bc;
+ --icon-hover-bg: #f1f1f3;
+ --placeholder-color: #6c6c6c;
+ --outgoing-chat-bg: #FFFFFF;
+ --incoming-chat-bg: #F7F7F8;
+ --outgoing-chat-border: #FFFFFF;
+ --incoming-chat-border: #D9D9E3;
+}
+body {
+ background: var(--outgoing-chat-bg);
+}
+
+/* Chats container styling */
+.chat-container {
+ overflow-y: auto;
+ max-height: 100vh;
+ padding-bottom: 150px;
+}
+:where(.chat-container, textarea)::-webkit-scrollbar {
+ width: 6px;
+}
+:where(.chat-container, textarea)::-webkit-scrollbar-track {
+ background: var(--incoming-chat-bg);
+ border-radius: 25px;
+}
+:where(.chat-container, textarea)::-webkit-scrollbar-thumb {
+ background: var(--icon-color);
+ border-radius: 25px;
+}
+.default-text {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ height: 70vh;
+ padding: 0 10px;
+ text-align: center;
+ color: var(--text-color);
+}
+.default-text h1 {
+ font-size: 3.3rem;
+}
+.default-text p {
+ margin-top: 10px;
+ font-size: 1.1rem;
+}
+.chat-container .chat {
+ padding: 25px 10px;
+ display: flex;
+ justify-content: center;
+ color: var(--text-color);
+}
+.chat-container .chat.outgoing {
+ background: var(--outgoing-chat-bg);
+ border: 1px solid var(--outgoing-chat-border);
+}
+.chat-container .chat.incoming {
+ background: var(--incoming-chat-bg);
+ border: 1px solid var(--incoming-chat-border);
+}
+.chat .chat-content {
+ display: flex;
+ max-width: 1200px;
+ width: 100%;
+ align-items: flex-start;
+ justify-content: space-between;
+}
+span.material-symbols-rounded {
+ user-select: none;
+ cursor: pointer;
+}
+.chat .chat-content span {
+ cursor: pointer;
+ font-size: 1.3rem;
+ color: var(--icon-color);
+ visibility: hidden;
+}
+.chat:hover .chat-content:not(:has(.typing-animation), :has(.error)) span {
+ visibility: visible;
+}
+.chat .chat-details {
+ display: flex;
+ align-items: center;
+}
+.chat .chat-details img {
+ width: 35px;
+ height: 35px;
+ align-self: flex-start;
+ object-fit: cover;
+ border-radius: 2px;
+}
+.chat .chat-details p {
+ white-space: pre-wrap;
+ font-size: 1.05rem;
+ padding: 0 50px 0 25px;
+ color: var(--text-color);
+ word-break: break-word;
+}
+.chat .chat-details p.error {
+ color: #e55865;
+}
+.chat .typing-animation {
+ padding-left: 25px;
+ display: inline-flex;
+}
+.typing-animation .typing-dot {
+ height: 7px;
+ width: 7px;
+ border-radius: 50%;
+ margin: 0 3px;
+ opacity: 0.7;
+ background: var(--text-color);
+ animation: animateDots 1.5s var(--delay) ease-in-out infinite;
+}
+.typing-animation .typing-dot:first-child {
+ margin-left: 0;
+}
+@keyframes animateDots {
+ 0%,44% {
+ transform: translateY(0px);
+ }
+ 28% {
+ opacity: 0.4;
+ transform: translateY(-6px);
+ }
+ 44% {
+ opacity: 0.2;
+ }
+}
+
+/* Typing container styling */
+.typing-container {
+ position: fixed;
+ bottom: 0;
+ width: 100%;
+ display: flex;
+ padding: 20px 10px;
+ justify-content: center;
+ background: var(--outgoing-chat-bg);
+ border-top: 1px solid var(--incoming-chat-border);
+}
+.typing-container .typing-content {
+ display: flex;
+ max-width: 950px;
+ width: 100%;
+ align-items: flex-end;
+}
+.typing-container .typing-textarea {
+ width: 100%;
+ display: flex;
+ position: relative;
+}
+.typing-textarea textarea {
+ resize: none;
+ height: 55px;
+ width: 100%;
+ border: none;
+ padding: 15px 45px 15px 20px;
+ color: var(--text-color);
+ font-size: 1rem;
+ border-radius: 4px;
+ max-height: 250px;
+ overflow-y: auto;
+ background: var(--incoming-chat-bg);
+ outline: 1px solid var(--incoming-chat-border);
+}
+.typing-textarea textarea::placeholder {
+ color: var(--placeholder-color);
+}
+.typing-content span {
+ width: 55px;
+ height: 55px;
+ display: flex;
+ border-radius: 4px;
+ font-size: 1.35rem;
+ align-items: center;
+ justify-content: center;
+ color: var(--icon-color);
+}
+.typing-textarea span {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ visibility: hidden;
+}
+.typing-textarea textarea:valid ~ span {
+ visibility: visible;
+}
+.typing-controls {
+ display: flex;
+}
+.typing-controls span {
+ margin-left: 7px;
+ font-size: 1.4rem;
+ background: var(--incoming-chat-bg);
+ outline: 1px solid var(--incoming-chat-border);
+}
+.typing-controls span:hover {
+ background: var(--icon-hover-bg);
+}
+
+/* Reponsive Media Query */
+@media screen and (max-width: 600px) {
+ .default-text h1 {
+ font-size: 2.3rem;
+ }
+ :where(.default-text p, textarea, .chat p) {
+ font-size: 0.95rem!important;
+ }
+ .chat-container .chat {
+ padding: 20px 10px;
+ }
+ .chat-container .chat img {
+ height: 32px;
+ width: 32px;
+ }
+ .chat-container .chat p {
+ padding: 0 20px;
+ }
+ .chat .chat-content:not(:has(.typing-animation), :has(.error)) span {
+ visibility: visible;
+ }
+ .typing-container {
+ padding: 15px 10px;
+ }
+ .typing-textarea textarea {
+ height: 45px;
+ padding: 10px 40px 10px 10px;
+ }
+ .typing-content span {
+ height: 45px;
+ width: 45px;
+ margin-left: 5px;
+ }
+ span.material-symbols-rounded {
+ font-size: 1.25rem!important;
+ }
+}
\ No newline at end of file
diff --git a/images/chatbot.png b/images/chatbot.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc71f647c54dd8255717a4e2b24794ae9ec22128
GIT binary patch
literal 82835
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