diff --git a/README.md b/README.md index 54cb122d5340357c432aaa715079c6d8bfe678f2..8182364e2c3b515d669d98551f16abb55d465d01 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ http://localhost:8000/ <img src="screenshots/AddAuthor.png"> <img src="screenshots/AddBook.png"> <img src="screenshots/Addgenre.png"> -<img src="screenshots/AuthorList.png"> +<img src="screenshots/AuthorList.jpg"> <img src="screenshots/BookList.png"> <img src="screenshots/GenreList.png"> <img src="screenshots/Login.png"> @@ -49,9 +49,24 @@ http://localhost:8000/ <img src="screenshots/UpdateUser.png"> <img src="screenshots/UserList.png"> +## **Screenshot of Lighthouse** + +<img src="screenshots/lighthouse/lighthouse (1).jpg"> +<img src="screenshots/lighthouse/lighthouse (2).jpg"> +<img src="screenshots/lighthouse/lighthouse (3).jpg"> +<img src="screenshots/lighthouse/lighthouse (4).jpg"> +<img src="screenshots/lighthouse/lighthouse (5).jpg"> +<img src="screenshots/lighthouse/lighthouse (6).jpg"> +<img src="screenshots/lighthouse/lighthouse (7).jpg"> +<img src="screenshots/lighthouse/lighthouse (8).jpg"> +<img src="screenshots/lighthouse/lighthouse (9).jpg"> + + ## **Bonus yang dikerjakan** 1. Dockerize +2. Lighthouse +3. Responsive ## **Pembagian Kerja - Workload Breakdown** diff --git a/app/controllers/BookController.php b/app/controllers/BookController.php index 134b4df9338f8f701a899876f621c4b9dcbfadb2..2367ded7b89e97f5d5d9740c3e6e3b63e6122d57 100644 --- a/app/controllers/BookController.php +++ b/app/controllers/BookController.php @@ -103,7 +103,8 @@ class BookController extends Controller implements ControllerInterface{ $title, $year, $summary, $price, $duration, $lang, $uploadedAudio, $uploadedImage, $authors, $genres ); - + + header("Location: /book/", true, 301); exit; default: diff --git a/app/main/Main.php b/app/main/Main.php index f1887c59bc82f6be008c93bb625bedc053af12c6..bb2002fdef577ce9d4f3ac07e1179415f6568f95 100644 --- a/app/main/Main.php +++ b/app/main/Main.php @@ -22,8 +22,7 @@ class Main { $controllerClass = $controllerPart . 'Controller'; $this->controller = new $controllerClass(); }else{ - require_once __DIR__ . '/../controllers/NotFoundController.php'; - $this->controller = new NotFoundController(); + header('Location: /book/'); } unset($url[0]); diff --git a/app/models/BookModel.php b/app/models/BookModel.php index bc23ae44b4e5c9b8c9bca1e78385cd85ed522b7c..2d03df59c8bfd9560b27d196d9fa102857cbf88b 100644 --- a/app/models/BookModel.php +++ b/app/models/BookModel.php @@ -25,8 +25,6 @@ class BookModel { $this->db->execute($stmt); $bookId = $this->db->insertId(); - echo $bookId; - $stmt->close(); if ($bookId) { diff --git a/app/pages/admin/AddAuthorPage.php b/app/pages/admin/AddAuthorPage.php index 5813494f41077e1c4b2d4de628d2fd2235e1e251..f2aefba6388b9266d3c66243274c6de7e575c50c 100644 --- a/app/pages/admin/AddAuthorPage.php +++ b/app/pages/admin/AddAuthorPage.php @@ -10,6 +10,7 @@ <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/globals.css"> <!-- Navbar CSS --> <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/navbar.css"> + <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/popup.css"> <!-- Page-specific CSS --> <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/admin/crud-page.css"> <title>Add Author</title> @@ -18,22 +19,62 @@ <body> <!-- Navigation bar --> <?php include(dirname(__DIR__) . '../../components/Navbar.php') ?> - <div class="content"> - <h2>Add Author Page</h2> - <form - class="form-box center-contents" - action="/author/add" method="POST" enctype="multipart/form-data" - > - <div class="form-content flex-column"> <label class="form-label" for="author-name">Author Name:</label> - <input class="form-field" type="text" id="author-name" name="author-name" required> - - <label class="form-label" for="author-age">Author Age:</label> - <input class="form-field" type="text" id="author-age" name="author-age" required> - - <input type="submit" class="button green-button" value="Add"> + <section> + <!-- Pop Up --> + <span class="overlay"></span> + + <div class="modal-box"> + <h2>Add Author</h2> + <h3>Are you sure want to add this Author?</h3> + + <div class="buttons"> + <button class="cancel-btn">Cancel</button> + <button id="addAuthorBtn" class="confirm-btn">Add</button> </div> - </form> - </div> + </div> + <div class="content"> + <h2>Add Author Page</h2> + <form + id="addAuthorForm" + class="form-box center-contents" + > + <div class="form-content flex-column"> <label class="form-label" for="author-name">Author Name:</label> + <input class="form-field" type="text" id="author-name" name="author-name" required> + + <label class="form-label" for="author-age">Author Age:</label> + <input class="form-field" type="number" id="author-age" name="author-age" required> + + <input type="button" class="show-modal button green-button" value="Add"> + </div> + </form> + </div> + </section> </body> +<script> + const section = document.querySelector("section"), + overlay = document.querySelector(".overlay"), + showBtn = document.querySelector(".show-modal"), + closeBtn = document.querySelector(".cancel-btn"), + editUser = document.getElementById("addAuthorBtn"); + + editUser.addEventListener("click", function (event) { + event.preventDefault(); + const form = document.getElementById("addAuthorForm"); + form.action="/author/add/" + form.method = "POST"; + form.enctype = "multipart/form-data"; + form.submit(); + }); + + showBtn.addEventListener("click", ()=>section.classList.add("active")); + + overlay.addEventListener("click", () => + section.classList.remove("active") + ); + + closeBtn.addEventListener("click", () => + section.classList.remove("active") + ); +</script> </html> \ No newline at end of file diff --git a/app/pages/admin/AddBookPage.php b/app/pages/admin/AddBookPage.php index 463fbfd4440b1c939a44d638a97a551d2b8570b0..b9455411d080346d79f1d9ff85072008a1ca6422 100644 --- a/app/pages/admin/AddBookPage.php +++ b/app/pages/admin/AddBookPage.php @@ -9,6 +9,7 @@ <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/globals.css"> <!-- Navbar CSS --> <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/navbar.css"> + <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/popup.css"> <!-- Page-specific CSS --> <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/admin/crud-page.css"> <title>Add Book</title> @@ -16,43 +17,95 @@ <body> <!-- Navigation bar --> <?php include(dirname(__DIR__) . '../../components/Navbar.php') ?> - <div class="content"> - <br><br><br> - <h2>Add Book Page</h2> - <form - class="form-box center-contents" - action="/book/add" method="POST" enctype="multipart/form-data" - > - <div class="form-content flex-column"> - <label class="form-label" for="title">Title:</label> - <input class="form-field" type="text" id="title" name="title" required> - - <label class="form-label" for="year">Year Published:</label> - <input class="form-field" type="number" id="year" name="year" required> - - <label class="form-label" for="summary">Summary:</label> - <textarea - class="text-area" type="text" id="summary" name="summary" - rows="5" cols="50" required - > </textarea> - - <label class="form-label" for="authors[]">Authors:</label> - <input class="form-field" type="number" id="author" name="authors[]" required> - - <label class="form-label" for="genres[]">Genres:</label> - <input class="form-field" type="number" id="genre" name="genres[]" required> - - <label class="form-label" for="price">Price:</label> - <input class="form-field" type="number" id="price" name="price" required> - - <label class="file-upload form-label" for="cover">Book Cover:</label> - <input type="file" id="image" name="cover" accept="image/png, image/jpeg" required> - - <label class="file-upload form-label" for="audio">Audio:</label> - <input type="file" id="audio" name="audio" accept="audio/mpeg" required> - <button type="submit" class="button green-button">Add</button> + <section> + <!-- Pop Up --> + <span class="overlay"></span> + + <div class="modal-box"> + <h2>Add Book</h2> + <h3>Are you sure want to add this book?</h3> + + <div class="buttons"> + <button class="cancel-btn">Cancel</button> + <button id="addBookBtn" class="confirm-btn">Add</button> + </div> + </div> + <div class="content"> + <br><br><br> + <h2>Add Book Page</h2> + <form + id="addBookForm" + class="form-box center-contents" + > + <div class="form-content flex-column"> + <label class="form-label" for="title">Title:</label> + <input class="form-field" type="text" id="title" name="title" required> + + <label class="form-label" for="year">Year Published:</label> + <input class="form-field" type="number" id="year" name="year" required> + + <label class="form-label" for="summary">Summary:</label> + <textarea + class="text-area" type="text" id="summary" name="summary" + rows="5" cols="50" required + > </textarea> + + <label class="form-label" for="authors[]">Authors:</label> + <input class="form-field" type="number" id="author" name="authors[]" required> + + <label class="form-label" for="genres[]">Genres:</label> + <input class="form-field" type="number" id="genre" name="genres[]" required> + + <label class="form-label" for="price">Price:</label> + <input class="form-field" type="number" id="price" name="price" required> + + <label class="file-upload form-label" for="cover">Book Cover:</label> + <input type="file" id="image" name="cover" accept="image/png, image/jpeg" required> + + <label class="file-upload form-label" for="audio">Audio:</label> + <input type="file" id="audio" name="audio" accept="audio/mpeg" required> + <input type="button" class="show-modal button green-button" value="Add"> + </div> + </form> </div> - </form> - </div> + </section> </body> +<script> + const section = document.querySelector("section"), + overlay = document.querySelector(".overlay"), + showBtn = document.querySelector(".show-modal"), + closeBtn = document.querySelector(".cancel-btn"), + addBookBtn = document.getElementById("addBookBtn"); + + function showModal() { + const inputFields = document.querySelectorAll('.form-field'); + + // Check if any input field is empty + const isEmpty = Array.from(inputFields).some(field => field.value.trim() === ''); + + if (!isEmpty) { + section.classList.add("active"); + } else { + alert("Please fill in all the required fields."); + showBtn.removeEventListener("click", showModal); + } + } + addBookBtn.addEventListener("click", function () { + const form = document.getElementById("addBookForm"); + form.action = "/book/add"; + form.method = "POST"; + form.enctype = "multipart/form-data"; + form.submit(); + }); + + showBtn.addEventListener("click", showModal); + + overlay.addEventListener("click", () => + section.classList.remove("active") + ); + + closeBtn.addEventListener("click", () => + section.classList.remove("active") + ); +</script> </html> diff --git a/app/pages/admin/AddGenrePage.php b/app/pages/admin/AddGenrePage.php index e96733a922d8bcbac93e763d7b3339f87e27bbf2..1df93f0b8b6a7149da0c644c9b53014e9fbe49ba 100644 --- a/app/pages/admin/AddGenrePage.php +++ b/app/pages/admin/AddGenrePage.php @@ -36,6 +36,7 @@ <div class="content"> <h2>Add Genre Page</h2> <form + id="addGenreForm" class="form-box center-contents" > <div class="form-content flex-column"> @@ -68,7 +69,7 @@ } } addGenreBtn.addEventListener("click", function () { - const form = document.querySelector('form'); + const form = document.getElementById("addGenreForm"); form.action = "/genre/add"; form.method = "POST"; form.enctype = "multipart/form-data"; diff --git a/app/pages/admin/UpdateSpecificAuthorPage.php b/app/pages/admin/UpdateSpecificAuthorPage.php index d7f1e9eb95d59c3a28009acd1b8f46413f334180..9452615e78b65d4b3ed38666da3013bb51999f94 100644 --- a/app/pages/admin/UpdateSpecificAuthorPage.php +++ b/app/pages/admin/UpdateSpecificAuthorPage.php @@ -10,6 +10,7 @@ <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/globals.css"> <!-- Navbar CSS --> <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/navbar.css"> + <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/popup.css"> <!-- Page-specific CSS --> <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/admin/list.css"> <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/admin/crud-page.css"> @@ -19,38 +20,79 @@ <body> <!-- Navigation bar --> <?php include(dirname(__DIR__) . '../../components/Navbar.php') ?> - <div class="wrapper-small"> - <div class="pad-40"> - <h1>Update Author Page</h1> - <form - action="/author/update/<? echo $this->data['author_id']?>" method="POST" enctype="multipart/form-data" - > - <p class="form-label">Author ID : <? - echo $this->data['author_id']; - ?></p> - <p class="form-label">Previous Name : <? - echo $this->data['full_name']; - ?></p> - <p class="form-label">Previous Age : <? - echo $this->data['age']; - ?></p> - - <br> - <label class="form-label" for="full_name">New Author Name:</label><br> - <input class="form-field" type="text" id="full_name" name="full_name" required> - - <br><br> - - <label class="form-label" for="age">New Author Age:</label><br> - <input class="form-field" type="number" id="age" name="age" required> - - <br><br> - - <input type="submit" class="button green-button" value="Update"> - - </form> + <section> + <!-- Pop Up --> + <span class="overlay"></span> + + <div class="modal-box"> + <h2>Edit Author</h2> + <h3>Are you sure want to edit this Author?</h3> + + <div class="buttons"> + <button class="cancel-btn">Cancel</button> + <button id="editAuthorBtn" class="confirm-btn">Edit</button> + </div> </div> - </div> + <div class="wrapper-small"> + <div class="pad-40"> + <h1>Update Author Page</h1> + <form + id="editAuthorForm" + action="/author/update/<? echo $this->data['author_id']?>" method="POST" enctype="multipart/form-data" + > + <p class="form-label">Author ID : <? + echo $this->data['author_id']; + ?></p> + <p class="form-label">Previous Name : <? + echo $this->data['full_name']; + ?></p> + <p class="form-label">Previous Age : <? + echo $this->data['age']; + ?></p> + + <br> + <label class="form-label" for="full_name">New Author Name:</label><br> + <input class="form-field" type="text" id="full_name" name="full_name" required> + + <br><br> + + <label class="form-label" for="age">New Author Age:</label><br> + <input class="form-field" type="number" id="age" name="age" required> + + <br><br> + + <input type="button" class="show-modal button green-button" value="Update"> + + </form> + </div> + </div> + </section> </body> +<script> + const section = document.querySelector("section"), + overlay = document.querySelector(".overlay"), + showBtn = document.querySelector(".show-modal"), + closeBtn = document.querySelector(".cancel-btn"), + editAuthor = document.getElementById("editAuthorBtn"); + + editAuthor.addEventListener("click", function (event) { + event.preventDefault(); + const form = document.getElementById("editAuthorForm"); + form.action="/author/update/<? echo $this->data['author_id']?>" + form.method = "POST"; + form.enctype = "multipart/form-data"; + form.submit(); + }); + + showBtn.addEventListener("click", ()=>section.classList.add("active")); + + overlay.addEventListener("click", () => + section.classList.remove("active") + ); + + closeBtn.addEventListener("click", () => + section.classList.remove("active") + ); +</script> </html> \ No newline at end of file diff --git a/app/pages/admin/UpdateSpecificGenrePage.php b/app/pages/admin/UpdateSpecificGenrePage.php index 8d7863f0ea6f33f4d19b3d95161871025be6c223..0ee93681b11fbda59a0744187b3c63ed828db269 100644 --- a/app/pages/admin/UpdateSpecificGenrePage.php +++ b/app/pages/admin/UpdateSpecificGenrePage.php @@ -10,39 +10,80 @@ <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/globals.css"> <!-- Navbar CSS --> <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/navbar.css"> + <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/popup.css"> <!-- Page-specific CSS --> <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/admin/list.css"> <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/admin/crud-page.css"> - <title>Update User : <? echo $this->data['genre_id'];?></title> + <title>Update Genre : <? echo $this->data['genre_id'];?></title> </head> <body> <!-- Navigation bar --> <?php include(dirname(__DIR__) . '../../components/Navbar.php') ?> - <div class="wrapper-small"> - <div class="pad-40"> - <h1>Update Genre Page</h1> - <form - action="/genre/update/<? echo $this->data['genre_id']?>" method="POST" enctype="multipart/form-data" - > - <p class="form-label">Genre ID : <? - echo $this->data['genre_id']; - ?></p> - <p class="form-label">Previous Genre Name : <? - echo $this->data['name']; - ?></p> - - <br> - <label class="form-label" for="name">New Genre Name:</label><br> - <input class="form-field" type="text" id="name" name="name" required> - - <br><br> - - <input type="submit" class="button green-button" value="Update"> - - </form> + <section> + <!-- Pop Up --> + <span class="overlay"></span> + + <div class="modal-box"> + <h2>Edit Genre</h2> + <h3>Are you sure want to edit this Genre?</h3> + + <div class="buttons"> + <button class="cancel-btn">Cancel</button> + <button id="editGenreBtn" class="confirm-btn">Edit</button> + </div> + </div> + <div class="wrapper-small"> + <div class="pad-40"> + <h1>Update Genre Page</h1> + <form + id="editGenreForm" + action="/genre/update/<? echo $this->data['genre_id']?>" method="POST" enctype="multipart/form-data" + > + <p class="form-label">Genre ID : <? + echo $this->data['genre_id']; + ?></p> + <p class="form-label">Previous Genre Name : <? + echo $this->data['name']; + ?></p> + + <br> + <label class="form-label" for="name">New Genre Name:</label><br> + <input class="form-field" type="text" id="name" name="name" required> + + <br><br> + + <input type="button" class="show-modal button green-button" value="Update"> + + </form> + </div> </div> - </div> + </section> </body> +<script> + const section = document.querySelector("section"), + overlay = document.querySelector(".overlay"), + showBtn = document.querySelector(".show-modal"), + closeBtn = document.querySelector(".cancel-btn"), + editGenre = document.getElementById("editGenreBtn"); + + editGenre.addEventListener("click", function (event) { + event.preventDefault(); + const form = document.getElementById("editGenreForm"); + form.action="/genre/update/<? echo $this->data['genre_id']?>" + form.method = "POST"; + form.enctype = "multipart/form-data"; + form.submit(); + }); + + showBtn.addEventListener("click", ()=>section.classList.add("active")); + + overlay.addEventListener("click", () => + section.classList.remove("active") + ); + closeBtn.addEventListener("click", () => + section.classList.remove("active") + ); +</script> </html> \ No newline at end of file diff --git a/app/pages/admin/UpdateSpecificUserPage.php b/app/pages/admin/UpdateSpecificUserPage.php index 16dafd43a3d874fb74cbb32908ee125ec603c92c..f07853cae7382eac997caed069539a240f0e738e 100644 --- a/app/pages/admin/UpdateSpecificUserPage.php +++ b/app/pages/admin/UpdateSpecificUserPage.php @@ -1,6 +1,5 @@ <!DOCTYPE html> -<html lang="en"> - +<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> @@ -10,6 +9,7 @@ <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/globals.css"> <!-- Navbar CSS --> <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/navbar.css"> + <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/popup.css"> <!-- Page-specific CSS --> <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/admin/list.css"> <title>Update User : <? echo $this->data['username'];?></title> @@ -18,30 +18,69 @@ <body> <!-- Navigation bar --> <?php include(dirname(__DIR__) . '../../components/Navbar.php') ?> - <div class="wrapper-small"> - <div class="pad-40"> - <h1>Update User Page</h1> - <div class="centered"> - <form - class="center-contents" - action="/user/update/<? echo $this->data['username']?>" method="POST" enctype="multipart/form-data" - > - <p class="form-label">Username : <? - echo $this->data['username']; - ?></p> - - <label class="form-label" for="role">User Role:</label> - <select class="select" id="role" name="role" value="<? echo $this->data['role'];?>"> - <option value="customer">Customer</option> - <option value="admin">Admin</option> - </select> - - <input type="submit" class="button green-button" value="Update"> - - </form> + <section> + <!-- Pop Up --> + <span class="overlay"></span> + + <div class="modal-box"> + <h2>Edit User</h2> + <h3>Are you sure want to edit this User?</h3> + + <div class="buttons"> + <button class="cancel-btn">Cancel</button> + <button id="editUserBtn" class="confirm-btn">Edit</button> </div> </div> - </div> + <div class="wrapper-small"> + <div class="pad-40"> + <h1>Update User Page</h1> + <div class="centered"> + <form + class="center-contents" id="editUserForm" + action="/user/update/<? echo $this->data['username']?>" method="POST" enctype="multipart/form-data" + > + <p class="form-label">Username : <? + echo $this->data['username']; + ?></p> + + <label class="form-label" for="role">User Role:</label> + <select class="select" id="role" name="role" value="<? echo $this->data['role'];?>"> + <option value="customer">Customer</option> + <option value="admin">Admin</option> + </select> + + <input type="button" class="show-modal button green-button" value="Update"> + + </form> + </div> + </div> + </div> + </section> </body> +<script> + const section = document.querySelector("section"), + overlay = document.querySelector(".overlay"), + showBtn = document.querySelector(".show-modal"), + closeBtn = document.querySelector(".cancel-btn"), + editUser = document.getElementById("editUserBtn"); + + editUser.addEventListener("click", function (event) { + event.preventDefault(); + const form = document.getElementById("editUserForm"); + form.action="/user/update/<? echo $this->data['username']?>" + form.method = "POST"; + form.enctype = "multipart/form-data"; + form.submit(); + }); + + showBtn.addEventListener("click", ()=>section.classList.add("active")); + + overlay.addEventListener("click", () => + section.classList.remove("active") + ); + closeBtn.addEventListener("click", () => + section.classList.remove("active") + ); +</script> </html> \ No newline at end of file diff --git a/screenshots/AuthorList.jpg b/screenshots/AuthorList.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b8c0391d83505f61b5c7d47a9b3f7ced4b925db7 Binary files /dev/null and b/screenshots/AuthorList.jpg differ diff --git a/screenshots/lighthouse/lighthouse (1).jpg b/screenshots/lighthouse/lighthouse (1).jpg new file mode 100644 index 0000000000000000000000000000000000000000..6af9984585d018ed53de8a27584e06bdf0208083 Binary files /dev/null and b/screenshots/lighthouse/lighthouse (1).jpg differ diff --git a/screenshots/lighthouse/lighthouse (2).jpg b/screenshots/lighthouse/lighthouse (2).jpg new file mode 100644 index 0000000000000000000000000000000000000000..de75602bdd855c68662d99fad18b541f5752a38e Binary files /dev/null and b/screenshots/lighthouse/lighthouse (2).jpg differ diff --git a/screenshots/lighthouse/lighthouse (3).jpg b/screenshots/lighthouse/lighthouse (3).jpg new file mode 100644 index 0000000000000000000000000000000000000000..a63c1ea0ec51945795de6b8cfdcaade2bbd3e745 Binary files /dev/null and b/screenshots/lighthouse/lighthouse (3).jpg differ diff --git a/screenshots/lighthouse/lighthouse (4).jpg b/screenshots/lighthouse/lighthouse (4).jpg new file mode 100644 index 0000000000000000000000000000000000000000..a0f87fa0559a44b057dfa6a1e040c90214a2ec9e Binary files /dev/null and b/screenshots/lighthouse/lighthouse (4).jpg differ diff --git a/screenshots/lighthouse/lighthouse (5).jpg b/screenshots/lighthouse/lighthouse (5).jpg new file mode 100644 index 0000000000000000000000000000000000000000..0d2d26d4ca68f8cca2e8c5d2eaf1b35dd8aae16f Binary files /dev/null and b/screenshots/lighthouse/lighthouse (5).jpg differ diff --git a/screenshots/lighthouse/lighthouse (6).jpg b/screenshots/lighthouse/lighthouse (6).jpg new file mode 100644 index 0000000000000000000000000000000000000000..995ddbbb7f2d33dabbd6b3fd77a0ac2709642069 Binary files /dev/null and b/screenshots/lighthouse/lighthouse (6).jpg differ diff --git a/screenshots/lighthouse/lighthouse (7).jpg b/screenshots/lighthouse/lighthouse (7).jpg new file mode 100644 index 0000000000000000000000000000000000000000..5f12ff931a4141fb9f8810fb0c4f4b418fe25a4d Binary files /dev/null and b/screenshots/lighthouse/lighthouse (7).jpg differ diff --git a/screenshots/lighthouse/lighthouse (8).jpg b/screenshots/lighthouse/lighthouse (8).jpg new file mode 100644 index 0000000000000000000000000000000000000000..af5381ea26c851e64051d370525bc47e0738e4aa Binary files /dev/null and b/screenshots/lighthouse/lighthouse (8).jpg differ diff --git a/screenshots/lighthouse/lighthouse (9).jpg b/screenshots/lighthouse/lighthouse (9).jpg new file mode 100644 index 0000000000000000000000000000000000000000..84641fb13fd147933a32e3e7bc6e91d732c4b226 Binary files /dev/null and b/screenshots/lighthouse/lighthouse (9).jpg differ