index.php 5.92 KB
Newer Older
1
2
<?php include 'db_library.php'; ?>
<?php include 'session_manager.php'; ?>
3

Velibor Najdovski's avatar
Velibor Najdovski committed
4
5
<!DOCTYPE html>
<html lang="en">
6

Velibor Najdovski's avatar
Velibor Najdovski committed
7
8
9
10
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Brainster Library</title>
11
    <script src="https://cdn.tailwindcss.com"></script>
12
    <link href="style.css" rel="stylesheet">
Velibor Najdovski's avatar
Velibor Najdovski committed
13
</head>
14

Velibor Najdovski's avatar
Velibor Najdovski committed
15
<body>
16
17
    <!-- Sticky Navbar -->
    <nav class="bg-gray-800 text-white p-4 sticky top-0 z-50">
18
19
20
21
22
23
24
        <div class="container mx-auto flex justify-between items-center">
            <!-- Logo -->
            <a href="#" class="transition-transform duration-500 transform hover:scale-125 hover:rotate-180">
                <img src="./images/Logo.png" alt="Logo" class="h-8">
            </a>
            <!-- Login/Logout Button -->
            <div>
Velibor Najdovski's avatar
Velibor Najdovski committed
25
                <?php if (isset($_SESSION['loggedin'])) : ?>
26
                    <span>Welcome, <?php echo htmlspecialchars($_SESSION['username']); ?></span>
Velibor Najdovski's avatar
Velibor Najdovski committed
27
28
29
30
                    <!-- Admin Dashboard Button -->
                    <?php if ($_SESSION['role'] === 'admin') : ?>
                        <a href="admin_dashboard.php" class="bg-green-500 hover:bg-green-700 text-white font-bold py-2 px-4 rounded ml-2">Admin Dashboard</a>
                    <?php endif; ?>
31
32
33
34
35
                    <a href="logout.php" class="bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded">Logout</a>
                <?php else : ?>
                    <a href="signup.php" class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Login</a>
                <?php endif; ?>
            </div>
36
        </div>
37
    </nav>
38

39
    <section class="hero-background h-screen flex items-center justify-center">
40
41
        <h1 class="text-white text-4xl md:text-6xl font-bold text-center">Embark on a Journey in Every Page</h1>
    </section>
42

43
44
45
46
47
48
49
50
51
52
53
54
    <!-- Category Buttons -->
    <div class="container mx-auto my-8 text-center">
        <h2 class="text-2xl font-bold mb-4">Select Book By Category</h2>
        <div class="flex flex-wrap gap-4 justify-center">
            <button onclick="filterBooks('1', this)" data-bg-color="bg-blue-500" data-border-color="border-blue-500" class="category-button bg-white text-black border-blue-500 font-bold py-2 px-4 rounded border-2">Fantasy</button>
            <button onclick="filterBooks('2', this)" data-bg-color="bg-green-500" data-border-color="border-green-500" class="category-button bg-white text-black border-green-500 font-bold py-2 px-4 rounded border-2">Mystery</button>
            <button onclick="filterBooks('3', this)" data-bg-color="bg-red-500" data-border-color="border-red-500" class="category-button bg-white text-black border-red-500 font-bold py-2 px-4 rounded border-2">Science Fiction</button>
            <button onclick="filterBooks('4', this)" data-bg-color="bg-yellow-500" data-border-color="border-yellow-500" class="category-button bg-white text-black border-yellow-500 font-bold py-2 px-4 rounded border-2">Romance</button>
            <button onclick="filterBooks('5', this)" data-bg-color="bg-purple-500" data-border-color="border-purple-500" class="category-button bg-white text-black border-purple-500 font-bold py-2 px-4 rounded border-2">Thriller</button>
            <button onclick="filterBooks('6', this)" data-bg-color="bg-pink-500" data-border-color="border-pink-500" class="category-button bg-white text-black border-pink-500 font-bold py-2 px-4 rounded border-2">Classic</button>
            <button onclick="filterBooks('7', this)" data-bg-color="bg-indigo-500" data-border-color="border-indigo-500" class="category-button bg-white text-black border-indigo-500 font-bold py-2 px-4 rounded border-2">History</button>
            <button onclick="filterBooks('8', this)" data-bg-color="bg-orange-500" data-border-color="border-orange-500" class="category-button bg-white text-black border-orange-500 font-bold py-2 px-4 rounded border-2">Non-Fiction</button>
55
        </div>
56
57
    </div>

58
59
60
61
62
63
64
65
66
    <!-- Books Grid -->
    <div class="container mx-auto px-4 my-8">
        <div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-y-8 gap-x-6">
            <?php
            $sql = "SELECT books.*, CONCAT(authors.first_name, ' ', authors.last_name) AS author_name, categories.title AS category_title FROM books INNER JOIN authors ON books.author_id = authors.id INNER JOIN categories ON books.category_id = categories.id";
            $result = $conn->query($sql);
            if ($result->num_rows > 0) {
                while ($row = $result->fetch_assoc()) {
                    echo "<div class='max-w-xs rounded overflow-hidden shadow-md hover:shadow-lg transition duration-300 ease-in-out transform hover:scale-105 group book-card' data-category='" . $row['category_id'] . "'>";
67
                    echo "<a href='book_details.php?id=" . $row['id'] . "' target='_blank'><img class='w-full' src='" . htmlspecialchars($row['image_url'], ENT_QUOTES, 'UTF-8') . "' alt='" . htmlspecialchars($row['title'], ENT_QUOTES, 'UTF-8') . "'></a>";
68
69
70
71
72
73
74
75
76
77
78
79
                    echo "<div class='px-6 py-4 text-center'>";
                    echo "<div class='font-bold text-lg mb-2 group-hover:text-blue-600 transition duration-300'><a href='book_details.php?id=" . $row['id'] . "' target='_blank'>" . htmlspecialchars($row['title'], ENT_QUOTES, 'UTF-8') . "</a></div>";
                    echo "<p class='text-gray-700 text-sm'>" . htmlspecialchars($row['author_name'], ENT_QUOTES, 'UTF-8') . "</p>";
                    echo "</div></div>";
                }
            } else {
                echo "0 results";
            }
            $conn->close();
            ?>
        </div>
    </div>
80

81
82
    <footer class="bg-gray-800 text-white p-4 sticky bottom-0 z-50">
        <div class="container mx-auto text-center">
83
            <p id="quote"></p>
84
85
        </div>
    </footer>
86
    <script src="footer.js"></script>
87
    <script src ="bookFilter.js"></script>
Velibor Najdovski's avatar
Velibor Najdovski committed
88
</body>
89

Velibor Najdovski's avatar
Velibor Najdovski committed
90
</html>