angeloqq commited on
Commit
be4bed5
·
verified ·
1 Parent(s): dea6676

Upload 53 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
.gitattributes CHANGED
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ assets/bgmain.gif filter=lfs diff=lfs merge=lfs -text
37
+ bot/20240210_194619.jpg filter=lfs diff=lfs merge=lfs -text
38
+ v/m/asset/background.gif filter=lfs diff=lfs merge=lfs -text
DOCUMENTATION.md ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ To ensure that all the modules are installed globally or on your project. Just run the following.
2
+
3
+ pip install
4
+
5
+ pip install
6
+
7
+ pip install
8
+
9
+ pip install
assets/background1.jpg ADDED
assets/background2.jpg ADDED
assets/background3.jpg ADDED
assets/bgmain.gif ADDED

Git LFS Details

  • SHA256: 7f64ee66076696ffd23580629896f2d600250d6c73f39f64741b56073eb5afbd
  • Pointer size: 132 Bytes
  • Size of remote file: 6.45 MB
assets/comments.png ADDED
assets/hand.png ADDED
assets/shrug.png ADDED
assets/speech-bubble.gif ADDED
bot/20240210_194619.jpg ADDED

Git LFS Details

  • SHA256: 04a9c9de3cb95624766351e96e0b6c45839f35126308e32679626a7922ecb06d
  • Pointer size: 132 Bytes
  • Size of remote file: 1.37 MB
bot/data.js ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var audio = new Audio('sentmessage.mp3');
2
+ var contactAngelo = "<div class='social'> <a target='_blank' href='tel:+639670971677'> <div class='socialItem' id='call'><img class='socialItemI' src='phone.svg'/><label class='number'></label></label></div> </a> <a href='mailto:[email protected]'> <div class='socialItem'><img class='socialItemI' src='gmail.svg' alt=''></div> </a> <a target='_blank' href='https://github.com/angeloqq03'> <div class='socialItem'><img class='socialItemI' src='github.svg' alt=''></div> </a> <a target='_blank' href='https://wa.me/639670971677'> <div class='socialItem'><img class='socialItemI' src='whatsapp.svg' alt=''>";
3
+
4
+ var addressString = "<iframe src='https://www.google.com/maps/place/Teresa,+Rizal/@14.564381,121.2249255,14z/data=!3m1!4b1!4m6!3m5!1s0x3397c064d31895b3:0x65a006a4044b8b23!8m2!3d14.5596491!4d121.2225713!16s%2Fg%2F11fyxbpxh8?entry=ttu' frameborder='0' />";
5
+
6
+ const $ = {
7
+ a:[],
8
+
9
+ selector:{
10
+ selector1:['selector here with options']
11
+ }
12
+ }
13
+
14
+ const conversation = {
15
+ stage: 0,
16
+ applicantInfo: {
17
+ firstName: "",
18
+ lastName: "",
19
+ middleName: "",
20
+ age: "",
21
+ email: "",
22
+ phoneNumber: "",
23
+ address: "",
24
+ code: ""
25
+ }
26
+ };
27
+ $.a.push(6);
28
+ $.a.push(1);
29
+ $.a.push()
30
+ console.log($.a);
bot/downloadIcon.svg ADDED
bot/favicon.ico ADDED
bot/github.svg ADDED
bot/gmail.svg ADDED
bot/icons8-close.svg ADDED
bot/index.html ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en" width="80%" height="80%">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
+ <link rel="stylesheet" href="style.css">
8
+ <script src="script.js"></script>
9
+ <script src="data.js"></script>
10
+ <title>Developer | Angelo Collins </title>
11
+ </head>
12
+ <body onload="startFunction()" >
13
+ <nav>
14
+ <div class="navbar">
15
+ <img class="dpimg" onclick="openFullScreenDP()" src="20240210_194619.jpg" alt="">
16
+ <div class="personalInfo">
17
+ <label id="name">Angelo Collins</label>
18
+ <label id="lastseen">last seen today at 3:24 pms</label>
19
+ </div>
20
+ </div>
21
+ </nav>
22
+ <div class="scrollable" id="myScrollable">
23
+ <div class="fullScreenDP" id="fullScreenDP">
24
+ <div class="insideDP">
25
+ <img class="dp" src="" alt="">
26
+ <svg class="closeBTN" onclick="closeFullDP()" xmlns="http://www.w3.org/2000/svg" width="64px"
27
+ viewBox="0 0 512 512" height="64px">
28
+ <path class="btnColor" fill="#E04F5F"
29
+ d="M504.1,256C504.1,119,393,7.9,256,7.9C119,7.9,7.9,119,7.9,256C7.9,393,119,504.1,256,504.1C393,504.1,504.1,393,504.1,256z" />
30
+ <path fill="#FFF"
31
+ d="M285,256l72.5-84.2c7.9-9.2,6.9-23-2.3-31c-9.2-7.9-23-6.9-30.9,2.3L256,222.4l-68.2-79.2c-7.9-9.2-21.8-10.2-31-2.3c-9.2,7.9-10.2,21.8-2.3,31L227,256l-72.5,84.2c-7.9,9.2-6.9,23,2.3,31c4.1,3.6,9.2,5.3,14.3,5.3c6.2,0,12.3-2.6,16.6-7.6l68.2-79.2l68.2,79.2c4.3,5,10.5,7.6,16.6,7.6c5.1,0,10.2-1.7,14.3-5.3c9.2-7.9,10.2-21.8,2.3-31L285,256z" />
32
+ </svg>
33
+ </div>
34
+ </div>
35
+ <div id="chatting" class="chatting">
36
+ <ul id="listUL">
37
+ </ul>
38
+ </div>
39
+ </div>
40
+ <footer>
41
+ <div class="sendBar">
42
+ <input id="inputMSG" onkeypress="isEnter(event)" type="text" placeholder="Type a message" autofocus>
43
+ <svg onclick="sendMsg()" viewBox="0 0 24 24" width="24" height="24" class="">
44
+ <path fill="currentColor"
45
+ d="M1.101 21.757 23.8 12.028 1.101 2.3l.011 7.912 13.623 1.816-13.623 1.817-.011 7.912z"></path>
46
+ </svg>
47
+ </div>
48
+ </footer>
49
+
50
+ </body>
51
+
52
+ </html>
bot/index.py ADDED
File without changes
bot/instagram.svg ADDED
bot/linkedin.svg ADDED
bot/pdf.png ADDED
bot/phone.svg ADDED
bot/php/admin.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>Admin Panel</title>
6
+ </head>
7
+ <body>
8
+ <h1>Admin Panel</h1>
9
+
10
+ <!-- Form to Add Schedule and Link -->
11
+ <h2>Add Schedule and Link for Applicant</h2>
12
+ <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST">
13
+ <label for="applicant_code">Applicant Code:</label>
14
+ <input type="text" id="applicant_code" name="applicant_code" required><br><br>
15
+
16
+ <label for="schedule_date">Schedule Date:</label>
17
+ <input type="date" id="schedule_date" name="schedule_date" required><br><br>
18
+
19
+ <label for="link">Link:</label>
20
+ <input type="text" id="link" name="link" required><br><br>
21
+
22
+ <input type="submit" name="submit" value="Add Schedule and Link">
23
+ </form>
24
+
25
+ <hr>
26
+
27
+ <!-- Display Existing Schedules and Links -->
28
+ <h2>Existing Schedules and Links</h2>
29
+ <table border="1">
30
+ <tr>
31
+ <th>Applicant Code</th>
32
+ <th>Schedule Date</th>
33
+ <th>Link</th>
34
+ <th>Action</th>
35
+ </tr>
36
+ <?php
37
+ // Database Connection
38
+ $servername = "localhost";
39
+ $username = "root";
40
+ $password = "";
41
+ $dbname = "angelol";
42
+
43
+ // Create connection
44
+ $conn = new mysqli($servername, $username, $password, $dbname);
45
+
46
+ // Check connection
47
+ if ($conn->connect_error) {
48
+ die("Connection failed: " . $conn->connect_error);
49
+ }
50
+
51
+ // If form is submitted, add new schedule and link
52
+ if(isset($_POST['submit'])) {
53
+ $applicantCode = $_POST['applicant_code'];
54
+ $scheduleDate = $_POST['schedule_date'];
55
+ $link = $_POST['link'];
56
+
57
+ // SQL to insert data into applicant_schedule table
58
+ $sql = "INSERT INTO applicant_schedule (applicant_code, schedule_date, link)
59
+ VALUES ('$applicantCode', '$scheduleDate', '$link')";
60
+
61
+ if ($conn->query($sql) === TRUE) {
62
+ // Data inserted successfully
63
+ echo "<script>alert('New schedule and link added successfully');</script>";
64
+ } else {
65
+ // Error inserting data
66
+ echo "Error: " . $sql . "<br>" . $conn->error;
67
+ }
68
+ }
69
+
70
+ // SQL to retrieve schedules and links
71
+ $sql = "SELECT * FROM applicant_schedule";
72
+ $result = $conn->query($sql);
73
+
74
+ if ($result->num_rows > 0) {
75
+ // Output data of each row
76
+ while($row = $result->fetch_assoc()) {
77
+ echo "<tr>";
78
+ echo "<td>" . $row["applicant_code"] . "</td>";
79
+ echo "<td>" . $row["schedule_date"] . "</td>";
80
+ echo "<td>" . $row["link"] . "</td>";
81
+ echo "<td><a href='delete_schedule_link.php?id=" . $row["id"] . "'>Delete</a></td>";
82
+ echo "</tr>";
83
+ }
84
+ } else {
85
+ echo "<tr><td colspan='4'>No schedules and links found</td></tr>";
86
+ }
87
+ $conn->close();
88
+ ?>
89
+ </table>
90
+ </body>
91
+ </html>
bot/php/create_update_schedule.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Database Connection
3
+ $servername = "localhost";
4
+ $username = "root";
5
+ $password = "";
6
+ $dbname = "angelol";
7
+
8
+ // Create connection
9
+ $conn = new mysqli($servername, $username, $password, $dbname);
10
+
11
+ // Check connection
12
+ if ($conn->connect_error) {
13
+ die("Connection failed: " . $conn->connect_error);
14
+ }
15
+
16
+ $applicantCode = $_POST['applicant_code'];
17
+ $scheduleDate = $_POST['schedule_date'];
18
+ $link = $_POST['link'];
19
+
20
+ // Check if applicant code already exists
21
+ $sql_check = "SELECT * FROM applicant_schedule WHERE applicant_code = '$applicantCode'";
22
+ $result_check = $conn->query($sql_check);
23
+
24
+ if ($result_check->num_rows > 0) {
25
+ // Update existing record
26
+ $sql_update = "UPDATE applicant_schedule SET schedule_date = '$scheduleDate', link = '$link' WHERE applicant_code = '$applicantCode'";
27
+ if ($conn->query($sql_update) === TRUE) {
28
+ echo "Record updated successfully";
29
+ } else {
30
+ echo "Error updating record: " . $conn->error;
31
+ }
32
+ } else {
33
+ // Insert new record
34
+ $sql_insert = "INSERT INTO applicant_schedule (applicant_code, schedule_date, link) VALUES ('$applicantCode', '$scheduleDate', '$link')";
35
+ if ($conn->query($sql_insert) === TRUE) {
36
+ echo "New record created successfully";
37
+ } else {
38
+ echo "Error: " . $sql_insert . "<br>" . $conn->error;
39
+ }
40
+ }
41
+
42
+ $conn->close();
43
+ ?>
bot/php/delete_schedule_link.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Database Connection
3
+ $servername = "localhost";
4
+ $username = "root";
5
+ $password = "";
6
+ $dbname = "angelol";
7
+
8
+ // Create connection
9
+ $conn = new mysqli($servername, $username, $password, $dbname);
10
+
11
+ // Check connection
12
+ if ($conn->connect_error) {
13
+ die("Connection failed: " . $conn->connect_error);
14
+ }
15
+
16
+ // Check if ID is set and valid
17
+ if (isset($_POST['id']) && is_numeric($_POST['id'])) {
18
+ $id = $_POST['id'];
19
+
20
+ // SQL to delete schedule
21
+ $sql = "DELETE FROM applicant_schedule WHERE id = $id";
22
+
23
+ if ($conn->query($sql) === TRUE) {
24
+ echo "Schedule deleted successfully";
25
+ } else {
26
+ echo "Error deleting schedule: " . $conn->error;
27
+ }
28
+ } else {
29
+ echo "Invalid ID";
30
+ }
31
+
32
+ $conn->close();
33
+ ?>
bot/php/get_applications.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Connect to your database
3
+ $servername = "localhost";
4
+ $username = "root";
5
+ $password = "";
6
+ $dbname = "angelol";
7
+
8
+ $conn = new mysqli($servername, $username, $password, $dbname);
9
+ if ($conn->connect_error) {
10
+ die("Connection failed: " . $conn->connect_error);
11
+ }
12
+
13
+ // Query to get all applications
14
+ $sql = "SELECT * FROM applications";
15
+ $result = $conn->query($sql);
16
+
17
+ $applications = array();
18
+ if ($result->num_rows > 0) {
19
+ while ($row = $result->fetch_assoc()) {
20
+ $applications[] = $row;
21
+ }
22
+ }
23
+
24
+ $conn->close();
25
+
26
+ // Return applications as JSON
27
+ header('Content-Type: application/json');
28
+ echo json_encode($applications);
29
+ ?>
bot/php/get_link.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Connect to your database
3
+ $servername = "localhost";
4
+ $username = "your_username";
5
+ $password = "your_password";
6
+ $dbname = "your_database";
7
+
8
+ $conn = new mysqli($servername, $username, $password, $dbname);
9
+ if ($conn->connect_error) {
10
+ die("Connection failed: " . $conn->connect_error);
11
+ }
12
+
13
+ // Get code from POST request
14
+ $code = $_POST['code'];
15
+
16
+ // Query to get link based on code
17
+ $sql = "SELECT link FROM applications WHERE code='$code'";
18
+ $result = $conn->query($sql);
19
+
20
+ $link = "";
21
+ if ($result->num_rows > 0) {
22
+ $row = $result->fetch_assoc();
23
+ $link = $row['link'];
24
+ }
25
+
26
+ $conn->close();
27
+
28
+ // Return link
29
+ echo $link;
30
+ ?>
bot/php/get_schedule.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Database Connection
4
+ $servername = "localhost";
5
+ $username = "root";
6
+ $password = "";
7
+ $dbname = "angelol";
8
+
9
+ // Create connection
10
+ $conn = new mysqli($servername, $username, $password, $dbname);
11
+
12
+ // Check connection
13
+ if ($conn->connect_error) {
14
+ die("Connection failed: " . $conn->connect_error);
15
+ }
16
+
17
+ // Assume $code is retrieved from POST data
18
+ $code = $_POST['code'];
19
+
20
+ // SQL to retrieve schedule date and link based on code
21
+ $sql = "SELECT schedule_date, interview_link FROM interview_schedules WHERE applicant_code = '$code'";
22
+
23
+ $result = $conn->query($sql);
24
+
25
+ if ($result->num_rows > 0) {
26
+ $row = $result->fetch_assoc();
27
+ $scheduleDate = $row["schedule_date"];
28
+ $link = $row["interview_link"];
29
+
30
+ $response = array(
31
+ "success" => true,
32
+ "scheduleDate" => $scheduleDate,
33
+ "link" => $link
34
+ );
35
+ } else {
36
+ $response = array(
37
+ "success" => false,
38
+ "message" => "No schedule found for the provided code"
39
+ );
40
+ }
41
+
42
+ $conn->close();
43
+
44
+ header('Content-Type: application/json');
45
+ echo json_encode($response);
46
+
47
+ ?>
bot/php/save_applicant_info.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Database Connection
4
+ $servername = "localhost";
5
+ $username = "root";
6
+ $password = "root";
7
+ $dbname = "angelol";
8
+
9
+ // Create connection
10
+ $conn = new mysqli($servername, $username, $password, $dbname);
11
+
12
+ // Check connection
13
+ if ($conn->connect_error) {
14
+ die("Connection failed: " . $conn->connect_error);
15
+ }
16
+
17
+ // Get applicant data from POST
18
+ $firstName = $_POST['firstName'];
19
+ $lastName = $_POST['lastName'];
20
+ $middleName = $_POST['middleName'];
21
+ $age = $_POST['age'];
22
+ $email = $_POST['email'];
23
+ $phoneNumber = $_POST['phoneNumber'];
24
+ $address = $_POST['address'];
25
+
26
+ // Function to generate unique 12-character alphanumeric code
27
+ function generateCode() {
28
+ $characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
29
+ $result = '';
30
+ $charactersLength = strlen($characters);
31
+ for ($i = 0; $i < 12; $i++) {
32
+ $result .= $characters[rand(0, $charactersLength - 1)];
33
+ }
34
+ return $result;
35
+ }
36
+
37
+ // Generate unique code
38
+ $applicantCode = generateCode();
39
+
40
+ // SQL to insert data into applicants table
41
+ $sql = "INSERT INTO applicants (first_name, last_name, middle_name, age, email, phone_number, address, code, status)
42
+ VALUES ('$firstName', '$lastName', '$middleName', '$age', '$email', '$phoneNumber', '$address', '$applicantCode', 'Active')";
43
+
44
+ if ($conn->query($sql) === TRUE) {
45
+ // Data inserted successfully
46
+ echo "Thank you! Your application has been submitted. To track the status of your application, here is a unique code: A-" . $applicantCode . ". Just send this format to check: A-" . $applicantCode;
47
+ } else {
48
+ // Error inserting data
49
+ echo "Error: " . $sql . "<br>" . $conn->error;
50
+ }
51
+
52
+ $conn->close();
53
+
54
+ ?>
bot/replies.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "a":"",
3
+ "b":"",
4
+ "d":"",
5
+ "e":"",
6
+ "f":"",
7
+ "g":"",
8
+ "h":"",
9
+ "i":"",
10
+ "j":"",
11
+ "k":"",
12
+ "l":"",
13
+ "m":"",
14
+ "n":"",
15
+ "o":"",
16
+ "p":"",
17
+ "q":"",
18
+ "r":"",
19
+ "s":"",
20
+ "t":"",
21
+ "u":"",
22
+ "v":"",
23
+ "w":"",
24
+ "x":"",
25
+ "y":"",
26
+ "z":"",
27
+ "help":"<h1 onload='asax()'> Hello </h1>"
28
+ }
bot/script.js ADDED
@@ -0,0 +1,393 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* OSCAR ANGELO COLLINS RIVERA @ 2024 */
2
+ console.log('OSCAR ANGELO COLLINS RIVERA','Angelo Collins on facebook');
3
+
4
+
5
+ var audio = new Audio('sentmessage.mp3');
6
+ var contactAngelo = "<div class='social'> <a target='_blank' href='tel:+639670971677'> <div class='socialItem' id='call'><img class='socialItemI' src='phone.svg'/><label class='number'></label></label></div> </a> <a href='mailto:[email protected]'> <div class='socialItem'><img class='socialItemI' src='gmail.svg' alt=''></div> </a> <a target='_blank' href='https://github.com/angeloqq03'> <div class='socialItem'><img class='socialItemI' src='github.svg' alt=''></div> </a> <a target='_blank' href='https://wa.me/639670971677'> <div class='socialItem'><img class='socialItemI' src='whatsapp.svg' alt=''>";
7
+
8
+ var addressString = "<iframe src='https://www.google.com/maps/place/Teresa,+Rizal/@14.564381,121.2249255,14z/data=!3m1!4b1!4m6!3m5!1s0x3397c064d31895b3:0x65a006a4044b8b23!8m2!3d14.5596491!4d121.2225713!16s%2Fg%2F11fyxbpxh8?entry=ttu' frameborder='0' />";
9
+
10
+ const $ = {
11
+ a:[],
12
+
13
+ selector:{
14
+ selector1:['selector here with options']
15
+ }
16
+ }
17
+
18
+
19
+ const conversation = {
20
+ stage: 0,
21
+ applicantInfo: {
22
+ firstName: "",
23
+ lastName: "",
24
+ middleName: "",
25
+ age: "",
26
+ email: "",
27
+ phoneNumber: "",
28
+ address: "",
29
+ code: ""
30
+ }
31
+ };
32
+
33
+ // Define a global variable to store the fetched replies
34
+ let replies = {};
35
+
36
+
37
+ setTimeout(() => {
38
+ repp(`
39
+ <h1>Hello</h1><br/>
40
+ <select class="select-start" id="select-start" onchange="started()">
41
+ <option> SELECT </option>
42
+ <option value="Services">Services</option>
43
+ <option> </option>
44
+ <option> </option>
45
+ </select>
46
+ `)
47
+ }, 1200);
48
+
49
+
50
+ const started = (selector) => {
51
+ selector = document.getElementById('select-start');
52
+
53
+ switch (selector.value) {
54
+ case "Services":
55
+ repp(`
56
+ <iframe class="ifrmm" src="/form.html" frameborder="0"/>
57
+ `)
58
+ break;
59
+
60
+ default:
61
+ break;
62
+ }
63
+ }
64
+
65
+
66
+ // Function to fetch replies from JSON file
67
+ function fetchReplies() {
68
+ fetch('replies.json')
69
+ .then(response => response.json())
70
+ .then(data => {
71
+ replies = data;
72
+ })
73
+ .catch(error => {
74
+ console.error('Error fetching replies:', error);
75
+ });
76
+ }
77
+
78
+ // Call fetchReplies() to load replies when the script starts
79
+ fetchReplies();
80
+
81
+ // Function to set last seen time
82
+ function setLastSeen() {
83
+ var date = new Date();
84
+ var lastSeen = document.getElementById("lastseen");
85
+ lastSeen.innerText = "last seen today at " + date.getHours() + ":" + date.getMinutes()
86
+ }
87
+
88
+ // Function to close full-screen display picture
89
+ function closeFullDP() {
90
+ var x = document.getElementById("fullScreenDP");
91
+ if (x.style.display === 'flex') {
92
+ x.style.display = 'none';
93
+ } else {
94
+ x.style.display = 'flex';
95
+ }
96
+ }
97
+
98
+ // Function to open full-screen display picture
99
+ function openFullScreenDP() {
100
+ var x = document.getElementById("fullScreenDP");
101
+ if (x.style.display === 'flex') {
102
+ x.style.display = 'none';
103
+ } else {
104
+ x.style.display = 'flex';
105
+ }
106
+ }
107
+
108
+ // Function to check if enter key is pressed
109
+ function isEnter(event) {
110
+ if (event.keyCode == 13) {
111
+ sendMsg();
112
+ }
113
+ }
114
+
115
+ // Function to send message
116
+ function sendMsg() {
117
+ var input = document.getElementById("inputMSG");
118
+ var ti = input.value;
119
+ if (input.value == "") {
120
+ return;
121
+ }
122
+ var date = new Date();
123
+ var myLI = document.createElement("li");
124
+ var myDiv = document.createElement("div");
125
+ var crDiv = document.createElement("div");
126
+ var dateLabel = document.createElement("label");
127
+ dateLabel.innerText = date.getHours() + ":" + date.getMinutes();
128
+ myDiv.setAttribute("class", "sent");
129
+ crDiv.setAttribute("class", "green");
130
+ crDiv.innerText = input.value;
131
+ myDiv.appendChild(crDiv);
132
+ myLI.appendChild(myDiv);
133
+ crDiv.appendChild(dateLabel);
134
+ document.getElementById("listUL").appendChild(myLI);
135
+ var s = document.getElementById("chatting");
136
+ s.scrollTop = s.scrollHeight;
137
+ setTimeout(function () { wNreply(ti) }, 2000);
138
+ input.value = "";
139
+ playSound();
140
+ }
141
+
142
+ // Function to generate unique code
143
+ function generateUniqueCode() {
144
+ var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
145
+ var code = '';
146
+ for (var i = 0; i < 12; i++) {
147
+ code += characters.charAt(Math.floor(Math.random() * characters.length));
148
+ }
149
+ return code;
150
+ }
151
+
152
+ // Function to play sent message sound
153
+ function playSound() {
154
+ audio.play();
155
+ }
156
+
157
+ // Function to send response
158
+ function sendResponse() {
159
+ setTimeout(setLastSeen, 2000);
160
+ var date = new Date();
161
+ var myLI = document.createElement("li");
162
+ var myDiv = document.createElement("div");
163
+ var crDiv = document.createElement("div");
164
+ var dateLabel = document.createElement("label");
165
+ dateLabel.innerText = date.getHours() + ":" + date.getMinutes();
166
+ myDiv.setAttribute("class", "received");
167
+ crDiv.setAttribute("class", "grey");
168
+ dateLabel.setAttribute("class", "dateLabel");
169
+ crDiv.innerText = "";
170
+ myDiv.appendChild(crDiv);
171
+ myLI.appendChild(myDiv);
172
+ crDiv.appendChild(dateLabel);
173
+ document.getElementById("listUL").appendChild(myLI);
174
+ var s = document.getElementById("chatting");
175
+ s.scrollTop = s.scrollHeight;
176
+ playSound();
177
+ }
178
+
179
+
180
+
181
+ // Function to process user input and reply
182
+ function wNreply(inputText) {
183
+ var lastSeen = document.getElementById("lastseen");
184
+ lastSeen.innerText = "typing...";
185
+ var name = "";
186
+
187
+
188
+
189
+ let user = inputText.toLowerCase();
190
+
191
+ if (user.includes("my name is")) {
192
+ name = inputText.substring(inputText.indexOf("is") + 2);
193
+ if (name.toLowerCase().includes(name)) {
194
+ repp("Ohh! That's my name too" + name);
195
+ return
196
+ }
197
+ inputText = "input";
198
+ } else if (user.includes("gusto") || user.includes('applying')) {
199
+ repp("Im glad that you're interested for a Customer Service Representative Position. To get started, please enter your first name.");
200
+ conversation.stage = 1;
201
+ return;
202
+ } else if (user.includes('fb')) {
203
+ repp(DATA.form.form1);
204
+ return;
205
+ } else if (user.startsWith('a-')) {
206
+ checkApplicationStatus(user.substr(2)); // Extract the code after "A-"
207
+ return;
208
+ }
209
+
210
+ switch (user.trim()) {
211
+ case "help":
212
+ repp("help");
213
+ break;
214
+ case "resume":
215
+ repp(resumeString);
216
+ break;
217
+ case "intro":
218
+ repp("intro");
219
+ break;
220
+ case "i want to apply":
221
+ case "applicant":
222
+ case "apply":
223
+ case "applying for customer service position":
224
+ repp("To get started, please type your first name.");
225
+ conversation.stage = 1;
226
+ break;
227
+ case "clear":
228
+ clearChat();
229
+ break;
230
+ case "time":
231
+ var date = new Date();
232
+ repp("Current time is " + date.getHours() + ":" + date.getMinutes());
233
+ break;
234
+ case "date":
235
+ var date = new Date();
236
+ repp("Current date is " + date.getDate() + "/" + date.getMonth() + "/" + date.getFullYear());
237
+ break;
238
+ default:
239
+ if (conversation.stage > 0) {
240
+ // Handle collecting applicant information
241
+ processApplicantInfo(user.trim());
242
+ } else {
243
+ repp('Im quite not sure I understand that. You can try other term for that or just type "help" to see the other available commands.');
244
+ }
245
+ break;
246
+ }
247
+
248
+ }
249
+
250
+ // Function to process applicant information
251
+ function processApplicantInfo(input) {
252
+ switch (conversation.stage) {
253
+
254
+ case 1:
255
+ conversation.applicantInfo.firstName = input;
256
+ conversation.stage = 2;
257
+ repp("Next, please type your last name.");
258
+ break;
259
+ case 2:
260
+ conversation.applicantInfo.lastName = input;
261
+ conversation.stage = 3;
262
+ repp("Please provide your middle name (if any), or type 'none'.");
263
+ break;
264
+ case 3:
265
+ if (input.toLowerCase() === "none") {
266
+ conversation.applicantInfo.middleName = "None";
267
+ } else {
268
+ conversation.applicantInfo.middleName = input;
269
+ }
270
+ conversation.stage = 4;
271
+ repp("What is your age?");
272
+ break;
273
+ case 4:
274
+ conversation.applicantInfo.age = input;
275
+ conversation.stage = 5;
276
+ repp("Please enter your email address.");
277
+ break;
278
+ case 5:
279
+ conversation.applicantInfo.email = input;
280
+ conversation.stage = 6;
281
+ repp("Next, please provide your phone number.");
282
+ break;
283
+ case 6:
284
+ conversation.applicantInfo.phoneNumber = input;
285
+ conversation.stage = 7;
286
+ repp("Finally, type your present address.");
287
+ break;
288
+ case 7:
289
+ conversation.applicantInfo.address = input;
290
+ conversation.applicantInfo.code = generateUniqueCode();
291
+ saveApplicantInfo(conversation.applicantInfo); // Call a function to save this information to the database
292
+ conversation.stage = 0; // Reset the conversation stage
293
+ repp("Thank you! Your application has been submitted. To track the status of your application, here is a unique code: A-" + conversation.applicantInfo.code + ". Just send 'A-" + conversation.applicantInfo.code + "' to check.");
294
+ break;
295
+ default:
296
+ repp("I'm sorry, I didn't understand that.");
297
+ break;
298
+ }
299
+ }
300
+
301
+ // Function to clear chat
302
+ function clearChat() {
303
+ document.getElementById("listUL").innerHTML = "";
304
+ wNreply('intro');
305
+ }
306
+
307
+ // Function to fetch replies from JSON file
308
+ function repp(textKey) {
309
+ setTimeout(setLastSeen, 2000);
310
+ var date = new Date();
311
+ var myLI = document.createElement("li");
312
+ var myDiv = document.createElement("div");
313
+ var crDiv = document.createElement("div");
314
+ var dateLabel = document.createElement("label");
315
+ dateLabel.setAttribute("id", "sentlabel");
316
+ dateLabel.id = "sentlabel";
317
+ dateLabel.innerText = date.getHours() + ":" + date.getMinutes();
318
+ myDiv.setAttribute("class", "received");
319
+ crDiv.setAttribute("class", "grey");
320
+
321
+ // Check if the textKey exists in fetched replies, otherwise use the textKey itself
322
+ const replyText = replies[textKey] ? replies[textKey] : textKey;
323
+
324
+ crDiv.innerHTML = replyText;
325
+ myDiv.appendChild(crDiv);
326
+ myLI.appendChild(myDiv);
327
+ crDiv.appendChild(dateLabel);
328
+ document.getElementById("listUL").appendChild(myLI);
329
+ var s = document.getElementById("chatting");
330
+ s.scrollTop = s.scrollHeight;
331
+ playSound();
332
+ }
333
+
334
+ // Function to save applicant information
335
+ function saveApplicantInfo(applicantInfo) {
336
+ var xhr = new XMLHttpRequest();
337
+ xhr.open("POST", "save_applicant_info.php", true);
338
+ xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
339
+ xhr.onreadystatechange = function() {
340
+ if (xhr.readyState === 4 && xhr.status === 200) {
341
+ console.log(xhr.responseText); // Log server response
342
+ }
343
+ };
344
+ var data = "firstName=" + encodeURIComponent(applicantInfo.firstName) +
345
+ "&lastName=" + encodeURIComponent(applicantInfo.lastName) +
346
+ "&middleName=" + encodeURIComponent(applicantInfo.middleName) +
347
+ "&age=" + encodeURIComponent(applicantInfo.age) +
348
+ "&email=" + encodeURIComponent(applicantInfo.email) +
349
+ "&phoneNumber=" + encodeURIComponent(applicantInfo.phoneNumber) +
350
+ "&address=" + encodeURIComponent(applicantInfo.address) +
351
+ "&code=" + encodeURIComponent(applicantInfo.code);
352
+ xhr.send(data);
353
+ }
354
+
355
+ // Function to check application status
356
+ function checkApplicationStatus(code) {
357
+ repp("Checking application status for code: " + code);
358
+
359
+ var xhr = new XMLHttpRequest();
360
+ xhr.open("POST", "get_interview_schedule.php", true);
361
+ xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
362
+ xhr.onreadystatechange = function() {
363
+ if (xhr.readyState === 4 && xhr.status === 200) {
364
+ var response = JSON.parse(xhr.responseText);
365
+ if (response.success) {
366
+ var scheduleDate = response.scheduleDate;
367
+ var link = response.link;
368
+ repp("Your application is currently scheduled for an Initial Interview on " + scheduleDate + ". Click here for more details: " + link);
369
+ } else {
370
+ repp("No schedule found for the provided code.");
371
+ }
372
+ }
373
+ };
374
+ xhr.send("code=" + encodeURIComponent(code));
375
+ }
376
+
377
+ // Function to get interview schedule
378
+ function getInterviewSchedule(code, callback) {
379
+ var xhr = new XMLHttpRequest();
380
+ xhr.open("POST", "get_schedule.php", true);
381
+ xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
382
+ xhr.onreadystatechange = function() {
383
+ if (xhr.readyState === 4 && xhr.status === 200) {
384
+ var response = JSON.parse(xhr.responseText);
385
+ if (response.success) {
386
+ callback(response.scheduleDate, response.link);
387
+ } else {
388
+ callback(null, null);
389
+ }
390
+ }
391
+ };
392
+ xhr.send("code=" + encodeURIComponent(code));
393
+ }
bot/scripts.js ADDED
@@ -0,0 +1,309 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var audio = new Audio('sentmessage.mp3');
2
+ var contactAngelo = "<div class='social'> <a target='_blank' href='tel:+639670971677'> <div class='socialItem' id='call'><img class='socialItemI' src='phone.svg'/><label class='number'></label></label></div> </a> <a href='mailto:[email protected]'> <div class='socialItem'><img class='socialItemI' src='gmail.svg' alt=''></div> </a> <a target='_blank' href='https://github.com/angeloqq03'> <div class='socialItem'><img class='socialItemI' src='github.svg' alt=''></div> </a> <a target='_blank' href='https://wa.me/639670971677'> <div class='socialItem'><img class='socialItemI' src='whatsapp.svg' alt=''>";
3
+
4
+ var addressString = "";
5
+
6
+ const DATA = {
7
+ goverment:{
8
+ psa:{
9
+ a:["Click the link to proceed on <a href='psa.com'>Philippines Statistics Authority </a>"]
10
+ }
11
+ },
12
+
13
+ social:{
14
+ facebook:[],
15
+ },
16
+
17
+ form:{
18
+ form1:[''],
19
+ },
20
+
21
+ selector:{
22
+ selector1:['selector here with options']
23
+ }
24
+ }
25
+
26
+ const conversation = {
27
+ stage: 0,
28
+ applicantInfo: {
29
+ firstName: "",
30
+ lastName: "",
31
+ middleName: "",
32
+ age: "",
33
+ email: "",
34
+ phoneNumber: "",
35
+ address: "",
36
+ code: ""
37
+ }
38
+ };
39
+
40
+ function startFunction() {
41
+ setLastSeen();
42
+ wNreply("intro");
43
+ }
44
+
45
+ function setLastSeen() {
46
+ var date = new Date();
47
+ var lastSeen = document.getElementById("lastseen");
48
+ lastSeen.innerText = "last seen today at " + date.getHours() + ":" + date.getMinutes()
49
+ }
50
+
51
+ function closeFullDP() {
52
+ var x = document.getElementById("fullScreenDP");
53
+ if (x.style.display === 'flex') {
54
+ x.style.display = 'none';
55
+ } else {
56
+ x.style.display = 'flex';
57
+ }
58
+ }
59
+
60
+ function openFullScreenDP() {
61
+ var x = document.getElementById("fullScreenDP");
62
+ if (x.style.display === 'flex') {
63
+ x.style.display = 'none';
64
+ } else {
65
+ x.style.display = 'flex';
66
+ }
67
+ }
68
+
69
+ function isEnter(event) {
70
+ if (event.keyCode == 13) {
71
+ sendMsg();
72
+ }
73
+ }
74
+
75
+ function sendMsg() {
76
+ var input = document.getElementById("inputMSG");
77
+ var ti = input.value;
78
+ if (input.value == "") {
79
+ return;
80
+ }
81
+ var date = new Date();
82
+ var myLI = document.createElement("li");
83
+ var myDiv = document.createElement("div");
84
+ var crDiv = document.createElement("div");
85
+ var dateLabel = document.createElement("label");
86
+ dateLabel.innerText = date.getHours() + ":" + date.getMinutes();
87
+ myDiv.setAttribute("class", "sent");
88
+ crDiv.setAttribute("class", "green");
89
+ dateLabel.setAttribute("class", "dateLabel");
90
+ crDiv.innerText = input.value;
91
+ myDiv.appendChild(crDiv);
92
+ myLI.appendChild(myDiv);
93
+ crDiv.appendChild(dateLabel);
94
+ document.getElementById("listUL").appendChild(myLI);
95
+ var s = document.getElementById("chatting");
96
+ s.scrollTop = s.scrollHeight;
97
+ setTimeout(function () { wNreply(ti) }, 1500);
98
+ input.value = "";
99
+ playSound();
100
+ }
101
+
102
+ function wNreply(inputText) {
103
+ var lastSeen = document.getElementById("lastseen");
104
+ lastSeen.innerText = "typing...";
105
+ var name = "";
106
+
107
+ let user = inputText.toLowerCase();
108
+
109
+ if (user.includes("my name is")) {
110
+ name = inputText.substring(inputText.indexOf("is") + 2);
111
+ if (name.toLowerCase().includes("angelo")) {
112
+ sendTextMessage("Ohh! That's my name too");
113
+
114
+ }
115
+ inputText = "input";
116
+ } else if (user.includes("gusto")||user.includes('applying')) {
117
+ sendTextMessage("Im glad that you're interedted for a Customer Service Representative Position. To get started, please enter your first name."),conversation.stage = 0;
118
+ return;
119
+ } else if (user.includes('fb')) {
120
+ sendTextMessage(DATA.form.form1);
121
+ return;
122
+ } else if ("") {
123
+ alert('&@');
124
+ }
125
+
126
+ switch (user.trim()) {
127
+ case "help":
128
+ sendTextMessage("<span class='sk'>You may send the following basic keywords<br>e.g<br><span class='bold'>'Apply'</span> - for applicants. <br><span class='bold'>'Interested'</span> - to know more about the process of application. <br><span class='bold'>'Newbie'</span> - if you are new in the world of Customer Service. <br><span class='bold'>'Contact'</span> - reach out to me personally. <br><span class='bold'>'FAQ's</span> - to see the most frequently asked questions about BPO Industry<br><span class='bold'>'Clear'</span> - to clear conversation<br><br> - Or you can just ask me anything that is Customer Service Related.<br>");
129
+ break;
130
+ case "resume":
131
+ sendTextMessage(resumeString);
132
+ break;
133
+ case "intro":
134
+ sendTextMessage("Hi There! <br> <br> I'm ACBA, Angelo Collins Bot Assistant. I am here to assist you.<br><br>Whether you're a newbie, or with experience. I will guide and assist you throughout the process.<br><br>You may send the keyword ''Help'' to know more.");
135
+ break;
136
+ case "i want to apply":
137
+ case "applicant":
138
+ case "apply":
139
+ case "applying for customer service position":
140
+ sendTextMessage("To get started, please type your first name.");
141
+ conversation.stage = 1;
142
+ break;
143
+ case "clear":
144
+ clearChat();
145
+ break;
146
+ case "time":
147
+ var date = new Date();
148
+ sendTextMessage("Current time is " + date.getHours() + ":" + date.getMinutes());
149
+ break;
150
+ case "date":
151
+ var date = new Date();
152
+ sendTextMessage("Current date is " + date.getDate() + "/" + date.getMonth() + "/" + date.getFullYear());
153
+ break;
154
+ default:
155
+ if (conversation.stage > 0) {
156
+ // Handle collecting applicant information
157
+ processApplicantInfo(user.trim());
158
+ } else if (user.includes("status of a-")) {
159
+ var code = user.split("a-")[1].toUpperCase();
160
+ checkApplicationStatus(code);
161
+ } else {
162
+ sendTextMessage('Im quite not sure I understand that. You can try other term for that or just type "help" to see the other available commands.');
163
+ }
164
+ break;
165
+ }
166
+ }
167
+
168
+ function processApplicantInfo(input) {
169
+ switch (conversation.stage) {
170
+
171
+ case 1:
172
+ conversation.applicantInfo.firstName = input;
173
+ conversation.stage = 2;
174
+ sendTextMessage("Next, please type your last name.");
175
+ break;
176
+ case 2:
177
+ conversation.applicantInfo.lastName = input;
178
+ conversation.stage = 3;
179
+ sendTextMessage("Please provide your middle name (if any), or type 'none'.");
180
+ break;
181
+ case 3:
182
+ if (input.toLowerCase() === "none") {
183
+ conversation.applicantInfo.middleName = "None";
184
+ } else {
185
+ conversation.applicantInfo.middleName = input;
186
+ }
187
+ conversation.stage = 4;
188
+ sendTextMessage("What is your age?");
189
+ break;
190
+ case 4:
191
+ conversation.applicantInfo.age = input;
192
+ conversation.stage = 5;
193
+ sendTextMessage("Please enter your email address.");
194
+ break;
195
+ case 5:
196
+ conversation.applicantInfo.email = input;
197
+ conversation.stage = 6;
198
+ sendTextMessage("Next, please provide your phone number.");
199
+ break;
200
+ case 6:
201
+ conversation.applicantInfo.phoneNumber = input;
202
+ conversation.stage = 7;
203
+ sendTextMessage("Finally, type your present address.");
204
+ break;
205
+ case 7:
206
+ conversation.applicantInfo.address = input;
207
+ conversation.stage = 8;
208
+ saveApplicantInfo(conversation.applicantInfo); // Call a function to save this information to the database
209
+ break;
210
+ case 8:
211
+ conversation.applicantInfo.code = generateCode(); // Generate and assign unique code
212
+ sendTextMessage(`Thank you! Your application has been submitted. To track the status of your application, here is your unique code: A-${conversation.applicantInfo.code}. Just send "Status of A-${conversation.applicantInfo.code}" to check.`);
213
+ conversation.stage = 0; // Reset the conversation stage
214
+ break;
215
+ default:
216
+ sendTextMessage("I'm sorry, I didn't understand that.");
217
+ break;
218
+ }
219
+ }
220
+
221
+ function clearChat() {
222
+ document.getElementById("listUL").innerHTML = "";
223
+ wNreply('intro');
224
+ }
225
+
226
+ function sendTextMessage(textToSend) {
227
+ setTimeout(setLastSeen, 1000);
228
+ var date = new Date();
229
+ var myLI = document.createElement("li");
230
+ var myDiv = document.createElement("div");
231
+ var crDiv = document.createElement("div");
232
+ var dateLabel = document.createElement("label");
233
+ dateLabel.setAttribute("id", "sentlabel");
234
+ dateLabel.id = "sentlabel";
235
+ dateLabel.innerText = date.getHours() + ":" + date.getMinutes();
236
+ myDiv.setAttribute("class", "received");
237
+ crDiv.setAttribute("class", "grey");
238
+ crDiv.innerHTML = textToSend;
239
+ myDiv.appendChild(crDiv);
240
+ myLI.appendChild(myDiv);
241
+ crDiv.appendChild(dateLabel);
242
+ document.getElementById("listUL").appendChild(myLI);
243
+ var s = document.getElementById("chatting");
244
+ s.scrollTop = s.scrollHeight;
245
+ playSound();
246
+ }
247
+
248
+ function generateCode() {
249
+ // Generate a unique 12-character alphanumeric code
250
+ var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
251
+ var code = '';
252
+ for (var i = 0; i < 12; i++) {
253
+ code += characters.charAt(Math.floor(Math.random() * characters.length));
254
+ }
255
+ return code;
256
+ }
257
+
258
+ function checkApplicationStatus(code) {
259
+ sendTextMessage("Checking application status...");
260
+
261
+ // Assume fetching status from server for the given code
262
+ var status = "Active";
263
+ var schedule = getInterviewSchedule(code);
264
+
265
+ switch (status) {
266
+ case "Active":
267
+ sendTextMessage(`Your application is currently Active and waiting for the initial interview on ${schedule}.`);
268
+ break;
269
+ case "Reviewed":
270
+ sendTextMessage("Your application is under review.");
271
+ break;
272
+ case "Initial Interview":
273
+ sendTextMessage(`Your application is scheduled for an Initial Interview on ${schedule}.`);
274
+ break;
275
+ case "Assessment":
276
+ sendTextMessage("Your application is currently in the Assessment stage.");
277
+ break;
278
+ case "Final Interview":
279
+ sendTextMessage(`Your application is scheduled for a Final Interview on ${schedule}.`);
280
+ break;
281
+ case "Passed":
282
+ sendTextMessage("Congratulations! Your application has passed all stages.");
283
+ break;
284
+ default:
285
+ sendTextMessage("No applications found with status: " + status);
286
+ break;
287
+ }
288
+ }
289
+
290
+ function getInterviewSchedule(code) {
291
+ let xhr = new XMLHttpRequest();
292
+ xhr.open("POST", "get_schedule.php", false);
293
+ xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
294
+ xhr.send("code=" + encodeURIComponent(code));
295
+
296
+ if (xhr.readyState === 4 && xhr.status === 200) {
297
+ return xhr.responseText;
298
+ } else {
299
+ return "No schedule available";
300
+ }
301
+ return "Interview schedule not found";
302
+ }
303
+
304
+ function saveApplicantInfo(applicantInfo) {
305
+ // Simulate saving applicant info to the database
306
+ // You can implement the server-side script to handle this
307
+ console.log("Saving applicant info to database:", applicantInfo);
308
+ }
309
+
bot/sentmessage.mp3 ADDED
Binary file (9.19 kB). View file
 
bot/style.css ADDED
@@ -0,0 +1,504 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ * {
2
+ padding: 0;
3
+ margin: 0;
4
+ font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
5
+ }
6
+
7
+ body {
8
+ margin: 0 auto;
9
+ background-color: #1b1b1b;
10
+ background-size: unset;
11
+ background-repeat: repeat;
12
+ height: 100dvh;
13
+ box-sizing: border-box;
14
+ scrollbar-width: 0px;
15
+ }
16
+
17
+ body::-webkit-scrollbar{
18
+ display:none;
19
+ }
20
+
21
+ nav {
22
+ display: flex;
23
+ height: 6%;
24
+ background-color: #202c33;
25
+ }
26
+
27
+ .navbar {
28
+ width: 100%;
29
+ display: flex;
30
+ background-color: #202c33;
31
+ }
32
+
33
+ .dpimg {
34
+ cursor: pointer;
35
+ border-radius: 100%;
36
+ width: 5%;
37
+ height: 5%;
38
+ height: auto;
39
+ margin: auto 0px;
40
+ margin-left: 10px;
41
+ }
42
+
43
+ .navbar .personalInfo {
44
+ line-height: 100%;
45
+ display: flex;
46
+ flex-direction: column;
47
+ margin: auto 0px;
48
+ margin-left: 2%;
49
+ }
50
+
51
+ .personalInfo #name {
52
+ color: #e9edef;
53
+ margin-bottom: 4px;
54
+ }
55
+
56
+ .personalInfo #lastseen {
57
+ color: #8696a0;
58
+ font-size: small;
59
+ }
60
+
61
+ .scrollable {
62
+ overflow-y: scroll;
63
+ color: #fff;
64
+ display: flex;
65
+ height: 88%;
66
+ flex-direction: column;
67
+ background-color: ivory;
68
+ align-items: flex-end;
69
+ position: relative;
70
+ -ms-overflow-style: none;
71
+ scrollbar-width: none;
72
+ position: relative;
73
+ box-sizing: border-box;
74
+ background: #003e33;
75
+
76
+ }
77
+
78
+ .scrollable::-webkit-scrollbar{
79
+ display: none;
80
+ }
81
+
82
+ .scrollable .chatting {
83
+ overflow-y: scroll;
84
+ -ms-overflow-style: none;
85
+ scrollbar-width: none;
86
+ position: relative;
87
+ word-wrap: break-word;
88
+ height: 100%;
89
+ width: 100%;
90
+ box-sizing: border-box;
91
+
92
+ }
93
+
94
+ .scrollable .chatting::-webkit-scrollbar {
95
+ display: none;
96
+ }
97
+
98
+ #listUL {
99
+ overflow-y: hidden;
100
+ position: static;
101
+ width: 100%;
102
+ bottom: 0;
103
+ list-style-type: none;
104
+ display: flex;
105
+ flex-direction: column;
106
+ box-sizing: border-box;
107
+
108
+ }
109
+
110
+ #listUL li {
111
+ width: 100%;
112
+ text-decoration: none;
113
+ flex-direction: row-reverse;
114
+ }
115
+
116
+ .sent {
117
+ text-align: end;
118
+ float: right;
119
+ width: auto;
120
+ max-width: 45%;
121
+ }
122
+
123
+ .green {
124
+ margin: 5px;
125
+ text-align: end;
126
+ width: max-content;
127
+ max-width: 90dvw;
128
+ padding: 10px;
129
+ background-color: #005c4b;
130
+ border-radius: 15px 15px 0px;
131
+ box-sizing: border-box;
132
+ animation: fade-in 0.7s ease;
133
+ }
134
+
135
+
136
+
137
+ .green::-webkit-scrollbar{
138
+ display: none;
139
+ }
140
+ .green::-webkit-scrollbar-track{
141
+ display: none;
142
+ }
143
+ #sentlabel {
144
+ color: #94bab3;
145
+ display: block;
146
+ text-align: end;
147
+ font-size: x-small;
148
+ }
149
+
150
+ .recieved {
151
+ float: left;
152
+ width: 45%;
153
+ max-width: 45%;
154
+ }
155
+
156
+ .grey {
157
+ max-width: 90dvw;
158
+ margin: 5px;
159
+ text-align: start;
160
+ width: max-content;
161
+ padding: 12px;
162
+ background-color: #202c33;
163
+ border-radius: 0px 15px 15px;
164
+ box-sizing: border-box;
165
+ max-height: 90dvh;
166
+ animation: slide-in-left 0.2s ease;
167
+ }
168
+
169
+ @keyframes slide-in-left{
170
+ from{
171
+ transform: translate3d(-100%, 0, 0);
172
+ visibility: visible;
173
+ }
174
+ to{
175
+ transform: translate3d(0, 0, 0);
176
+ }
177
+ }
178
+ @keyframes fade-in{
179
+ from{
180
+ opacity: 0;
181
+ }
182
+ to{
183
+ opacity: 1;
184
+ }
185
+ }
186
+
187
+ /* iframe messages */
188
+ .ifrmm{
189
+ width: 84dvw;
190
+ border: 4px solid rgb(201, 201, 201);
191
+ overflow: hidden;
192
+ height: 58dvh;
193
+ }
194
+
195
+
196
+
197
+ .ifrmm::-webkit-scrollbar{
198
+ display: none;
199
+ }
200
+
201
+ .grey .mapview {
202
+ margin: auto;
203
+ display: flex;
204
+ padding: 5px;
205
+ box-sizing: border-box;
206
+ }
207
+
208
+ .add address {
209
+ margin-top: 10px;
210
+ padding-left: 15px;
211
+ }
212
+
213
+ .map {
214
+ margin: auto;
215
+ width: 100%;
216
+ border-radius: 10px;
217
+ box-sizing: border-box;
218
+
219
+ }
220
+
221
+ .dateLabel {
222
+ color: #94bab3;
223
+ display: block;
224
+ text-align: end;
225
+ font-size: x-small;
226
+ }
227
+
228
+ .sk .bold {
229
+ color: rgba(219, 154, 33, 0.822);
230
+ }
231
+
232
+ .resumeThumbnail {
233
+ width: 100%;
234
+ border-radius: 10px 10px 0px 0px;
235
+ }
236
+
237
+ .downloadSpace {
238
+ background-color: #1d282f;
239
+ display: flex;
240
+ width: 100%;
241
+ }
242
+
243
+ .downloadSpace .pdfname {
244
+ display: flex;
245
+ width: 100%;
246
+ }
247
+
248
+ .pdfname label {
249
+ margin: auto 0px;
250
+ }
251
+
252
+ .downloadSpace img {
253
+ width: 30px;
254
+ cursor: pointer;
255
+ margin: 5px;
256
+ }
257
+
258
+ .bold {
259
+ font-weight: bold;
260
+ }
261
+
262
+ .alink {
263
+ color: goldenrod;
264
+ transition: all 600ms ease;
265
+ text-decoration: none;
266
+ }
267
+
268
+ .alink:hover {
269
+ text-decoration: none;
270
+ color: green;
271
+ }
272
+
273
+ .social {
274
+ padding: 10px;
275
+ }
276
+
277
+ .social .socialItem {
278
+ width: 100%;
279
+ border-radius: 10px;
280
+ background-color: lightsalmon;
281
+ cursor: pointer;
282
+ display: flex;
283
+ margin-bottom: 10px;
284
+ transition: all 500ms ease-in-out;
285
+ }
286
+
287
+ .social .socialItemI {
288
+ margin: auto;
289
+ padding: 10px;
290
+ flex-direction: column;
291
+ }
292
+
293
+ .social .socialItem:hover {
294
+ background-color: rgba(58, 170, 58, 0.863);
295
+ }
296
+
297
+ #call {
298
+ flex-direction: column;
299
+ text-align: center;
300
+ }
301
+
302
+ .number {
303
+ display: none;
304
+ }
305
+
306
+ .scrollable .fullScreenDP {
307
+ transition: all 700ms ease-in-out;
308
+ position: absolute;
309
+ width: 100%;
310
+ height: 100%;
311
+ display: none;
312
+ flex-direction: column;
313
+ background-color: #2f2f2fec;
314
+ z-index: 1000;
315
+ }
316
+
317
+ .scrollable .fullScreenDP .insideDP {
318
+ display: flex;
319
+ margin: auto;
320
+ scrollbar-width: 0px;
321
+ box-sizing: border-box;
322
+
323
+ }
324
+
325
+
326
+ .closeBTN {
327
+ width: 30px;
328
+ height: 30px;
329
+ display: block;
330
+ position: absolute;
331
+ margin-left: 6%;
332
+ margin-top: 5px;
333
+ cursor: pointer;
334
+ }
335
+
336
+ .btnColor {
337
+ fill: rgba(0, 0, 0, 0.692);
338
+ transition: all 400ms ease-in-out;
339
+ }
340
+
341
+ .closeBTN:hover .btnColor {
342
+ fill: red;
343
+ }
344
+
345
+ .scrollable .fullScreenDP .insideDP .dp {
346
+ width: 90%;
347
+ margin: auto;
348
+ border-radius: 10px;
349
+ }
350
+
351
+ footer {
352
+ position: relative;
353
+ left: 0;
354
+ bottom: 0;
355
+ width: 100%;
356
+ color: white;
357
+ text-align: center;
358
+ height: auto;
359
+ background-color: #202c33;
360
+ text-align: center;
361
+ }
362
+
363
+ .sendBar {
364
+ display: flex;
365
+ height: 100%;
366
+ width: 100%;
367
+ margin: auto;
368
+ }
369
+
370
+ .sendBar svg {
371
+ margin: auto;
372
+ height: 40%;
373
+ min-height: 40%;
374
+ }
375
+
376
+ .sendBar input[type='text'] {
377
+ margin: auto;
378
+ margin: 5px;
379
+ border-radius: 10px;
380
+ padding: 10px;
381
+ color: #fff;
382
+ float: left;
383
+ width: 80%;
384
+ height: 100%;
385
+ outline-color: transparent;
386
+ accent-color: transparent;
387
+ background-color: #2a3942;
388
+ outline: none;
389
+ border-color: transparent;
390
+ }
391
+
392
+ .sendBar input[type='text']::placeholder {
393
+ color: #8696a0;
394
+ opacity: 1;
395
+ }
396
+
397
+ .sendBar input[type='text']:-ms-input-placeholder {
398
+ color: #8696a0;
399
+ }
400
+
401
+ .sendBar input[type='text']::-ms-input-placeholder {
402
+ color: #8696a0;
403
+ }
404
+
405
+ /* Updated styles for the form */
406
+ .grey form,
407
+ .green form {
408
+ margin: 0;
409
+ padding: 10px;
410
+ width: auto;
411
+ max-width: 80%;
412
+ background-color: #202c33;
413
+ border-radius: 10px;
414
+ box-sizing: border-box;
415
+ }
416
+
417
+ .grey form input,
418
+ .green form input {
419
+ width: 100%;
420
+ padding: 8px;
421
+ margin-bottom: 8px;
422
+ border-radius: 5px;
423
+ border: 1px solid #ccc;
424
+ box-sizing: border-box;
425
+ }
426
+
427
+ .grey form button,
428
+ .green form button {
429
+ width: 100%;
430
+ padding: 8px;
431
+ border: none;
432
+ border-radius: 5px;
433
+ background-color: #005c4b;
434
+ color: #fff;
435
+ cursor: pointer;
436
+ box-sizing: border-box;
437
+
438
+ }
439
+
440
+ .grey form button:hover,
441
+ .green form button:hover {
442
+ background-color: #003e33;
443
+ }
444
+
445
+ @media screen and (min-width: 1024px) {
446
+ body {
447
+ margin: auto;
448
+ width: 50vw;
449
+ box-sizing: border-box;
450
+
451
+ }
452
+
453
+ .sendBar {
454
+ width: 85%;
455
+ }
456
+
457
+ .scrollable {
458
+ -ms-overflow-style: none;
459
+ scrollbar-width: none;
460
+ position: relative;
461
+ overflow: hidden;
462
+ }
463
+
464
+ .scrollable .fullScreenDP {
465
+ display: none;
466
+ width: 100%;
467
+ height: 100%;
468
+ overflow-y: scroll;
469
+ }
470
+
471
+ .scrollable .fullScreenDP .insideDP {
472
+ display: flex;
473
+ width: 70%;
474
+ }
475
+
476
+ .scrollable .fullScreenDP .dp {
477
+ width: 50%;
478
+ margin: auto;
479
+ }
480
+
481
+ .scrollable .closeBTN {
482
+ margin-top: 15px;
483
+ }
484
+
485
+ #call:hover .number {
486
+ display: block;
487
+ height: auto;
488
+ }
489
+ }
490
+
491
+ .select-start{
492
+ padding: 10px;
493
+ font-weight: 900;
494
+ font-family: Arial, Helvetica, sans-serif;
495
+ background-color: brown;
496
+ color: wheat;
497
+ }
498
+
499
+ .select-start option{
500
+ font-family: Arial, Helvetica, sans-serif;
501
+ font-weight: 900;
502
+ background-color: brown;
503
+ position: fixed;
504
+ }
bot/swl.sql ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ CREATE TABLE applicants (
2
+ id INT AUTO_INCREMENT PRIMARY KEY,
3
+ firstName VARCHAR(255) NOT NULL,
4
+ lastName VARCHAR(255) NOT NULL,
5
+ middleName VARCHAR(255),
6
+ age INT,
7
+ email VARCHAR(255) NOT NULL,
8
+ phoneNumber VARCHAR(20) NOT NULL,
9
+ address TEXT,
10
+ code VARCHAR(20) NOT NULL,
11
+ timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
12
+ status ENUM('active', 'reviewed', 'initial_interview', 'assessment', 'final_interview', 'passed') DEFAULT 'active'
13
+ );
bot/telegram.svg ADDED
bot/update_status.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Establish connection to MySQL$servername = "localhost";
4
+ $username = "username";
5
+ $password = "password";
6
+ $dbname = "your_database";
7
+
8
+ // Create connection
9
+ $conn = new mysqli($servername, $username, $password, $dbname);
10
+
11
+ // Check connection
12
+ if ($conn->connect_error) {
13
+ die("Connection failed: " . $conn->connect_error);
14
+ }
15
+
16
+ if ($_SERVER["REQUEST_METHOD"] == "POST") {
17
+ $applicant_code = $_POST["applicant_code"];
18
+ $status = $_POST["status"];
19
+ $schedule = $_POST["schedule"];
20
+
21
+ // Update status in applicants table
22
+ $update_query = "UPDATE applicants SET status = '$status' WHERE code = '$applicant_code'";
23
+ mysqli_query($conn, $update_query);
24
+
25
+ // Update interview schedule in interviews table
26
+ $insert_query = "INSERT INTO interviews (code, schedule) VALUES ('$applicant_code', '$schedule')";
27
+ mysqli_query($conn, $insert_query);
28
+
29
+ // Redirect back to admin panel
30
+ header("Location: admin_panel.php");
31
+ exit();
32
+ }
33
+ ?>
bot/whatsapp.svg ADDED
content.js ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const start = () => {
2
+ const elems = [];
3
+ const ids = [];
4
+ const datasets = () => {
5
+ const data = () => {
6
+ // pushing
7
+ ids.push(document.getElementById('home'), document.getElementById('search'),document.getElementById(''));
8
+ elems.push();
9
+
10
+ console.log(ids);
11
+
12
+ // end of data
13
+ }
14
+ data();
15
+ // end of datasets
16
+ }
17
+
18
+ datasets();
19
+ }
20
+
21
+ function searchh(){
22
+ const val = document.getElementById('search').value;
23
+
24
+ if (val.includes('chat')){
25
+
26
+ if(val.includes('bot')){
27
+ alert('chat bot search met')
28
+ return;
29
+ }
30
+ if (val.includes('system')) {
31
+ alert('chat system search met')
32
+ return;
33
+ }
34
+ return;
35
+ } else if(val.includes('blog')){
36
+ if (val.includes('')) {
37
+ return;
38
+ }
39
+ } else if(val.includes('system')){
40
+ if (val.includes('order')) {
41
+ alert('order system search met');
42
+ return
43
+ }
44
+ if (val.includes('transport')) {
45
+ alert('transport system search met');
46
+ return
47
+ }
48
+ if (val.includes('school')) {
49
+ alert('school system search met');
50
+ return
51
+ }
52
+ if (val.includes('complete')) {
53
+ alert('complete system search met');
54
+ return
55
+ }
56
+ return
57
+ } else if(val.includes('files')){
58
+ alert('files met');
59
+ return;
60
+ } else if (val.includes('niczip')){
61
+ location.assign('nic.zip');
62
+ return;
63
+ } else {
64
+ alert('try again')
65
+ }
66
+
67
+ }
68
+
69
+ start();
form.html ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <html lang="en">
2
+ <head>
3
+ <meta charset="UTF-8">
4
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=7">
6
+ <style>
7
+
8
+ *{
9
+ font-family: 'Trebuchet MS';
10
+ }
11
+ body::-webkit-scrollbar{
12
+ display:none;
13
+ }
14
+ body{
15
+ width: auto;
16
+ max-width: 100dvw;
17
+ background: rgba(0, 0, 0, 0.218);
18
+ color: cyan;
19
+ margin: 0px auto;
20
+ box-sizing: border-box;
21
+ height: 80dvh;
22
+ }
23
+
24
+ #logsec{
25
+ display: flex;
26
+ flex-direction: column;
27
+ text-align: center;
28
+ justify-content: center;
29
+ height: 80dvh;
30
+ animation: fade-in 1s ease;
31
+ }
32
+
33
+ #full_name , #password{
34
+ margin-top: 12px;
35
+ border-radius: 8px;
36
+ padding: 6px;
37
+ background: black;
38
+ color: lavender;
39
+ font-size: 11pt;
40
+ }
41
+
42
+ #full_name::placeholder{
43
+ color: wheat;
44
+ font-size: 12pt;
45
+ }
46
+
47
+ #password::placeholder{
48
+ color: wheat;
49
+ font-size: 12pt;
50
+ }
51
+
52
+ #logsec label{
53
+ font-size: 13pt;
54
+ font-weight: 400;
55
+ }
56
+
57
+ @keyframes fade-in{
58
+ from{
59
+ opacity: 0;
60
+ }
61
+ to{
62
+ opacity: 1;
63
+ }
64
+ }
65
+ </style>
66
+ </head>
67
+ <body id="logsec">
68
+ <div>
69
+ <label for="full_name">Login, or create an account with our chatbot!</label><br>
70
+ <input type="text" name="full_name" id="full_name" placeholder="Enter username..."><br>
71
+ <input type="password" name="password" id="password" placeholder="Enter username..." required><br>
72
+ <span id="datas"></span><br>
73
+ <p id="showpw" onclick="showpw()">Show password.</p>
74
+ <button id="submit" onclick="form_submit()">SUBMIT </button>
75
+ </div>
76
+ <script>
77
+ const f_name = document.getElementById('full_name');
78
+ const data_s = document.getElementById('datas');
79
+
80
+ function form_submit(z) {
81
+ z = f_name.value;
82
+
83
+ setTimeout(() => {
84
+ data_s.innerHTML =`<br> ${z}`;
85
+ }, 2000);
86
+
87
+ }
88
+
89
+ </script>
90
+ </body>
91
+ </html>
index.html ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Ok Softwares And Web Development</title>
7
+
8
+ <link rel="stylesheet" href="styles.css">
9
+ </head>
10
+ <body>
11
+ <div class="container" id="container">
12
+
13
+ <nav class="navbar">
14
+ <div class="burger">&#9776;</div>
15
+ <ul class="nav-links">
16
+ <li><a onclick="home()">Home</a></li>
17
+ <li><a onclick="hosting()">Hosting Services</a></li>
18
+ <li><a onclick="chatbots()">Chatbots</a></li>
19
+ <li><a onclick="systems()">Systems</a></li>
20
+ <li><a onclick="softwares()">Softwares</a></li>
21
+ <li><a onclick="contact()">Contact</a></li>
22
+ </ul>
23
+ </nav>
24
+
25
+ <div class="main-content" id="main-content">
26
+
27
+ <section id="home" class="intro-section">
28
+ <div class="searchie">
29
+ <input type="search" name="search" id="search" placeholder="Search projects...">
30
+ <button type="button" id="btn-search" onclick="searchh()"> 🔍 </button>
31
+ </div>
32
+ <h1>Welcome</h1><h1>to</h1><h1>OK Softwares & Web Development</h1>
33
+
34
+ </section>
35
+
36
+ <footer class="footer">
37
+
38
+ <p>&copy; 2024 OK Softwares & Web Development. All Rights Reserved.</p>
39
+ </footer>
40
+ </div>
41
+ </div>
42
+ <div class="chatbot-bubble">
43
+ <p class="pup" id="pup">Need assistance?</p>
44
+ <img src="assets/shrug.png" alt="Chatbot">
45
+ </div>
46
+
47
+ <div class="chatbot-window">
48
+ <button class="chatbot-close">Close</button>
49
+ <iframe src="bot/index.html" frameborder="0"></iframe>
50
+ </div>
51
+ <script src="scripts.js"></script>
52
+ <script src="content.js"></script>
53
+ </body>
54
+ </html>
projects,md ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1. Portfolio Website
2
+ Description: Create a personal portfolio showcasing your skills, projects, resume, and contact information.
3
+ Tech Stack: HTML, CSS, JavaScript (Optional: React, Vue.js, or Angular for interactivity)
4
+ 2. Blogging Platform
5
+ Description: Develop a platform where users can create, edit, and publish blog posts with comments and categories.
6
+ Tech Stack: MERN Stack (MongoDB, Express.js, React, Node.js)
7
+ 3. E-commerce Website
8
+ Description: Build an online store with product listings, cart functionality, checkout, and payment integration.
9
+ Tech Stack: MEAN Stack (MongoDB, Express.js, Angular, Node.js) or MERN Stack
10
+ 4. Task Management App
11
+ Description: Create an application for managing tasks, setting priorities, due dates, and user authentication.
12
+ Tech Stack: Django (Python), React/Vue.js, PostgreSQL
13
+ 5. Event Management System
14
+ Description: Develop a platform for organizing events, RSVPs, ticketing, and event details.
15
+ Tech Stack: Ruby on Rails, React, PostgreSQL
16
+ 6. Online Learning Platform
17
+ Description: Build a website where users can enroll in courses, watch videos, and track their progress.
18
+ Tech Stack: Laravel (PHP), Vue.js, MySQL
19
+ 7. Real Estate Listings Website
20
+ Description: Create a platform for real estate listings with property details, images, search filters, and contact forms.
21
+ Tech Stack: ASP.NET Core, React, SQL Server
22
+ 8. Recipe Sharing App
23
+ Description: Develop an application where users can share recipes, rate them, add ingredients, and save favorites.
24
+ Tech Stack: Flask (Python), React, SQLite
25
+ 9. Social Media Dashboard
26
+ Description: Build a dashboard that aggregates social media feeds, analytics, and scheduling tools.
27
+ Tech Stack: Node.js, React, MongoDB
28
+ 10. Fitness Tracker
29
+ Description: Create a platform where users can log workouts, track progress, set goals, and view statistics.
30
+ Tech Stack: Firebase (NoSQL), React Native (for mobile app), Redux
scripts.js ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Set different background images for different screen sizes
2
+ function setBodyBackground() {
3
+ const body = document.querySelector('body');
4
+ const mobileBg = 'url("assets/background2.jpg") no-repeat center center/cover';
5
+ const tabletBg = 'url("assets/background1.jpg") no-repeat center center/cover';
6
+
7
+ const screenWidth = window.innerWidth;
8
+
9
+ if (screenWidth < 768) {
10
+ body.style.background = mobileBg;
11
+ location.replace('v/m/index.html');
12
+
13
+ } else if (screenWidth >= 768 && screenWidth < 992) {
14
+ body.style.background = tabletBg;
15
+
16
+ } else {
17
+ body.style.background = 'url("assets/bgmain.gif") no-repeat center center/cover'; // Reset background for desktop
18
+ body.style.transform = ''; // Reset rotation for desktop
19
+ }
20
+ }
21
+
22
+ // Call the function initially and on window resize
23
+ setBodyBackground();
24
+
25
+ window.addEventListener('resize', setBodyBackground);
26
+
27
+ // Navbar Toggle
28
+ const burger = document.querySelector('.burger');
29
+ const navLinks = document.querySelector('.nav-links');
30
+ const navLinksList = document.querySelectorAll('.nav-links li');
31
+
32
+ burger.addEventListener('click', () => {
33
+ navLinks.classList.toggle('active');
34
+ burger.classList.toggle('active');
35
+
36
+ // Close navLinks when a link is clicked
37
+ navLinksList.forEach((link) => {
38
+ link.addEventListener('click', () => {
39
+ navLinks.classList.remove('active');
40
+ burger.classList.remove('active');
41
+ });
42
+ });
43
+ });
44
+
45
+ // Chatbot Window
46
+ const chatbotBubble = document.querySelector('.chatbot-bubble');
47
+ const chatbotWindow = document.querySelector('.chatbot-window');
48
+ const chatbotCloseBtn = document.querySelector('.chatbot-close');
49
+ chatbotCloseBtn.style.display = 'none';
50
+ chatbotBubble.addEventListener('click', () => {
51
+ chatbotWindow.style.display = 'block';
52
+ chatbotWindow.style.animation = 'sasa 0.5s';
53
+ chatbotBubble.style.display = 'none';
54
+ setTimeout(() => {
55
+ chatbotCloseBtn.style.display = 'block';
56
+ }, 600);
57
+ });
58
+
59
+ chatbotCloseBtn.addEventListener('click', () => {
60
+ chatbotWindow.style.animation = 'asas 0.5s';
61
+ chatbotBubble.style.display = 'block';
62
+ chatbotCloseBtn.style.display = 'none';
63
+ setTimeout(() => {
64
+ chatbotWindow.style.display = 'none';
65
+ }, 500);
66
+ });
styles.css ADDED
@@ -0,0 +1,370 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Resetting default margin and padding */
2
+ * {
3
+ margin: 0;
4
+ padding: 0;
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ root::-webkit-scrollbar{
9
+ display:none;
10
+ }
11
+
12
+ body {
13
+ font-family: Arial, sans-serif;
14
+ margin: 0;
15
+ }
16
+
17
+ body::-webkit-scrollbar{
18
+ display: none;
19
+ }
20
+
21
+ .container {
22
+ position: relative;
23
+ }
24
+
25
+ .navbar {
26
+ position: fixed;
27
+ top: 0;
28
+ left: 0;
29
+ width: 100%;
30
+ background-color: rgba(0, 0, 0, 0.8); /* Semi-transparent background */
31
+ backdrop-filter: blur(10px); /* Adding blur effect */
32
+ z-index: 1000;
33
+ padding: 20px;
34
+ }
35
+
36
+ .nav-links {
37
+ display: flex;
38
+ justify-content: center;
39
+ list-style: none;
40
+ padding: 0;
41
+ }
42
+
43
+ .nav-links li {
44
+ margin: 0 15px;
45
+ }
46
+
47
+ .nav-links li a {
48
+ color: #fff;
49
+ text-decoration: none;
50
+ padding: 10px 15px;
51
+ display: block;
52
+ transition: all 0.6s ease-in-out;
53
+ }
54
+
55
+ .nav-links li a:hover {
56
+ color: #ffc107;
57
+ transform: translateY(4px) scale(1.225) rotateX(360deg);
58
+ background-color: #007bff;
59
+ border-radius: 10px 30px 10px 30px;
60
+ }
61
+
62
+ .burger {
63
+ display: none;
64
+ cursor: pointer;
65
+ }
66
+
67
+ .main-content {
68
+ padding-top: 80px; /* Adjust according to navbar height */
69
+ }
70
+
71
+ .intro-section {
72
+ text-align: center;
73
+ display: flex;
74
+ flex-direction: column;
75
+ justify-content: center;
76
+ align-items: center;
77
+ height: 100vh;
78
+ padding: 20px;
79
+ margin-top: -100px;
80
+ }
81
+
82
+ .intro-section #search{
83
+ padding: 14px;
84
+ background: rgba(0, 0, 0, 0.3);
85
+ border-radius: 4px;
86
+ color: whitesmoke;
87
+ font-size: 12pt;
88
+ transition: all 0.3s ease;
89
+ }
90
+
91
+ #search:focus{
92
+ background-color: lavender;
93
+ color: black;
94
+ }
95
+
96
+
97
+ #btn-search{
98
+ border: none;
99
+ background: none;
100
+ font-size: 20pt;
101
+ margin-left: 10px;
102
+ }
103
+
104
+ .searchie{
105
+ display: flex;
106
+ flex-direction: row;
107
+ margin-top: -70px;
108
+ margin-bottom: 50px;
109
+ }
110
+
111
+ #search::placeholder{
112
+ font-size:13pt;
113
+ }
114
+
115
+ .intro-section h1{
116
+ font-size: 32pt;
117
+
118
+ }
119
+
120
+ .intro-section h1:first-child{
121
+ color: red;
122
+ }
123
+
124
+ .intro-section h1, .intro-section h2, .intro-section h3 {
125
+ margin: 10px 0;
126
+ }
127
+
128
+ .intro-section p {
129
+ margin: 20px 0;
130
+ }
131
+
132
+ .learn-more-btn {
133
+ display: inline-block;
134
+ padding: 10px 20px;
135
+ background-color: #007bff;
136
+ color: #fff;
137
+ text-decoration: none;
138
+ border-radius: 5px;
139
+ transition: background-color 0.3s;
140
+ }
141
+
142
+ .learn-more-btn:hover {
143
+ background-color: #0056b3;
144
+ }
145
+
146
+ .services-section {
147
+ display: none;
148
+ padding: 20px;
149
+ }
150
+
151
+ .services-list {
152
+ display: flex;
153
+ flex-wrap: wrap;
154
+ justify-content: center;
155
+ }
156
+
157
+ .card {
158
+ width: 250px;
159
+ background: #fff;
160
+ padding: 20px;
161
+ margin: 10px;
162
+ border-radius: 5px;
163
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
164
+ transition: transform 0.3s;
165
+ }
166
+
167
+ .card:hover {
168
+ transform: translateY(-5px);
169
+ }
170
+
171
+ .card h4 {
172
+ margin: 0 0 10px;
173
+ color: #333;
174
+ }
175
+
176
+ .card p {
177
+ margin: 0;
178
+ color: #666;
179
+ }
180
+
181
+ .footer {
182
+ position: fixed;
183
+ bottom: 0px;
184
+ max-width: 4000px;
185
+ width: 100%;
186
+ text-align: center;
187
+ padding: 20px;
188
+ background-color: #333;
189
+ color: #fff;
190
+ }
191
+
192
+ .chatbot-bubble {
193
+ position: fixed;
194
+ bottom: 30px;
195
+ right: 40px;
196
+ background: transparent;
197
+ color: #fff;
198
+ width: 60px;
199
+ height: 60px;
200
+ border-radius: 50%;
201
+ display: flex;
202
+ justify-content: center;
203
+ align-items: center;
204
+ cursor: pointer;
205
+ z-index: 1000;
206
+ transition: background-color 0.3s;
207
+ }
208
+
209
+ .pup{
210
+ position: fixed;
211
+ bottom: 88px;
212
+ right: 20px;
213
+ animation: pupe 1s infinite alternate;
214
+ text-shadow: 0px 0px 12px rgba(0, 0, 0, 0.8);
215
+ font-size: 13pt;
216
+ font-weight: 400;
217
+ }
218
+
219
+ @keyframes pupe {
220
+ from{
221
+ transform: translateY(0px);
222
+ } to {
223
+ transform: translateY(-20px);
224
+ }
225
+ }
226
+
227
+ .chatbot-bubble img {
228
+ width: 60px;
229
+ height: 60px;
230
+ border-radius: 50%;
231
+ background-blend-mode:screen;
232
+ }
233
+
234
+ .chatbot-window iframe::-webkit-scrollbar{
235
+ display: none;
236
+ }
237
+
238
+ .chatbot-window {
239
+ position: fixed;
240
+ bottom: 30px;
241
+ right: 40px;
242
+ width: 30dvw;
243
+ height: 80dvh;
244
+ border: none;
245
+ background-color: #fff;
246
+ z-index: 999;
247
+ border-radius: 10px;
248
+
249
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
250
+ display: none;
251
+
252
+ }
253
+
254
+ .chatbot-window iframe {
255
+ width: 30dvw;
256
+ height: 100%;
257
+ border: none;
258
+ }
259
+
260
+ @keyframes sasa {
261
+ from{
262
+ width: 0px;
263
+ height: 0px;
264
+ }
265
+
266
+ to {
267
+ width: 400px;
268
+ height: 600px;
269
+ }
270
+ }
271
+
272
+ @keyframes asas {
273
+ from{
274
+ width: 400px;
275
+ height: 600px;
276
+
277
+ }
278
+
279
+ to {
280
+ width: 0px;
281
+ height: 0px;
282
+ }
283
+ }
284
+
285
+ @media (max-width: 768px) {
286
+ .burger {
287
+ display: block;
288
+ position: absolute;
289
+ top: 20px;
290
+ right: 20px;
291
+ color: #fff;
292
+ font-size: 24px;
293
+ }
294
+
295
+ .nav-links {
296
+ display: none;
297
+ flex-direction: column;
298
+ position: absolute;
299
+ top: 60px;
300
+ left: 0;
301
+ width: 100%;
302
+ background-color: rgba(0, 0, 0, 0.8);
303
+ backdrop-filter: blur(10px);
304
+ padding: 20px;
305
+ }
306
+
307
+ .nav-links.active {
308
+ display: flex;
309
+ }
310
+
311
+ .nav-links li {
312
+ margin: 10px 0;
313
+ }
314
+
315
+ .main-content {
316
+ padding-top: 140px; /* Adjust according to navbar height */
317
+ }
318
+
319
+ .chatbot-bubble {
320
+ bottom: 80px;
321
+ right: 20px;
322
+ }
323
+
324
+ .chatbot-window {
325
+ width: calc(100% - 40px);
326
+ height: calc(100% - 100px);
327
+ bottom: 80px;
328
+ }
329
+ }
330
+
331
+ .spinny{
332
+ border-top-color: cyan;
333
+ width:70px;
334
+ height:70px;
335
+ border-radius:50%;
336
+ border: double 6px black;
337
+ animation: spinny linear infinite 2s;
338
+ }
339
+
340
+ @keyframes spinny {
341
+ from{
342
+ transform: rotate(0deg);border-top-color: cyan;
343
+ } to {
344
+ transform: rotate(360deg);border-top-color: cyan;
345
+ }
346
+ }
347
+
348
+ .chatbot-close{
349
+ display: block;
350
+ right: 50px;
351
+ top: 165px;
352
+ position: fixed;
353
+ font-size: 14pt;
354
+ font-weight: 100;
355
+ color: red;
356
+ background: none;
357
+ border:none;
358
+ font-family: 'Trebuchet MS';
359
+ transition: 0.4s all ease;
360
+ }
361
+
362
+ .chatbot-close:hover{
363
+ scale: 1.195;
364
+ color: rgb(197, 32, 32);
365
+ transform: translateX( -10px);
366
+ background: wheat;
367
+ border-radius: 10px;
368
+ padding: 4px;
369
+ }
370
+
tokyo.gif ADDED
tokyo.webp ADDED
v/m/asset/background.gif ADDED

Git LFS Details

  • SHA256: 7f64ee66076696ffd23580629896f2d600250d6c73f39f64741b56073eb5afbd
  • Pointer size: 132 Bytes
  • Size of remote file: 6.45 MB
v/m/asset/comments.png ADDED
v/m/content.js ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const start = () => {
2
+ const elems = [];
3
+ const ids = [];
4
+ const datasets = () => {
5
+ const data = () => {
6
+ // pushing
7
+ ids.push(document.getElementById('home'), document.getElementById('search'));
8
+ console.log(ids);
9
+ // end of data
10
+ }
11
+ data();
12
+ // end of datasets
13
+ }
14
+
15
+ datasets();
16
+ }
17
+ const val = document.getElementById('search').value;
18
+
19
+ function searchh(){
20
+
21
+ // Used switch statements for generic searching.
22
+ switch (val) {
23
+ case "":
24
+ alert('Invalid input, try again.');
25
+ break;
26
+
27
+ default:
28
+ alert('No found projects.')
29
+ break;
30
+ };
31
+
32
+ // String methods for more logical handling of search.
33
+
34
+ if (val.includes('chat')){
35
+ if(val.includes('bot')){
36
+ alert('chat bot search met')
37
+ }
38
+ if (val.includes('system')) {
39
+ alert('chat system search met')
40
+ }
41
+
42
+ } else if(val.includes('')){
43
+
44
+ } else if(val.includes('')){
45
+
46
+ } else if(val.includes('')){
47
+
48
+ } else {
49
+ alert('Please try again');
50
+ }
51
+
52
+ }
53
+
54
+ start();