diff --git a/Assets/Coding competition.docx b/Assets/Coding competition.docx new file mode 100644 index 0000000..af69f11 Binary files /dev/null and b/Assets/Coding competition.docx differ diff --git a/Assets/devhive.jpeg b/Assets/devhive.jpeg new file mode 100644 index 0000000..4a437fd Binary files /dev/null and b/Assets/devhive.jpeg differ diff --git a/Assets/log/log.html b/Assets/log/log.html new file mode 100644 index 0000000..e69de29 diff --git a/Assets/log/profile.html b/Assets/log/profile.html new file mode 100644 index 0000000..533b6e9 --- /dev/null +++ b/Assets/log/profile.html @@ -0,0 +1,276 @@ + + + + + + My Profile - DevHive + + + + + + + + + + +
+ +
+
+
+
+ Profile +
+
+
+ +
+
+
+
+
+

name

+

@username

+

Expertise

+
+
+
Joined
+
Date
+
+
+
+
+ + +
+ +
+ +
+

+ + About +

+

+ Bio +

+
+ + +
+

+ + Skills & Expertise +

+
+ JavaScript + React + Node.js + Python + Docker + AWS +
+
+ + +
+

+ + Recent Activity +

+
+
+
+ +
+
+

Pushed to repository

+

Updated authentication middleware

+

2 hours ago

+
+
+
+
+ +
+
+

Commented on issue

+

"Add dark mode support"

+

1 day ago

+
+
+
+
+
+ + +
+ +
+

+ + Contact +

+
+
+ + @example.com +
+
+ + github.com +
+ +
+ + example.com +
+
+
+ + +
+

+ + Badges +

+
+
+
+ +
+ Top Contributor +
+
+
+ +
+ Verified +
+
+
+ +
+ Active +
+
+
+ + +
+
+

+ + Projects +

+ +
+
+
+

DevHive Platform

+

A collaborative platform for developers

+
+ JavaScript + React +
+
+
+

Code Snippet Manager

+

Organize and share code snippets

+
+ Python + Django +
+
+
+
+
+
+
+ + + + diff --git a/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day1.cpp b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day1.cpp new file mode 100644 index 0000000..97ce003 --- /dev/null +++ b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day1.cpp @@ -0,0 +1,15 @@ +// Day 1: Hello World and basic input/output example +// Demonstrates cout for output and cin for input. +#include +#include + +int main() { + std::cout << "Hello, World!" << std::endl; + + std::cout << "Enter your name: "; + std::string name; + std::cin >> name; + std::cout << "Welcome, " << name << "!" << std::endl; + + return 0; +} diff --git a/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day2.cpp b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day2.cpp new file mode 100644 index 0000000..9f672ba --- /dev/null +++ b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day2.cpp @@ -0,0 +1,21 @@ +// Day 2: Demonstrates basic C++ data types (int, float, char, string) +#include +#include + +int main() { + // Integer + int age = 25; + // Floating point number + float pi = 3.14159f; + // Character + char grade = 'A'; + // String + std::string greeting = "Hello"; + + std::cout << "Age: " << age << "\n"; + std::cout << "Pi: " << pi << "\n"; + std::cout << "Grade: " << grade << "\n"; + std::cout << "Greeting: " << greeting << "\n"; + + return 0; +} diff --git a/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day3.cpp b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day3.cpp new file mode 100644 index 0000000..d992523 --- /dev/null +++ b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day3.cpp @@ -0,0 +1,28 @@ +// Day 3: Demonstrates arithmetic, comparison, and logical operators in C++ +#include + +int main() { + int a = 10, b = 3; + + // Arithmetic + std::cout << "a + b = " << a + b << "\n"; + std::cout << "a - b = " << a - b << "\n"; + std::cout << "a * b = " << a * b << "\n"; + std::cout << "a / b = " << a / b << "\n"; + std::cout << "a % b = " << a % b << "\n"; + + // Comparison + std::cout << std::boolalpha; // print bools as true/false + std::cout << "a == b: " << (a == b) << "\n"; + std::cout << "a != b: " << (a != b) << "\n"; + std::cout << "a > b: " << (a > b) << "\n"; + std::cout << "a < b: " << (a < b) << "\n"; + + // Logical + bool x = true, y = false; + std::cout << "x && y: " << (x && y) << "\n"; + std::cout << "x || y: " << (x || y) << "\n"; + std::cout << "!x: " << (!x) << "\n"; + + return 0; +} diff --git a/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day4.cpp b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day4.cpp new file mode 100644 index 0000000..c4481f3 --- /dev/null +++ b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day4.cpp @@ -0,0 +1,38 @@ +// Day 4: Demonstrates conditional statements (if-else and switch) in C++ +#include + +int main() { + int number; + std::cout << "Enter an integer: "; + std::cin >> number; + + // if-else + if (number % 2 == 0) { + std::cout << number << " is even.\n"; + } else { + std::cout << number << " is odd.\n"; + } + + // switch + char option; + std::cout << "Enter grade (A-D): "; + std::cin >> option; + switch (option) { + case 'A': + std::cout << "Excellent!\n"; + break; + case 'B': + std::cout << "Good job!\n"; + break; + case 'C': + std::cout << "Fair.\n"; + break; + case 'D': + std::cout << "Needs improvement.\n"; + break; + default: + std::cout << "Invalid grade.\n"; + } + + return 0; +} diff --git a/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day5.cpp b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day5.cpp new file mode 100644 index 0000000..87af4f1 --- /dev/null +++ b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day5.cpp @@ -0,0 +1,29 @@ +// Day 5: Demonstrates loops in C++ (for, while, do-while) +#include + +int main() { + // for loop: print 1-5 + std::cout << "For loop: "; + for (int i = 1; i <= 5; ++i) { + std::cout << i << " "; + } + std::cout << "\n"; + + // while loop: countdown 5-1 + int n = 5; + std::cout << "While loop: "; + while (n > 0) { + std::cout << n-- << " "; + } + std::cout << "\n"; + + // do-while: ask until correct password + int password; + do { + std::cout << "Enter password (1234): "; + std::cin >> password; + } while (password != 1234); + std::cout << "Access granted!\n"; + + return 0; +} diff --git a/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day6.cpp b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day6.cpp new file mode 100644 index 0000000..487c99c --- /dev/null +++ b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day6.cpp @@ -0,0 +1,39 @@ +// Day 6: Demonstrates defining and using functions with return values in C++ +// Examples: add two numbers, compute factorial, and a void greeting function. + +#include +#include + +// Adds two integers and returns the result +int add(int x, int y) { + return x + y; +} + +// Computes factorial of n (n!) and returns the result as long long +long long factorial(int n) { + long long result = 1; + for (int i = 2; i <= n; ++i) { + result *= i; + } + return result; +} + +// Prints a greeting message (void function) +void greet(const std::string &name) { + std::cout << "Hello, " << name << "!" << std::endl; +} + +int main() { + int a, b; + std::cout << "Enter two integers to add: "; + std::cin >> a >> b; + std::cout << "Sum = " << add(a, b) << std::endl; + + int n; + std::cout << "Enter a non-negative integer for factorial: "; + std::cin >> n; + std::cout << n << "! = " << factorial(n) << std::endl; + + greet("Coder"); + return 0; +} diff --git a/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day7.cpp b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day7.cpp new file mode 100644 index 0000000..6892574 --- /dev/null +++ b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/Day7.cpp @@ -0,0 +1,54 @@ +// Day 7: Practice problems recap – Basic calculator and number guessing game +// 1. Simple calculator supporting +, -, *, / +// 2. Number guessing game where the user tries to guess a randomly generated number + +#include +#include +#include + +void calculator() { + double num1, num2; + char op; + std::cout << "\n=== Basic Calculator ===\n"; + std::cout << "Enter expression (e.g., 4 + 5): "; + std::cin >> num1 >> op >> num2; + + switch (op) { + case '+': std::cout << "Result: " << num1 + num2 << "\n"; break; + case '-': std::cout << "Result: " << num1 - num2 << "\n"; break; + case '*': std::cout << "Result: " << num1 * num2 << "\n"; break; + case '/': if (num2 != 0) std::cout << "Result: " << num1 / num2 << "\n"; else std::cout << "Cannot divide by zero!\n"; break; + default: std::cout << "Invalid operator!\n"; + } +} + +void guessingGame() { + std::cout << "\n=== Number Guessing Game ===\n"; + std::srand(static_cast(std::time(nullptr))); + int secret = std::rand() % 100 + 1; // 1-100 + int guess, attempts = 0; + + do { + std::cout << "Guess the number (1-100): "; + std::cin >> guess; + ++attempts; + if (guess > secret) std::cout << "Too high!\n"; + else if (guess < secret) std::cout << "Too low!\n"; + else std::cout << "Correct! You guessed it in " << attempts << " attempts.\n"; + } while (guess != secret); +} + +int main() { + int choice; + std::cout << "Choose an option:\n1. Calculator\n2. Number Guessing Game\nEnter choice: "; + std::cin >> choice; + + if (choice == 1) + calculator(); + else if (choice == 2) + guessingGame(); + else + std::cout << "Invalid choice.\n"; + + return 0; +} diff --git a/DevHivecode (Content)/Week1(Basic Syntax and Structure)/README.md b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/README.md new file mode 100644 index 0000000..7b77114 --- /dev/null +++ b/DevHivecode (Content)/Week1(Basic Syntax and Structure)/README.md @@ -0,0 +1,13 @@ +# Week 1: Basic Syntax and Structure + +**Objective:** Practice decision-making structures and work with arrays. + +| Day | Topic | +| --- | ----- | +| 1 | Introduction to C++: Hello World, basic I/O (cin/cout), compiling a program. | +| 2 | Variables and Data Types (int, float, char, string). | +| 3 | Operators (arithmetic, comparison, logical). | +| 4 | Conditionals (if, else, switch). | +| 5 | Loops (for, while, do-while). | +| 6 | Functions and Return Values. | +| 7 | Recap & Practice – Basic calculator, number guessing game. | diff --git a/Web/assets/audio/SOUND 3.mp3 b/Web/assets/audio/SOUND 3.mp3 new file mode 100644 index 0000000..73fa8d2 Binary files /dev/null and b/Web/assets/audio/SOUND 3.mp3 differ diff --git a/Web/assets/audio/SOUND 4.mp3 b/Web/assets/audio/SOUND 4.mp3 new file mode 100644 index 0000000..60e07d0 Binary files /dev/null and b/Web/assets/audio/SOUND 4.mp3 differ diff --git a/Web/assets/images/10.jpg b/Web/assets/images/10.jpg new file mode 100644 index 0000000..37d985b Binary files /dev/null and b/Web/assets/images/10.jpg differ diff --git a/Web/assets/images/DEVHIVE.png b/Web/assets/images/DEVHIVE.png new file mode 100644 index 0000000..747a753 Binary files /dev/null and b/Web/assets/images/DEVHIVE.png differ diff --git a/Web/assets/images/Picsart_25-07-15_09-44-06-597.png b/Web/assets/images/Picsart_25-07-15_09-44-06-597.png new file mode 100644 index 0000000..f1104ef Binary files /dev/null and b/Web/assets/images/Picsart_25-07-15_09-44-06-597.png differ diff --git a/Web/assets/images/Picsart_25-07-15_09-46-05-919.png b/Web/assets/images/Picsart_25-07-15_09-46-05-919.png new file mode 100644 index 0000000..ca25b37 Binary files /dev/null and b/Web/assets/images/Picsart_25-07-15_09-46-05-919.png differ diff --git a/Web/assets/images/Screenshot_20250715_093759.jpg b/Web/assets/images/Screenshot_20250715_093759.jpg new file mode 100644 index 0000000..09ef9f5 Binary files /dev/null and b/Web/assets/images/Screenshot_20250715_093759.jpg differ diff --git a/Web/assets/images/devhivee.png b/Web/assets/images/devhivee.png new file mode 100644 index 0000000..a420aa3 Binary files /dev/null and b/Web/assets/images/devhivee.png differ diff --git a/Web/assets/images/logo.png b/Web/assets/images/logo.png new file mode 100644 index 0000000..289d2c7 Binary files /dev/null and b/Web/assets/images/logo.png differ diff --git a/Web/assets/videos/chips.mp4 b/Web/assets/videos/chips.mp4 new file mode 100644 index 0000000..3d960c8 Binary files /dev/null and b/Web/assets/videos/chips.mp4 differ diff --git a/Web/public/Event/events.css b/Web/public/Event/events.css new file mode 100644 index 0000000..c93c013 --- /dev/null +++ b/Web/public/Event/events.css @@ -0,0 +1,236 @@ +/* Base Styles */ +:root { + --primary: #8b5cf6; + --primary-hover: #7c3aed; + --text: #ffffff; + --text-light: #ffffff; + --bg: #000000; + --card-bg: #424242; + --border: #e5e7eb; +} +body{ + background-color: var(--bg); +} + +/* Navigation */ +.navbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 2rem; + background: rgb(0, 0, 0); + backdrop-filter: blur(10px); + -webkit-backdrop-filter: blur(10px); + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 50; +} + +.logo img { + width: 50px; + height: 50px; + transition: transform 0.3s ease; +} + +.logo img:hover { + transform: scale(1.1); +} + +.nav-links ul { + display: flex; + list-style: none; + margin: 0; + padding: 0; + gap: 2rem; +} + +.nav-links a { + color: #fff; + text-decoration: none; + font-weight: 500; + font-size: 1rem; + position: relative; + padding: 0.5rem 0; + transition: color 0.3s ease; +} + +.nav-links a::after { + content: ''; + position: absolute; + width: 0; + height: 2px; + bottom: 0; + left: 0; + background-color: var(--primary); + transition: width 0.3s ease; +} + +.nav-links a:hover, +.nav-links a.active { + color: var(--primary); +} + +.nav-links a:hover::after, +.nav-links a.active::after { + width: 100%; +} + +/* Event Cards */ +.event-card { + background: var(--card-bg); + border-radius: 0.75rem; + overflow: hidden; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); + transition: transform 0.3s ease, box-shadow 0.3s ease; +} + +.event-card:hover { + transform: translateY(-4px); + box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); +} + +.event-image { + width: 100%; + height: 200px; + object-fit: cover; +} + +.event-content { + padding: 1.5rem; +} + +.event-date { + display: inline-block; + background: var(--primary); + color: white; + padding: 0.25rem 0.75rem; + border-radius: 9999px; + font-size: 0.875rem; + font-weight: 500; + margin-bottom: 1rem; +} + +.event-title { + font-size: 1.25rem; + font-weight: 700; + color: var(--text); + margin-bottom: 0.75rem; +} + +.event-description { + color: var(--text-light); + font-size: 0.9375rem; + line-height: 1.5; + margin-bottom: 1.25rem; + + overflow: hidden; +} + +.event-actions { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 1.5rem; +} + +/* Buttons */ +.btn { + padding: 0.5rem 1.25rem; + border-radius: 0.5rem; + font-weight: 500; + transition: all 0.2s ease; + cursor: pointer; + border: none; + outline: none; +} + +.btn-primary { + background: var(--primary); + color: white; +} + +.btn-primary:hover { + background: var(--primary-hover); +} + +.btn-outline { + background: transparent; + border: 1px solid var(--border); + color: var(--text); +} + +.btn-outline:hover { + background: #f3f4f6; +} + +/* Modal */ +.modal { + display: none; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + z-index: 1000; + overflow-y: auto; + padding: 2rem 1rem; +} + +.modal-content { + background: white; + border-radius: 0.75rem; + max-width: 32rem; + width: 100%; + margin: 0 auto; + box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); + animation: modalFadeIn 0.3s ease-out; +} + +@keyframes modalFadeIn { + from { + opacity: 0; + transform: translateY(-20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* Utility Classes */ +.hidden { + display: none !important; +} + +.flex { + display: flex; +} + +.items-center { + align-items: center; +} + +.justify-between { + justify-content: space-between; +} + +/* Responsive */ +@media (max-width: 768px) { + .event-actions { + flex-direction: column; + gap: 0.75rem; + } + + .event-actions .btn { + width: 100%; + text-align: center; + } + + .modal-content { + margin: 1rem; + } +} \ No newline at end of file diff --git a/Web/public/Event/events.html b/Web/public/Event/events.html new file mode 100644 index 0000000..d5afec0 --- /dev/null +++ b/Web/public/Event/events.html @@ -0,0 +1,139 @@ + + + + + + EVENTS - DEVHIVE + + + + + + + + + + +
+ +
+

Our Events

+

Join us for exciting workshops, hackathons, and networking opportunities

+
+ + +
+
+ + + +
+
+ + +
+

Currently Running

+
+ +
+
+ + + + + + +
+ + + + + + + \ No newline at end of file diff --git a/Web/public/Event/events.js b/Web/public/Event/events.js new file mode 100644 index 0000000..44f60ac --- /dev/null +++ b/Web/public/Event/events.js @@ -0,0 +1,283 @@ +// Event Management System + +// Sample events data (in a real app, this would come from a backend) +const events = [ + { + id: 1, + title: 'Web Development Workshop', + date: '2025-01-15', + time: '10:00', + description: 'Learn modern web development with React, Node.js, and MongoDB. Build a full-stack application from scratch.', + image: 'https://images.unsplash.com/photo-1461749280684-dccba630e2f6?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80', + status: 'upcoming' + }, + { + id: 2, + title: 'Hack The Hive 2.0', + date: '2025-01-08', + time: '09:00', + description: 'Annual 24-hour coding competition where developers compete to build innovative projects.', + image: 'https://images.unsplash.com/photo-1551434678-e076c223a692?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80', + status: 'ongoing' + }, + { + id: 3, + title: 'AI/ML Bootcamp', + date: '2024-12-20', + time: '14:00', + description: 'Introduction to machine learning and artificial intelligence with hands-on projects.', + image: 'https://images.unsplash.com/photo-1555949963-ff9fe0c870eb?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80', + status: 'previous' + }, + { + id: 4, + title: 'Mobile App Development', + date: '2025-01-20', + time: '11:00', + description: 'Learn to build cross-platform mobile applications using React Native.', + image: 'https://images.unsplash.com/photo-1512941937309-5f597a2fcc2a?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80', + status: 'upcoming' + }, + { + id: 5, + title: 'Data Science Workshop', + date: '2024-12-10', + time: '15:00', + description: 'Explore data analysis, visualization, and statistical modeling with Python.', + image: 'https://images.unsplash.com/photo-1551288049-bebda4e38f71?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80', + status: 'previous' + } +]; + +// Initialize page +function init() { + renderEvents(); + addEventListeners(); +} + +// Add event listeners +function addEventListeners() { + // Tab switching + const tabBtns = document.querySelectorAll('.tab-btn'); + tabBtns.forEach(btn => { + btn.addEventListener('click', () => { + // Remove active class from all tabs and contents + tabBtns.forEach(t => { + t.classList.remove('bg-purple-600', 'text-white'); + t.classList.add('text-gray-300'); + }); + + // Add active class to clicked tab + btn.classList.remove('text-gray-300'); + btn.classList.add('bg-purple-600', 'text-white'); + + // Show corresponding content + const tabName = btn.dataset.tab; + document.querySelectorAll('.tab-content').forEach(content => { + content.classList.add('hidden'); + }); + document.getElementById(tabName).classList.remove('hidden'); + }); + }); + + // Registration form submission + const registrationForm = document.getElementById('registrationForm'); + if (registrationForm) { + registrationForm.addEventListener('submit', handleRegistration); + } +} + +// Render events by category +function renderEvents() { + const ongoingEvents = events.filter(event => event.status === 'ongoing'); + const upcomingEvents = events.filter(event => event.status === 'upcoming'); + const previousEvents = events.filter(event => event.status === 'previous'); + + renderEventCategory('ongoingEvents', ongoingEvents, 'ongoing'); + renderEventCategory('upcomingEvents', upcomingEvents, 'upcoming'); + renderEventCategory('previousEvents', previousEvents, 'previous'); +} + +// Render events in a specific category +function renderEventCategory(containerId, categoryEvents, status) { + const container = document.getElementById(containerId); + if (!container) return; + + container.innerHTML = ''; + + if (categoryEvents.length === 0) { + container.innerHTML = ` +
+
+ + No ${status} events found +
+
+ `; + return; + } + + categoryEvents.forEach(event => { + const eventCard = createEventCard(event, status); + container.appendChild(eventCard); + }); +} + +// Create event card element +function createEventCard(event, status) { + const eventDate = new Date(event.date); + const formattedDate = eventDate.toLocaleDateString('en-US', { + year: 'numeric', + month: 'short', + day: 'numeric' + }); + + const card = document.createElement('div'); + card.className = 'bg-gray-800 rounded-xl overflow-hidden shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1'; + + const statusBadge = status === 'ongoing' + ? 'Ongoing' + : status === 'upcoming' + ? 'Upcoming' + : 'Completed'; + + card.innerHTML = ` +
+ ${event.title} +
+ ${statusBadge} +
+
+
+
+ + ${formattedDate} + + + ${event.time} + +
+

${event.title}

+

${event.description}

+
+
+ ${Math.floor(Math.random() * 50) + 10} registered + ${status === 'previous' ? 'Offline' : 'Online'} +
+ ${status !== 'previous' ? ` + + ` : ` + + `} +
+
+ `; + + return card; +} + +// Open registration modal +function openRegistrationModal(eventTitle) { + const modal = document.getElementById('registrationModal'); + const titleElement = document.getElementById('eventTitle'); + + if (modal && titleElement) { + titleElement.textContent = eventTitle; + modal.classList.remove('hidden'); + modal.classList.add('flex'); + } +} + +// Close modal +function closeModal(modalId) { + const modal = document.getElementById(modalId); + if (modal) { + modal.classList.add('hidden'); + modal.classList.remove('flex'); + + // Reset form if it's registration form + if (modalId === 'registrationModal') { + const form = document.getElementById('registrationForm'); + if (form) { + form.reset(); + } + } + } +} + +// Handle registration form submission +function handleRegistration(e) { + e.preventDefault(); + + const formData = new FormData(e.target); + const registration = { + eventTitle: document.getElementById('eventTitle').textContent, + fullName: e.target[0].value, + email: e.target[1].value, + phone: e.target[2].value, + college: e.target[3].value, + year: e.target[4].value, + teamMembers: e.target[5].value, + comments: e.target[6].value, + timestamp: new Date().toISOString() + }; + + // In a real app, you would send this data to your backend + console.log('Registration submitted:', registration); + + // Store in localStorage for demo purposes + let registrations = JSON.parse(localStorage.getItem('eventRegistrations') || '[]'); + registrations.push(registration); + localStorage.setItem('eventRegistrations', JSON.stringify(registrations)); + + // Close modal and reset form + closeModal('registrationModal'); + e.target.reset(); + + // Show success message + showNotification('Registration submitted successfully! We will contact you soon.', 'success'); +} + +// Show notification +function showNotification(message, type = 'info') { + const notification = document.createElement('div'); + notification.className = `fixed top-4 right-4 z-50 p-4 rounded-lg shadow-lg transform transition-all duration-300 ${ + type === 'success' ? 'bg-green-500' : 'bg-blue-500' + } text-white`; + notification.innerHTML = ` +
+ + ${message} +
+ `; + + document.body.appendChild(notification); + + // Animate in + setTimeout(() => { + notification.style.transform = 'translateX(0)'; + }, 100); + + // Remove after 3 seconds + setTimeout(() => { + notification.style.transform = 'translateX(100%)'; + setTimeout(() => { + document.body.removeChild(notification); + }, 300); + }, 3000); +} + +// Close modals when clicking outside +window.addEventListener('click', (e) => { + if (e.target.id === 'registrationModal') { + closeModal('registrationModal'); + } +}); + +// Initialize page when DOM is loaded +document.addEventListener('DOMContentLoaded', init); diff --git a/Web/public/Gallery/gallary.css b/Web/public/Gallery/gallary.css new file mode 100644 index 0000000..ea154bb --- /dev/null +++ b/Web/public/Gallery/gallary.css @@ -0,0 +1,324 @@ +body { + margin: 0; + padding: 0; + min-height: 100vh; + overflow-x: hidden; + position: relative; + background: #000000; + width: 100%; + height: 100%; +} +/* From Uiverse.io by SelfMadeSystem */ +/* +More comprehensive version at shenanigans.shoghisimon.ca/collection/css-rain-bg/ + */ + + .container::after { + content: ""; + position: absolute; + inset: 0; + z-index: 1; + backdrop-filter: blur(1em) brightness(6); + background-image: radial-gradient( + circle at 50% 50%, + #0000 0, + #0000 2px, + hsl(0 0 4%) 2px + ); + background-size: 8px 8px; + } + + .container { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + --c: #09f; + background-color: #000; + background-image: radial-gradient(4px 100px at 0px 235px, var(--c), #0000), + radial-gradient(4px 100px at 300px 235px, var(--c), #0000), + radial-gradient(1.5px 1.5px at 150px 117.5px, var(--c) 100%, #0000 150%), + radial-gradient(4px 100px at 0px 252px, var(--c), #0000), + radial-gradient(4px 100px at 300px 252px, var(--c), #0000), + radial-gradient(1.5px 1.5px at 150px 126px, var(--c) 100%, #0000 150%), + radial-gradient(4px 100px at 0px 150px, var(--c), #0000), + radial-gradient(4px 100px at 300px 150px, var(--c), #0000), + radial-gradient(1.5px 1.5px at 150px 75px, var(--c) 100%, #0000 150%), + radial-gradient(4px 100px at 0px 253px, var(--c), #0000), + radial-gradient(4px 100px at 300px 253px, var(--c), #0000), + radial-gradient(1.5px 1.5px at 150px 126.5px, var(--c) 100%, #0000 150%), + radial-gradient(4px 100px at 0px 204px, var(--c), #0000), + radial-gradient(4px 100px at 300px 204px, var(--c), #0000), + radial-gradient(1.5px 1.5px at 150px 102px, var(--c) 100%, #0000 150%), + radial-gradient(4px 100px at 0px 134px, var(--c), #0000), + radial-gradient(4px 100px at 300px 134px, var(--c), #0000), + radial-gradient(1.5px 1.5px at 150px 67px, var(--c) 100%, #0000 150%), + radial-gradient(4px 100px at 0px 179px, var(--c), #0000), + radial-gradient(4px 100px at 300px 179px, var(--c), #0000), + radial-gradient(1.5px 1.5px at 150px 89.5px, var(--c) 100%, #0000 150%), + radial-gradient(4px 100px at 0px 299px, var(--c), #0000), + radial-gradient(4px 100px at 300px 299px, var(--c), #0000), + radial-gradient(1.5px 1.5px at 150px 149.5px, var(--c) 100%, #0000 150%), + radial-gradient(4px 100px at 0px 215px, var(--c), #0000), + radial-gradient(4px 100px at 300px 215px, var(--c), #0000), + radial-gradient(1.5px 1.5px at 150px 107.5px, var(--c) 100%, #0000 150%), + radial-gradient(4px 100px at 0px 281px, var(--c), #0000), + radial-gradient(4px 100px at 300px 281px, var(--c), #0000), + radial-gradient(1.5px 1.5px at 150px 140.5px, var(--c) 100%, #0000 150%), + radial-gradient(4px 100px at 0px 158px, var(--c), #0000), + radial-gradient(4px 100px at 300px 158px, var(--c), #0000), + radial-gradient(1.5px 1.5px at 150px 79px, var(--c) 100%, #0000 150%), + radial-gradient(4px 100px at 0px 210px, var(--c), #0000), + radial-gradient(4px 100px at 300px 210px, var(--c), #0000), + radial-gradient(1.5px 1.5px at 150px 105px, var(--c) 100%, #0000 150%); + background-size: + 300px 235px, + 300px 235px, + 300px 235px, + 300px 252px, + 300px 252px, + 300px 252px, + 300px 150px, + 300px 150px, + 300px 150px, + 300px 253px, + 300px 253px, + 300px 253px, + 300px 204px, + 300px 204px, + 300px 204px, + 300px 134px, + 300px 134px, + 300px 134px, + 300px 179px, + 300px 179px, + 300px 179px, + 300px 299px, + 300px 299px, + 300px 299px, + 300px 215px, + 300px 215px, + 300px 215px, + 300px 281px, + 300px 281px, + 300px 281px, + 300px 158px, + 300px 158px, + 300px 158px, + 300px 210px, + 300px 210px, + 300px 210px; + animation: hi 150s linear infinite; + } + + @keyframes hi { + 0% { + background-position: + 0px 220px, + 3px 220px, + 151.5px 337.5px, + 25px 24px, + 28px 24px, + 176.5px 150px, + 50px 16px, + 53px 16px, + 201.5px 91px, + 75px 224px, + 78px 224px, + 226.5px 350.5px, + 100px 19px, + 103px 19px, + 251.5px 121px, + 125px 120px, + 128px 120px, + 276.5px 187px, + 150px 31px, + 153px 31px, + 301.5px 120.5px, + 175px 235px, + 178px 235px, + 326.5px 384.5px, + 200px 121px, + 203px 121px, + 351.5px 228.5px, + 225px 224px, + 228px 224px, + 376.5px 364.5px, + 250px 26px, + 253px 26px, + 401.5px 105px, + 275px 75px, + 278px 75px, + 426.5px 180px; + } + + to { + background-position: + 0px 6800px, + 3px 6800px, + 151.5px 6917.5px, + 25px 13632px, + 28px 13632px, + 176.5px 13758px, + 50px 5416px, + 53px 5416px, + 201.5px 5491px, + 75px 17175px, + 78px 17175px, + 226.5px 17301.5px, + 100px 5119px, + 103px 5119px, + 251.5px 5221px, + 125px 8428px, + 128px 8428px, + 276.5px 8495px, + 150px 9876px, + 153px 9876px, + 301.5px 9965.5px, + 175px 13391px, + 178px 13391px, + 326.5px 13540.5px, + 200px 14741px, + 203px 14741px, + 351.5px 14848.5px, + 225px 18770px, + 228px 18770px, + 376.5px 18910.5px, + 250px 5082px, + 253px 5082px, + 401.5px 5161px, + 275px 6375px, + 278px 6375px, + 426.5px 6480px; + } + } + + + /* Navbar Styles */ + .navbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 2rem; + background: rgba(0, 0, 0, 0.8); + backdrop-filter: blur(10px); + -webkit-backdrop-filter: blur(10px); + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 50; +} + +.logo img { + width: 50px; + height: 50px; + transition: transform 0.3s ease; +} + +.logo img:hover { + transform: scale(1.1); +} + +.nav-links ul { + display: flex; + list-style: none; + margin: 0; + padding: 0; + gap: 2rem; +} + +.nav-links a { + color: #fff; + text-decoration: none; + font-weight: 500; + font-size: 1rem; + position: relative; + padding: 0.5rem 0; + transition: color 0.3s ease; +} + +.nav-links a::after { + content: ''; + position: absolute; + width: 0; + height: 2px; + bottom: 0; + left: 0; + background-color: #8a5cf63d; + transition: width 0.3s ease; +} + +.nav-links a:hover { + color: #8b5cf6; +} + +.nav-links a:hover::after { + width: 100%; +} + + /* Content Styles */ + .content { + position: relative; + z-index: 2; + padding: 100px 20px 40px; + max-width: 1400px; + margin: 0 auto; + box-sizing: border-box; + min-height: 100vh; + } + *, + *::before, + *::after { + box-sizing: inherit; + } + .list { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 20px; + padding: 0; + width: 100%; + } + .hedding { + color: #fff; + font-family: 'Lucida Sans', sans-serif; + text-align: center; + padding: 40px 0 20px; + position: relative; + margin-bottom: 20px; + } + .hedding h1 { + display: inline-block; + padding-bottom: 10px; + position: relative; + font-size: 2.5em; + text-shadow: 0 0 10px rgba(0, 238, 255, 0.5); + } + .hedding h1:after { + content: ''; + position: absolute; + width: 60%; + height: 3px; + bottom: 0; + left: 50%; + transform: translateX(-50%); + background: linear-gradient(90deg, transparent, rgb(51, 1, 1), transparent); + } + .list img { + width: 100%; + height: 280px; + object-fit: cover; + border-radius: 8px; + transition: all 0.3s ease; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); + cursor: pointer; + background-color: #1a1a1a00; + border: 1px solid #333; + } + .list img:hover { + transform: scale(1.03); + box-shadow: 0 8px 25px rgba(160, 118, 238, 0.295); + border-color: rgb(21, 0, 78); + } diff --git a/Web/public/Gallery/gallary.html b/Web/public/Gallery/gallary.html new file mode 100644 index 0000000..bfa1b87 --- /dev/null +++ b/Web/public/Gallery/gallary.html @@ -0,0 +1,69 @@ + + + + + + GALLARY - DEVHIVE + + + + + + + + +
+
+

EVENT 1

+
+
+ + + + + + + + + + + + + + +
+

EVENT 2

+
+
+ + + + + + + + + + + + + + +
+ +
+ + \ No newline at end of file diff --git a/Web/public/Gallery/gallary.js b/Web/public/Gallery/gallary.js new file mode 100644 index 0000000..e69de29 diff --git a/Web/public/Profile/profile.html b/Web/public/Profile/profile.html new file mode 100644 index 0000000..87963f7 --- /dev/null +++ b/Web/public/Profile/profile.html @@ -0,0 +1,264 @@ + + + + + + My Profile - DevHive + + + + + + + + + + +
+ +
+
+
+
+ Profile +
+
+
+ +
+
+
+
+
+

name

+

@username

+

Expertise

+
+
+
Joined
+
Date
+
+
+
+
+ + +
+ +
+ +
+

+ + About +

+

+ Bio +

+
+ + +
+

+ + Skills & Expertise +

+
+ + + + + + +
+
+ + +
+

+ + Recent Activity +

+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+ + +
+ +
+

+ + Contact +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+

+ + Badges +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+

+ + Projects +

+ +
+
+
+

+

+
+ +
+
+
+

+

+
+ + +
+
+
+
+
+
+
+ + + + diff --git a/Web/public/about/about.css b/Web/public/about/about.css new file mode 100644 index 0000000..85bf0c1 --- /dev/null +++ b/Web/public/about/about.css @@ -0,0 +1,240 @@ +/* Animations */ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.animate-fadeInUp { + animation: fadeInUp 0.6s ease-out forwards; +} + +/* Team Card Hover Effects */ +.team-card { + position: relative; + z-index: 1; + transition: transform 0.3s ease, box-shadow 0.3s ease; + transform-style: preserve-3d; + will-change: transform, box-shadow; +} + +.team-card::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient(135deg, rgba(139, 92, 246, 0.1) 0%, rgba(99, 102, 241, 0.1) 100%); + border-radius: 1rem; + z-index: -1; + opacity: 0; + transition: opacity 0.3s ease; +} + +.team-card:hover::before { + opacity: 1; +} + +.team-card:hover { + transform: translateY(-5px) scale(1.02); + box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); +} + +/* Smooth scrolling for anchor links */ +html { + scroll-behavior: smooth; +} + +/* Base Styles */ +body { + margin: 0; + padding: 0; + min-height: 100vh; + overflow-x: hidden; + position: relative; + background: #000000; + width: 100%; + height: 100%; + font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + color: #fff; + line-height: 1.6; +} + +/* Navbar Styles */ +.navbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 2rem; + background: rgba(0, 0, 0, 0.8); + backdrop-filter: blur(10px); + -webkit-backdrop-filter: blur(10px); + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 50; +} + +.logo img { + width: 50px; + height: 50px; + transition: transform 0.3s ease; +} + +.logo img:hover { + transform: scale(1.1); +} + +.nav-links ul { + display: flex; + list-style: none; + margin: 0; + padding: 0; + gap: 2rem; +} + +.nav-links a { + color: #fff; + text-decoration: none; + font-weight: 500; + font-size: 1rem; + position: relative; + padding: 0.5rem 0; + transition: color 0.3s ease; +} + +.nav-links a::after { + content: ''; + position: absolute; + width: 0; + height: 2px; + bottom: 0; + left: 0; + background-color: #8b5cf6; + transition: width 0.3s ease; +} + +.nav-links a:hover { + color: #8b5cf6; +} + +.nav-links a:hover::after { + width: 100%; +} + +/* Main Content */ +.min-h-screen { + padding-top: 80px; +} + +/* Footer Styles */ +footer { + background-color: #111827; + padding: 4rem 2rem 2rem; + margin-top: 4rem; + position: relative; + bottom: 0; + width: 100%; +} + +.footer-content { + max-width: 1200px; + margin: 0 auto; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 2rem; +} + +.footer-section h3 { + color: #8b5cf6; + margin-bottom: 1.5rem; + font-size: 1.25rem; + font-weight: 600; +} + +.footer-section ul { + list-style: none; + + display: flex; +} + +.footer-section ul li { + margin-bottom: 0.75rem; + padding: 5px; + margin: 5px; +} + +.footer-section a { + color: #9ca3af; + text-decoration: none; + transition: color 0.3s ease; +} +.footer-section a i { + font-size: 24px; + margin-right: 10px; +} +.footer-section a:hover { + color: #8b5cf6; +} + +/* Responsive Design */ +@media (max-width: 768px) { + .navbar { + padding: 1rem; + } + + .nav-links ul { + gap: 1rem; + } + + .footer-content { + grid-template-columns: 1fr; + text-align: center; + } + + .footer-section { + margin-bottom: 2rem; + } +} + +/* Animations */ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.animate-fadeInUp { + animation: fadeInUp 0.6s ease-out forwards; +} + +/* Custom Scrollbar */ +::-webkit-scrollbar { + width: 8px; +} + +::-webkit-scrollbar-track { + background: #111827; +} + +::-webkit-scrollbar-thumb { + background: #4b5563; + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: #6b7280; +} diff --git a/Web/public/about/about.html b/Web/public/about/about.html new file mode 100644 index 0000000..a99516c --- /dev/null +++ b/Web/public/about/about.html @@ -0,0 +1,155 @@ + + + + + + About - DEVHIVE + + + + + + + + + + +
+ +
+

About DEVHIVE

+

Empowering developers through collaboration, innovation, and continuous learning

+
+ + +
+
+
+ DEVHIVE Logo +
+
+

Our Mission

+

At DEVHIVE, we're dedicated to fostering a vibrant community of developers who are passionate about technology and innovation. Our mission is to provide a platform for learning, collaboration, and growth in the ever-evolving world of software development.

+

Whether you're a beginner looking to start your coding journey or an experienced developer seeking to expand your skills, DEVHIVE is your go-to community for all things tech.

+
+
+
+ + +
+

What We Do

+
+
+
👨‍💻
+

Coding Workshops

+

Hands-on workshops covering the latest technologies and programming languages.

+
+
+
🤝
+

Networking

+

Connect with like-minded developers and industry professionals.

+
+
+
🚀
+

Hackathons

+

Compete in exciting hackathons to build innovative projects.

+
+
+
+ +
+

OUR CORE TEAM

+
+ +
+
+ 💻 +
+

Tech Team

+

Our tech wizards who bring ideas to life with cutting-edge solutions and innovative code.

+
+ + +
+
+ 🎨 +
+

Design Team

+

Creative minds crafting beautiful and intuitive user experiences that captivate and engage.

+
+ + +
+
+ 📅 +
+

Event Management

+

Master organizers who bring our community together through unforgettable events and workshops.

+
+ + +
+
+ 📢 +
+

PR Team

+

Our communication experts who build bridges between the community and our initiatives.

+
+
+
+ + +
+

Join Our Community

+

Become part of a growing community of passionate developers. Let's learn, build, and innovate together!

+ Join Now +
+
+
+ +
+ + \ No newline at end of file diff --git a/Web/public/about/about.js b/Web/public/about/about.js new file mode 100644 index 0000000..7a7cd36 --- /dev/null +++ b/Web/public/about/about.js @@ -0,0 +1,77 @@ +document.addEventListener('DOMContentLoaded', () => { + // Smooth scroll for anchor links + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function (e) { + e.preventDefault(); + const targetId = this.getAttribute('href'); + if (targetId === '#') return; + + const targetElement = document.querySelector(targetId); + if (targetElement) { + window.scrollTo({ + top: targetElement.offsetTop - 80, // Adjust for fixed header + behavior: 'smooth' + }); + } + }); + }); + + // Intersection Observer for scroll animations + const observerOptions = { + threshold: 0.1, + rootMargin: '0px 0px -50px 0px' + }; + + const observer = new IntersectionObserver((entries, observer) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + // Add animation class when element is in view + if (entry.target.classList.contains('fade-in')) { + entry.target.classList.add('animate-fadeInUp'); + } + + // For team cards - stagger the animation + if (entry.target.classList.contains('team-card')) { + const delay = entry.target.dataset.delay || '0'; + entry.target.style.animationDelay = `${delay}ms`; + entry.target.classList.add('animate-fadeInUp'); + } + + // Unobserve after animation is triggered + observer.unobserve(entry.target); + } + }); + }, observerOptions); + + // Observe elements with animation classes + document.querySelectorAll('.fade-in, .team-card').forEach(el => { + observer.observe(el); + }); + + // Add hover effect for team cards + const teamCards = document.querySelectorAll('.team-card'); + teamCards.forEach((card, index) => { + // Set staggered delay for initial animation + card.style.setProperty('--delay', `${index * 100}ms`); + + // Tilt effect on mouse move + card.addEventListener('mousemove', (e) => { + const rect = card.getBoundingClientRect(); + const x = e.clientX - rect.left; + const y = e.clientY - rect.top; + const centerX = rect.width / 2; + const centerY = rect.height / 2; + const angleX = (y - centerY) / 20; + const angleY = (centerX - x) / 20; + + card.style.transform = `perspective(1000px) rotateX(${angleX}deg) rotateY(${angleY}deg) scale(1.05)`; + card.style.transition = 'transform 0.1s ease-out'; + }); + + // Reset on mouse leave + card.addEventListener('mouseleave', () => { + card.style.transform = 'perspective(1000px) rotateX(0) rotateY(0) scale(1)'; + card.style.transition = 'transform 0.5s ease-out'; + }); + }); +}); \ No newline at end of file diff --git a/Web/public/landingpg.js b/Web/public/landingpg.js new file mode 100644 index 0000000..7d45424 --- /dev/null +++ b/Web/public/landingpg.js @@ -0,0 +1,48 @@ + // Ensure video plays on mobile devices + document.addEventListener('DOMContentLoaded', function() { + const video = document.getElementById('chipsVideo'); + if (video) { + video.play().catch(error => { + console.log('Video autoplay failed:', error); + }); + } + + // Dropdown functionality + const profileDropdown = document.getElementById('profileDropdown'); + const dropdownMenu = document.getElementById('dropdownMenu'); + let hideTimeout; + + function showDropdown() { + clearTimeout(hideTimeout); + dropdownMenu.classList.remove('hidden'); + } + + function hideDropdown() { + // Add a small delay before hiding to allow moving to the dropdown + hideTimeout = setTimeout(() => { + if (!profileDropdown.matches(':hover') && !dropdownMenu.matches(':hover')) { + dropdownMenu.classList.add('hidden'); + } + }, 300); + } + + // Toggle dropdown on click for mobile + document.getElementById('profileButton').addEventListener('click', function(e) { + e.stopPropagation(); + dropdownMenu.classList.toggle('hidden'); + }); + + // Show/hide on hover for desktop + profileDropdown.addEventListener('mouseenter', showDropdown); + dropdownMenu.addEventListener('mouseenter', showDropdown); + + profileDropdown.addEventListener('mouseleave', hideDropdown); + dropdownMenu.addEventListener('mouseleave', hideDropdown); + + // Close dropdown when clicking outside + document.addEventListener('click', function(e) { + if (!profileDropdown.contains(e.target)) { + dropdownMenu.classList.add('hidden'); + } + }); +}); \ No newline at end of file diff --git a/Web/public/landpg.css b/Web/public/landpg.css new file mode 100644 index 0000000..ddf4c8b --- /dev/null +++ b/Web/public/landpg.css @@ -0,0 +1,124 @@ +.navbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 2rem; + background: rgba(0, 0, 0, 0); + backdrop-filter: blur(10px); + -webkit-backdrop-filter: blur(10px); + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 50; +} + +.logo img { + width: 50px; + height: 50px; + transition: transform 0.3s ease; +} + +.logo img:hover { + transform: scale(1.1); +} + +.nav-links ul { + display: flex; + list-style: none; + margin: 0; + padding: 0; + gap: 2rem; +} + + + +.nav-links a { + color: #fff; + text-decoration: none; + font-weight: 500; + font-size: 1rem; + position: relative; + padding: 0.5rem 0; + transition: all 0.3s ease; +} + +.nav-links a::after { + content: ''; + position: absolute; + width: 0; + height: 2px; + bottom: 0; + left: 0; + background-color: #8b5cf6; + transition: all 0.3s ease; +} + +.nav-links a:hover { + color: linear-gradient(to right, #8b5cf6, #ba97f5); +} + +.nav-links a:hover::after { + width: 100%; +} +.card{ + width: 600px; + height: 600px; + justify-content: center; + align-items: center; + +} + +.profile-dropdown { + position: relative; + display: inline-block; +} +.profile-dropdown button { + background: none; + border: none; + cursor: pointer; + padding: 0; + outline: none; +} +.profile-dropdown img { + width: 32px; + height: 32px; + border-radius: 50%; + border: 2px solid #8b5cf6; + display: block; +} +.dropdown-menu { + position: absolute; + right: 0; + margin-top: 8px; + width: 192px; + background-color: #1f2937; + border-radius: 6px; + box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); + padding: 4px 0; + z-index: 50; + display: none; +} +.profile-dropdown:hover .dropdown-menu, +.dropdown-menu:hover { + display: block; + z-index: 50; +} +.dropdown-menu a { + display: block; + padding: 8px 16px; + font-size: 14px; + color: #e5e7eb; + text-decoration: none; + transition: all 0.2s; +} +.dropdown-menu a:hover { + background-color: #7c3aed; +} +.dropdown-menu a:last-child { + color: #f87171; +} +.dropdown-menu a:last-child:hover { + background-color: #7f1d1d; +} \ No newline at end of file diff --git a/Web/public/loginsugnup/firebase-config.js b/Web/public/loginsugnup/firebase-config.js new file mode 100644 index 0000000..e844f90 --- /dev/null +++ b/Web/public/loginsugnup/firebase-config.js @@ -0,0 +1,116 @@ +// Import the functions you need from the SDKs you need +import { initializeApp } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-app.js"; +import { + getAuth, + GoogleAuthProvider, + TwitterAuthProvider, + GithubAuthProvider, + RecaptchaVerifier, + signInWithPhoneNumber, + signInWithPopup, + signInWithEmailAndPassword, + createUserWithEmailAndPassword, + sendPasswordResetEmail +} from "https://www.gstatic.com/firebasejs/9.22.0/firebase-auth.js"; + +// Your web app's Firebase configuration +const firebaseConfig = { + apiKey: "AIzaSyBSAdNAI17yjpmcymXJslT6wzrZN-S-Rls", + authDomain: "vhive-eec3e.firebaseapp.com", + projectId: "vhive-eec3e", + storageBucket: "vhive-eec3e.firebasestorage.app", + messagingSenderId: "795962423512", + appId: "1:795962423512:web:904568fb92f6003165bfad", + measurementId: "G-FZQKJ7N8NT" +}; + +// Initialize Firebase +const app = initializeApp(firebaseConfig); +const auth = getAuth(app); + +// Initialize providers +const googleProvider = new GoogleAuthProvider(); +const twitterProvider = new TwitterAuthProvider(); +const githubProvider = new GithubAuthProvider(); + +// Initialize reCAPTCHA verifier for phone auth +let appVerifier = null; + +// Function to handle authentication errors +function handleAuthError(error) { + let errorMessage = error.message; + if (error.code === 'auth/email-already-in-use') { + errorMessage = 'Email is already in use by another account.'; + } else if (error.code === 'auth/invalid-phone-number') { + errorMessage = 'Please enter a valid phone number with country code (e.g., +1234567890)'; + } else if (error.code === 'auth/invalid-verification-code') { + errorMessage = 'Invalid verification code. Please try again.'; + } else if (error.code === 'auth/code-expired') { + errorMessage = 'The verification code has expired. Please request a new one.'; + } else if (error.code === 'auth/invalid-email') { + errorMessage = 'Please enter a valid email address.'; + } else if (error.code === 'auth/weak-password') { + errorMessage = 'Password should be at least 6 characters.'; + } else if (error.code === 'auth/user-not-found' || error.code === 'auth/wrong-password') { + errorMessage = 'Invalid email or password.'; + } else if (error.code === 'auth/account-exists-with-different-credential') { + errorMessage = 'An account already exists with the same email but different sign-in credentials.'; + } else if (error.code === 'auth/popup-closed-by-user') { + // User closed the popup, no need to show an error + return; + } + + // Show error message to user + const errorElement = document.getElementById('error-message'); + if (errorElement) { + errorElement.textContent = errorMessage; + errorElement.style.display = 'block'; + + // Hide error after 5 seconds + setTimeout(() => { + errorElement.style.display = 'none'; + }, 5000); + } + + console.error('Authentication error:', error); +} + +// Function to initialize reCAPTCHA verifier +function initializeRecaptcha(containerId) { + if (!appVerifier) { + appVerifier = new RecaptchaVerifier(containerId, { + 'size': 'invisible', + 'callback': () => { + // reCAPTCHA solved, allow signInWithPhoneNumber. + // This will be handled in the phone auth flow + } + }, auth); + } + return appVerifier; +} + +// Function to handle phone number sign in +async function signInWithPhone(phoneNumber, appVerifier) { + try { + const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, appVerifier); + return confirmationResult; + } catch (error) { + handleAuthError(error); + throw error; + } +} + +// Export auth functions and providers +export { + auth, + googleProvider, + twitterProvider, + githubProvider, + signInWithPopup, + signInWithEmailAndPassword, + createUserWithEmailAndPassword, + sendPasswordResetEmail, + initializeRecaptcha, + signInWithPhone, + handleAuthError +}; diff --git a/Web/public/loginsugnup/login.css b/Web/public/loginsugnup/login.css new file mode 100644 index 0000000..d43990e --- /dev/null +++ b/Web/public/loginsugnup/login.css @@ -0,0 +1,149 @@ +body{ + background-color: rgb(0, 0, 0); + color: rgba(243, 244, 246, 1); + font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; +} +.backgroundimage { + background-image: url('/Frontend/assets/images/DEVHIVE.png'); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: 0.9; + z-index: -1; +} +.form-container { + width: 420px; + border-radius: 0.75rem; + background-color: rgba(17, 24, 39, 0.623); + padding: 2rem; + color: rgba(243, 244, 246, 1); + backdrop-filter: blur(10px); + -webkit-backdrop-filter: blur(10px); + border-bottom: 1px solid rgba(255, 255, 255, 0.158); + } + + .title { + text-align: center; + + font-size: 1.5rem; + line-height: 2rem; + font-weight: 700; + } + + .form { + margin-top: 1.5rem; + } + + .input-group { + margin-top: 0.25rem; + font-size: 0.875rem; + line-height: 1.25rem; + } + + .input-group label { + display: block; + color: rgb(250, 250, 250); + margin-bottom: 4px; + } + + .input-group input { + width: 100%; + border-radius: 0.375rem; + border: 1px solid rgba(55, 65, 81, 1); + outline: 0; + background-color: rgba(17, 24, 39, 1); + padding: 0.75rem 1rem; + color: rgba(243, 244, 246, 1); + } + + .input-group input:focus { + border-color: rgba(167, 139, 250); + } + + .forgot { + display: flex; + justify-content: flex-end; + font-size: 0.75rem; + line-height: 1rem; + color: rgba(250, 250, 250, 1); + margin: 8px 0 14px 0; + } + + .forgot a,.signup a { + color: rgba(243, 244, 246, 1); + text-decoration: none; + font-size: 14px; + } + + .forgot a:hover, .signup a:hover { + text-decoration: underline rgba(167, 139, 250, 1); + } + + .sign { + display: block; + width: 100%; + background-color: rgba(167, 139, 250, 1); + padding: 0.75rem; + text-align: center; + color: rgb(255, 255, 255); + border: none; + border-radius: 0.375rem; + font-weight: 600; + transition: all 0.3s ease; + } + + .social-message { + display: flex; + align-items: center; + padding-top: 1rem; + } + + .line { + height: 1px; + flex: 1 1 0%; + background-color: rgba(55, 65, 81, 1); + } + + .social-message .message { + padding-left: 0.75rem; + padding-right: 0.75rem; + font-size: 0.875rem; + line-height: 1.25rem; + color: rgba(250, 250, 250, 1); + } + + .social-icons { + display: flex; + justify-content: center; + } + + .social-icons .icon { + border-radius: 0.125rem; + padding: 0.75rem; + border: none; + background-color: transparent; + margin-left: 8px; + } + + .social-icons .icon svg { + height: 1.25rem; + width: 1.25rem; + fill: #fff; + } + + .signup { + text-align: center; + font-size: 0.75rem; + line-height: 1rem; + color: rgba(250, 250, 250, 1); + } + +.sign:hover { + background-color: rgb(126, 84, 255); + cursor: pointer; +} \ No newline at end of file diff --git a/Web/public/loginsugnup/login.html b/Web/public/loginsugnup/login.html new file mode 100644 index 0000000..722f6ce --- /dev/null +++ b/Web/public/loginsugnup/login.html @@ -0,0 +1,374 @@ + + + + + + Login - DEVHIVE + + + + + + + + + +
+
+
+

Welcome Back

+ + +
+
Email
+
Phone
+
+ + +
+
+ + +
+
+ + + +
+ +
+
+ + +
+
+ +
+ + +
+
+
+ + +
+
+ + + + +
+
+
+ + + + \ No newline at end of file diff --git a/Web/public/loginsugnup/login.js b/Web/public/loginsugnup/login.js new file mode 100644 index 0000000..e69de29 diff --git a/Web/public/loginsugnup/signup.html b/Web/public/loginsugnup/signup.html new file mode 100644 index 0000000..c05bd39 --- /dev/null +++ b/Web/public/loginsugnup/signup.html @@ -0,0 +1,107 @@ + + + + + + Signup - DEVHIVE + + + + + + +
+
+
+

Signup

+
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ + + +
+
+ + + + + + Login - DEVHIVE + + + + + + +
+
+

Login

+
+
+ + +
+
+ + + +
+ +
+ + + +
+
+ + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..9bf8577 --- /dev/null +++ b/index.html @@ -0,0 +1,90 @@ + + + + + + + + + DEVHIVE + + + + + +
+
+
+ C++ +
+
+ DSA +
+
+ C +
+
+ Python +
+
+ JavaScript +
+
+ AI/ML +
+
+ DS +
+
+ + + +
+
+

+ Welcome to
+ + DevHive Club + +

+

+ Where developers gather, learn, and build amazing things together +

+ +
+ +
+

Made with 💖 by DevHive Club

+
+ + + + \ No newline at end of file diff --git a/indexafterlogin.html b/indexafterlogin.html new file mode 100644 index 0000000..6ad10dc --- /dev/null +++ b/indexafterlogin.html @@ -0,0 +1,98 @@ + + + + + + + + + DEVHIVE + + + + + +
+
+
+ C++ +
+
+ DSA +
+
+ C +
+
+ Python +
+
+ JavaScript +
+
+ AI/ML +
+
+ DS +
+
+ + + +
+
+

+ Welcome to
+ + DevHive Club + +

+

+ Where developers gather, learn, and build amazing things together +

+ +
+ +
+

Made with 💖 by DevHive Club

+
+ + + \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..b1187a0 --- /dev/null +++ b/readme.md @@ -0,0 +1,21 @@ + +## 📁 Project Structure + +```devhive-club/ +├── backend/ # Backend code (APIs, server, database) +├── frontend/ # Frontend code (UI, components, pages) +│ ├── public/ # Pages files +│ └── src/ # components and pages +├── assets/ # Images and other static assets +└── README.md # This file +``` + +## 🌳 Branch Structure + +- `main` - Production-ready code +- `frontend` - Frontend code +- `backend` - Backend code + +--- + +Made with ❤️ by the DevHive Club Team diff --git a/readme.txt b/readme.txt deleted file mode 100644 index d7a44c3..0000000 --- a/readme.txt +++ /dev/null @@ -1,13 +0,0 @@ -# 🐝 DevHive Club Website - -Welcome to the official repository of the **DevHive Club**. -This project contains the complete codebase for our club's official website, including both frontend and backend components. - ---- - -## 📁 Project Structure - -devhive-club/ -├── backend/ # Backend code (APIs, server, database) -├── frontend/ # Frontend code (UI, components, pages) -├── assets/ # for Images