diff --git a/assets/css/custom.css b/assets/css/custom.css new file mode 100644 index 0000000..6e8a540 --- /dev/null +++ b/assets/css/custom.css @@ -0,0 +1,130 @@ +/* PicklePRO Custom Styles */ +body { + font-family: 'Inter', sans-serif; + background-color: #f8f9fa; /* Light grey background */ + color: #333; +} + +.navbar-brand { + font-weight: 700; + font-size: 1.5rem; +} + +.navbar-brand .text-primary { + color: #0d6efd !important; /* Bootstrap Primary */ +} + +.nav-link { + color: #6c757d; /* Muted text for nav links */ + font-weight: 500; +} + +.nav-link:hover, .nav-link.active { + color: #0d6efd; +} + +.btn-primary { + background-color: #0d6efd; + border-color: #0d6efd; + font-weight: 500; + padding: 0.5rem 1.25rem; +} + +.btn-primary:hover { + background-color: #0b5ed7; + border-color: #0a58ca; +} + +.btn-outline-primary { + border-color: #0d6efd; + color: #0d6efd; +} + +.btn-outline-primary:hover { + background-color: #0d6efd; + color: white; +} + +.btn-link { + color: #333; + font-weight: 500; +} + +.card { + border: none; + border-radius: 0.75rem; + box-shadow: 0 4px 12px rgba(0,0,0,0.05); + height: 100%; +} + +.carousel-indicators-custom { + text-align: center; + margin-top: 1rem; +} + +.carousel-indicators-custom button { + background-color: #d1d1d1; + width: 8px; + height: 8px; + border-radius: 50%; + border: none; + margin: 0 4px; + transition: background-color 0.3s; +} + +.carousel-indicators-custom button.active { + background-color: #0d6efd; +} + +.tournament-item:not(:last-child) { + margin-bottom: 1rem; +} + +.calendar-grid { + display: grid; + grid-template-columns: repeat(7, 1fr); + gap: 0.5rem; + text-align: center; +} + +.day-name { + font-weight: 600; + font-size: 0.8rem; + color: #6c757d; +} + +.day { + padding: 0.5rem 0; + border-radius: 50%; + font-size: 0.9rem; + position: relative; +} + +.day.event { + background-color: #eaf2ff; + color: #0d6efd; + font-weight: 500; +} + +.day.event::after { + content: ''; + position: absolute; + bottom: 4px; + left: 50%; + transform: translateX(-50%); + width: 4px; + height: 4px; + border-radius: 50%; + background-color: #0d6efd; +} + +.day.empty { + visibility: hidden; +} + +.event-dot { + width: 10px; + height: 10px; + border-radius: 50%; + flex-shrink: 0; +} \ No newline at end of file diff --git a/assets/js/main.js b/assets/js/main.js new file mode 100644 index 0000000..e69de29 diff --git a/assets/pasted-20251020-225815-87128f21.png b/assets/pasted-20251020-225815-87128f21.png new file mode 100644 index 0000000..1a2fae5 Binary files /dev/null and b/assets/pasted-20251020-225815-87128f21.png differ diff --git a/db/setup.php b/db/setup.php new file mode 100644 index 0000000..60f538f --- /dev/null +++ b/db/setup.php @@ -0,0 +1,59 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + + // Create users table + $pdo->exec(" + CREATE TABLE IF NOT EXISTS `users` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `username` VARCHAR(255) NOT NULL UNIQUE, + `password` VARCHAR(255) NOT NULL, + `role` VARCHAR(50) NOT NULL, + `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + "); + + // Create clubs table + $pdo->exec(" + CREATE TABLE IF NOT EXISTS `clubs` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `name` VARCHAR(255) NOT NULL, + `address` VARCHAR(255) NOT NULL, + `number` VARCHAR(50), + `neighborhood` VARCHAR(100), + `city` VARCHAR(100) NOT NULL, + `description` TEXT, + `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + "); + + // Check if superadmin exists + $stmt = $pdo->prepare("SELECT id FROM users WHERE username = 'superadmin'"); + $stmt->execute(); + if ($stmt->fetch()) { + echo "Superadmin user already exists.
"; + } else { + // Insert default superadmin user + $username = 'superadmin'; + $password = 'superadmin'; // Default password, you should change this + $hashed_password = password_hash($password, PASSWORD_DEFAULT); + $role = 'superadmin'; + + $stmt = $pdo->prepare("INSERT INTO users (username, password, role) VALUES (:username, :password, :role)"); + $stmt->bindParam(':username', $username); + $stmt->bindParam(':password', $hashed_password); + $stmt->bindParam(':role', $role); + $stmt->execute(); + echo "Superadmin user created successfully with username 'superadmin' and password 'superadmin'.
"; + } + + echo "Database setup completed successfully!
"; + echo "You can now delete this file (db/setup.php) for security reasons."; + +} catch (PDOException $e) { + die("Database setup failed: " . $e->getMessage()); +} diff --git a/index.php b/index.php index 7205f3d..75126c9 100644 --- a/index.php +++ b/index.php @@ -1,150 +1,161 @@ - - - + + - - - New Style - - - - - - - - - - - - - - - - - - - + + + + + PicklePRO - Seu Portal Completo de Pickleball + + + + + + + + + + + + + + + + + + + + + + -
-
-

Analyzing your requirements and generating your website…

-
- Loading… -
-

AI is collecting your requirements and applying the first changes.

-

This page will update automatically as the plan is implemented.

-

Runtime: PHP — UTC

-
-
- + + + + + +
+
+

Seu Portal Completo de Pickleball

+
+ +
+ +
+
Clubes Parceiros
+
+ + +
+
+ + +
+
Próximos Torneios
+
+
+

1º COPA DINK DE PICKLEBALL

+

Dink Pickleball

+

15/10/2025

+
+
+
+

1ª COPA DE PICKLEBALL

+

Smash Pickleball

+

25/10/2025

+
+
+
+ + +
+
Calendário
+
+
+ +
Outubro 2025
+ +
+
+
Dom
Seg
Ter
Qua
Qui
Sex
Sáb
+
1
2
3
4
+
5
6
7
8
9
10
11
+
12
13
14
15
16
17
18
+
19
20
21
22
23
24
25
+
26
27
28
29
30
31
+
+
+
+

Torneios do Mês

+
+ + 1º COPA DINK DE PICKLEBALL • 14 de out. - 18 de out. +
+
+ + 1ª COPA DE PICKLEBALL • 24 de out. - 25 de out. +
+
+ Ver Todos os Torneios +
+
+
+
+ + + + + + +