0% found this document useful (0 votes)
5 views42 pages

Complete

The document is an HTML template for a web application named 'Rekindle', featuring a dark theme and responsive design. It includes styles for various components such as headers, footers, forms, and sections for home, about, courses, admissions, and contact pages. The document also incorporates React and Babel for dynamic content rendering and user authentication management.

Uploaded by

tobbyzinfinity
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views42 pages

Complete

The document is an HTML template for a web application named 'Rekindle', featuring a dark theme and responsive design. It includes styles for various components such as headers, footers, forms, and sections for home, about, courses, admissions, and contact pages. The document also incorporates React and Babel for dynamic content rendering and user authentication management.

Uploaded by

tobbyzinfinity
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

<!

DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Rekindle - Your School Name</title>

<script crossorigin src="[Link]

<script crossorigin src="[Link]


script>

<script src="[Link]

<style>

/* Global Styles & Dark Theme */

:root {

--bg-primary: #1a1a2e;

--bg-secondary: #0f0f1b;

--text-light: #e0e0e0;

--text-lighter: #f0f0f0;

--accent-red: #e94560;

--accent-purple: #533483;

--accent-blue: #007bff;

--border-color: #33334d;

--header-height: 80px;

--footer-height: 100px;

}
body {

margin: 0;

font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;

background-color: var(--bg-primary);

color: var(--text-light);

display: flex;

flex-direction: column;

min-height: 100vh;

/* Utility Classes */

.container {

max-width: 1200px;

margin: 0 auto;

padding: 20px;

.section-title {

color: var(--accent-red);

text-align: center;

margin-bottom: 40px;

font-size: 2.5em;

text-transform: uppercase;

letter-spacing: 2px;

}
/* Header */

.header {

background-color: var(--bg-secondary);

color: var(--text-lighter);

padding: 20px 0;

box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);

position: sticky;

top: 0;

z-index: 1000;

height: var(--header-height);

display: flex;

align-items: center;

.header-content {

display: flex;

justify-content: space-between;

align-items: center;

padding: 0 20px;

.header-title {

font-size: 2.2em;

font-weight: bold;
color: var(--accent-red);

text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);

.nav-menu {

list-style: none;

margin: 0;

padding: 0;

display: flex;

.nav-item {

margin-left: 30px;

.nav-link {

color: var(--text-light);

text-decoration: none;

font-size: 1.1em;

padding: 10px 15px;

border-radius: 5px;

transition: background-color 0.3s ease, color 0.3s ease;

.nav-link:hover, .[Link] {
background-color: var(--accent-purple);

color: var(--text-lighter);

/* Main Content */

.main-content {

flex-grow: 1;

padding-top: var(--header-height); /* Offset for sticky header */

/* Footer */

.footer {

background-color: var(--bg-secondary);

color: var(--text-light);

padding: 30px 0;

text-align: center;

border-top: 1px solid var(--border-color);

height: var(--footer-height);

display: flex;

align-items: center;

justify-content: center;

margin-top: auto; /* Pushes footer to the bottom */

.footer-content {
font-size: 0.9em;

/* Form Styles (Login/Signup) */

.auth-form-container {

background-color: var(--bg-secondary);

border-radius: 10px;

padding: 40px;

box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5);

max-width: 450px;

margin: 60px auto;

border: 1px solid var(--border-color);

.auth-form h2 {

color: var(--accent-red);

text-align: center;

margin-bottom: 30px;

font-size: 2em;

.form-group {

margin-bottom: 25px;

}
.form-group label {

display: block;

margin-bottom: 8px;

color: var(--text-light);

font-weight: bold;

.form-group input[type="text"],

.form-group input[type="email"],

.form-group input[type="password"] {

width: 100%;

padding: 15px;

border: 1px solid var(--border-color);

border-radius: 5px;

background-color: var(--bg-primary);

color: var(--text-light);

font-size: 1em;

box-sizing: border-box; /* Include padding in width */

.form-group input[type="text"]::placeholder,

.form-group input[type="email"]::placeholder,

.form-group input[type="password"]::placeholder {

color: #888;

}
.form-group input[type="text"]:focus,

.form-group input[type="email"]:focus,

.form-group input[type="password"]:focus {

outline: none;

border-color: var(--accent-blue);

box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.3);

.form-actions {

text-align: center;

margin-top: 30px;

.form-button {

background-color: var(--accent-red);

color: var(--text-lighter);

padding: 15px 30px;

border: none;

border-radius: 5px;

font-size: 1.1em;

cursor: pointer;

transition: background-color 0.3s ease, transform 0.2s ease;

text-transform: uppercase;

letter-spacing: 1px;
}

.form-button:hover {

background-color: #c9354d; /* Darker red */

transform: translateY(-2px);

.toggle-auth-mode {

color: var(--accent-blue);

cursor: pointer;

text-decoration: underline;

margin-top: 20px;

display: block;

text-align: center;

.toggle-auth-mode:hover {

color: #0099ff;

/* Home Page Specifics */

.hero-section {

background: linear-gradient(135deg, var(--bg-primary), var(--bg-secondary));

padding: 80px 20px;

text-align: center;
color: var(--text-lighter);

margin-bottom: 40px;

border-bottom: 1px solid var(--border-color);

.hero-section h1 {

font-size: 3.8em;

margin-bottom: 20px;

color: var(--accent-red);

text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);

.hero-section p {

font-size: 1.4em;

max-width: 800px;

margin: 0 auto 40px auto;

line-height: 1.6;

.cta-button {

background-color: var(--accent-purple);

color: var(--text-lighter);

padding: 18px 40px;

border: none;

border-radius: 8px;
font-size: 1.3em;

cursor: pointer;

transition: background-color 0.3s ease, transform 0.2s ease;

text-decoration: none;

display: inline-block;

text-transform: uppercase;

letter-spacing: 1px;

.cta-button:hover {

background-color: #422a6e;

transform: translateY(-3px);

.features-grid {

display: grid;

grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));

gap: 30px;

padding: 20px;

.feature-item {

background-color: var(--bg-secondary);

border-radius: 10px;

padding: 30px;
text-align: center;

box-shadow: 0 5px 15px rgba(0, 0, 0, 0.4);

border: 1px solid var(--border-color);

transition: transform 0.3s ease, box-shadow 0.3s ease;

.feature-item:hover {

transform: translateY(-5px);

box-shadow: 0 10px 25px rgba(0, 0, 0, 0.6);

.feature-item h3 {

color: var(--accent-red);

margin-bottom: 15px;

font-size: 1.8em;

.feature-item p {

font-size: 1.1em;

line-height: 1.6;

color: var(--text-light);

/* About Us Page Specifics */

.about-section {
padding: 60px 20px;

background-color: var(--bg-primary);

.about-content {

display: flex;

flex-wrap: wrap;

gap: 40px;

align-items: center;

margin-top: 40px;

.about-text {

flex: 2;

min-width: 300px;

.about-text h2 {

color: var(--accent-red);

font-size: 2.5em;

margin-bottom: 20px;

.about-text p {

font-size: 1.15em;
line-height: 1.7;

margin-bottom: 20px;

.about-image {

flex: 1;

min-width: 250px;

text-align: center;

.about-image img {

max-width: 100%;

border-radius: 10px;

box-shadow: 0 5px 15px rgba(0, 0, 0, 0.4);

border: 1px solid var(--border-color);

/* Courses Page Specifics */

.courses-grid {

display: grid;

grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));

gap: 30px;

padding: 20px;

margin-top: 40px;

}
.course-card {

background-color: var(--bg-secondary);

border-radius: 10px;

overflow: hidden;

box-shadow: 0 5px 15px rgba(0, 0, 0, 0.4);

border: 1px solid var(--border-color);

transition: transform 0.3s ease, box-shadow 0.3s ease;

.course-card:hover {

transform: translateY(-5px);

box-shadow: 0 10px 25px rgba(0, 0, 0, 0.6);

.course-card img {

width: 100%;

height: 200px;

object-fit: cover;

border-bottom: 1px solid var(--border-color);

.course-info {

padding: 25px;

}
.course-info h3 {

color: var(--accent-red);

font-size: 1.7em;

margin-bottom: 15px;

.course-info p {

font-size: 1.05em;

line-height: 1.6;

color: var(--text-light);

margin-bottom: 15px;

.course-button {

background-color: var(--accent-blue);

color: var(--text-lighter);

padding: 10px 20px;

border: none;

border-radius: 5px;

font-size: 0.95em;

cursor: pointer;

transition: background-color 0.3s ease;

text-decoration: none;

display: inline-block;
}

.course-button:hover {

background-color: #0056b3;

/* Admissions Page Specifics */

.admissions-section {

padding: 60px 20px;

background-color: var(--bg-primary);

.admissions-section h2 {

color: var(--accent-red);

text-align: center;

margin-bottom: 40px;

font-size: 2.8em;

.admissions-content {

background-color: var(--bg-secondary);

border-radius: 10px;

padding: 40px;

box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5);

border: 1px solid var(--border-color);


}

.admissions-content h3 {

color: var(--accent-red);

font-size: 2em;

margin-bottom: 20px;

border-bottom: 2px solid var(--border-color);

padding-bottom: 10px;

.admissions-content p {

font-size: 1.1em;

line-height: 1.7;

margin-bottom: 25px;

.admissions-content ul {

list-style: none;

padding: 0;

margin-bottom: 25px;

.admissions-content ul li {

background-color: var(--bg-primary);

margin-bottom: 10px;
padding: 15px 20px;

border-radius: 5px;

border-left: 5px solid var(--accent-purple);

font-size: 1.05em;

.admissions-content a {

color: var(--accent-blue);

text-decoration: none;

transition: color 0.3s ease;

.admissions-content a:hover {

color: #0099ff;

text-decoration: underline;

/* Contact Us Page Specifics */

.contact-section {

padding: 60px 20px;

background-color: var(--bg-primary);

.contact-content {

display: flex;
flex-wrap: wrap;

gap: 40px;

justify-content: center;

.contact-info, .contact-form-container {

background-color: var(--bg-secondary);

border-radius: 10px;

padding: 40px;

box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5);

border: 1px solid var(--border-color);

flex: 1;

min-width: 300px;

.contact-info h3, .contact-form-container h3 {

color: var(--accent-red);

font-size: 2em;

margin-bottom: 25px;

border-bottom: 2px solid var(--border-color);

padding-bottom: 10px;

.contact-info p {

margin-bottom: 15px;
font-size: 1.1em;

line-height: 1.6;

.contact-info a {

color: var(--accent-blue);

text-decoration: none;

.contact-info a:hover {

text-decoration: underline;

.contact-form .form-group textarea {

width: 100%;

padding: 15px;

border: 1px solid var(--border-color);

border-radius: 5px;

background-color: var(--bg-primary);

color: var(--text-light);

font-size: 1em;

min-height: 120px;

resize: vertical;

box-sizing: border-box;

}
.contact-form .form-group textarea::placeholder {

color: #888;

.contact-form .form-group textarea:focus {

outline: none;

border-color: var(--accent-blue);

box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.3);

/* Responsive Design */

@media (max-width: 768px) {

.header-content {

flex-direction: column;

align-items: flex-start;

padding-top: 15px;

.nav-menu {

flex-direction: column;

width: 100%;

margin-top: 20px;

}
.nav-item {

margin: 0 0 10px 0;

width: 100%;

.nav-link {

display: block;

text-align: center;

.hero-section h1 {

font-size: 2.8em;

.hero-section p {

font-size: 1.2em;

.features-grid, .courses-grid {

grid-template-columns: 1fr;

.about-content {

flex-direction: column;

}
.contact-content {

flex-direction: column;

</style>

</head>

<body>

<div id="root"></div>

<script type="text/babel">

const { useState, useEffect, createContext, useContext } = React;

const ReactDOM = ReactDOM; // Ensure ReactDOM is accessible

// --- Context for User Authentication and Page Routing ---

const AuthContext = createContext(null);

const PageContext = createContext(null);

// --- Components ---

// Header Component

const Header = () => {

const { currentPage, navigateTo } = useContext(PageContext);

const { isAuthenticated, logout } = useContext(AuthContext);


return (

<header className="header">

<div className="container header-content">

<div className="header-title">Rekindle</div>

<nav>

<ul className="nav-menu">

<li className="nav-item">

<a href="#" className={`nav-link ${currentPage === 'home' ? 'active' : ''}`}


onClick={() => navigateTo('home')}>Home</a>

</li>

<li className="nav-item">

<a href="#" className={`nav-link ${currentPage === 'about' ? 'active' : ''}`}


onClick={() => navigateTo('about')}>About Us</a>

</li>

<li className="nav-item">

<a href="#" className={`nav-link ${currentPage === 'courses' ? 'active' : ''}`}


onClick={() => navigateTo('courses')}>Courses</a>

</li>

<li className="nav-item">

<a href="#" className={`nav-link ${currentPage === 'admissions' ? 'active' : ''}`}


onClick={() => navigateTo('admissions')}>Admissions</a>

</li>

<li className="nav-item">

<a href="#" className={`nav-link ${currentPage === 'contact' ? 'active' : ''}`}


onClick={() => navigateTo('contact')}>Contact Us</a>

</li>

{isAuthenticated ? (
<li className="nav-item">

<a href="#" className="nav-link" onClick={logout}>Logout</a>

</li>

):(

<li className="nav-item">

<a href="#" className={`nav-link ${currentPage === 'auth' ? 'active' : ''}`}


onClick={() => navigateTo('auth')}>Login/Signup</a>

</li>

)}

</ul>

</nav>

</div>

</header>

);

};

// Footer Component

const Footer = () => (

<footer className="footer">

<div className="container footer-content">

&copy; {new Date().getFullYear()} Rekindle. All rights reserved. Designed with passion.

</div>

</footer>

);

// AuthForm Component (Login/Signup)


const AuthForm = () => {

const [isLogin, setIsLogin] = useState(true);

const [username, setUsername] = useState('');

const [email, setEmail] = useState('');

const [password, setPassword] = useState('');

const [message, setMessage] = useState('');

const { login } = useContext(AuthContext);

const { navigateTo } = useContext(PageContext);

const handleSubmit = (e) => {

[Link]();

setMessage(''); // Clear previous messages

if (isLogin) {

// Simulate login logic

if (username === 'user' && password === 'password') {

login({ username: username });

setMessage('Login successful!');

navigateTo('home'); // Redirect to home on successful login

} else {

setMessage('Invalid username or password.');

} else {

// Simulate signup logic

if (username && email && password) {


// In a real app, you'd send this to a server

setMessage('Signup successful! Please login.');

setIsLogin(true); // Switch to login after signup

} else {

setMessage('Please fill all fields for signup.');

// Clear form fields

setUsername('');

setEmail('');

setPassword('');

};

return (

<div className="auth-form-container">

<form className="auth-form" onSubmit={handleSubmit}>

<h2>{isLogin ? 'Login' : 'Sign Up'}</h2>

{message && <p style={{ color: [Link]('successful') ? 'lightgreen' : 'var(--accent-


red)', textAlign: 'center', marginBottom: '20px' }}>{message}</p>}

<div className="form-group">

<label htmlFor="username">Username</label>

<input

type="text"

id="username"

value={username}

onChange={(e) => setUsername([Link])}


placeholder="Enter your username"

required

/>

</div>

{!isLogin && (

<div className="form-group">

<label htmlFor="email">Email</label>

<input

type="email"

id="email"

value={email}

onChange={(e) => setEmail([Link])}

placeholder="Enter your email"

required={!isLogin}

/>

</div>

)}

<div className="form-group">

<label htmlFor="password">Password</label>

<input

type="password"

id="password"

value={password}

onChange={(e) => setPassword([Link])}

placeholder="Enter your password"


required

/>

</div>

<div className="form-actions">

<button type="submit" className="form-button">

{isLogin ? 'Login' : 'Sign Up'}

</button>

</div>

<p className="toggle-auth-mode" onClick={() => setIsLogin(!isLogin)}>

{isLogin ? "Don't have an account? Sign Up" : "Already have an account? Login"}

</p>

</form>

</div>

);

};

// --- Page Components ---

// Home Page

const HomePage = () => (

<div className="home-page">

<section className="hero-section">

<div className="container">

<h1>Rekindle Your Future. Ignite Your Potential.</h1>

<p>Welcome to Rekindle Academy, where innovation meets education. We are dedicated


to nurturing bright minds and preparing leaders for tomorrow's world.</p>
<a href="#" className="cta-button" onClick={() =>
useContext(PageContext).navigateTo('admissions')}>Apply Now</a>

</div>

</section>

<section className="container">

<h2 className="section-title">Why Choose Rekindle?</h2>

<div className="features-grid">

<div className="feature-item">

<h3>Cutting-Edge Curriculum</h3>

<p>Our programs are designed to be relevant and future-proof, keeping pace with global
advancements and industry demands.</p>

</div>

<div className="feature-item">

<h3>Expert Faculty</h3>

<p>Learn from passionate educators and industry veterans who bring real-world
experience into the classroom.</p>

</div>

<div className="feature-item">

<h3>Vibrant Community</h3>

<p>Join a diverse and supportive community of learners, fostering collaboration and


personal growth.</p>

</div>

<div className="feature-item">

<h3>Career Opportunities</h3>

<p>We provide extensive career support, internships, and networking opportunities to


ensure your success post-graduation.</p>
</div>

</div>

</section>

{/* Add more sections like testimonials, news, etc. */}

</div>

);

// About Us Page

const AboutPage = () => (

<div className="about-page container">

<section className="about-section">

<h2 className="section-title">About Rekindle Academy</h2>

<div className="about-content">

<div className="about-text">

<p>Rekindle Academy was founded in [Year] with a vision to revolutionize education. We


believe in fostering an environment where students are encouraged to think critically, innovate, and
contribute meaningfully to society.</p>

<p>Our mission is to provide high-quality, accessible education that empowers


individuals to achieve their full potential. We are committed to academic excellence, research, and
community engagement.</p>

<p>From our humble beginnings, we have grown into a leading institution, known for
our innovative teaching methods, state-of-the-art facilities, and a commitment to student success. We
continually adapt our programs to meet the evolving needs of the world.</p>

<p>At Rekindle, every student's journey is unique and valued. We strive to create a
holistic learning experience that extends beyond the classroom, preparing our graduates not just for
careers, but for life.</p>

</div>

<div className="about-image">
<img src="[Link]
alt="Rekindle Academy Campus" />

</div>

</div>

</section>

{/* Add sections for vision, mission, values, faculty, etc. */}

</div>

);

// Courses Page

const CoursesPage = () => (

<div className="courses-page container">

<section className="courses-section">

<h2 className="section-title">Our Academic Programs</h2>

<div className="courses-grid">

<div className="course-card">

<img src="[Link]
text=Computer+Science" alt="Computer Science" />

<div className="course-info">

<h3>Bachelor of Computer Science</h3>

<p>Explore the foundations of computing, algorithms, software development, and


artificial intelligence.</p>

<a href="#" className="course-button">Learn More</a>

</div>

</div>

<div className="course-card">
<img src="[Link]
alt="Business Administration" />

<div className="course-info">

<h3>Bachelor of Business Administration</h3>

<p>Develop essential business acumen, leadership skills, and strategic thinking for the
global marketplace.</p>

<a href="#" className="course-button">Learn More</a>

</div>

</div>

<div className="course-card">

<img src="[Link]
alt="Electrical Engineering" />

<div className="course-info">

<h3>Bachelor of Electrical Engineering</h3>

<p>Master the principles of electrical systems, electronics, power generation, and


control systems.</p>

<a href="#" className="course-button">Learn More</a>

</div>

</div>

<div className="course-card">

<img src="[Link]
alt="Psychology" />

<div className="course-info">

<h3>Bachelor of Psychology</h3>

<p>Delve into the complexities of human behavior, cognition, and mental


processes.</p>

<a href="#" className="course-button">Learn More</a>

</div>
</div>

<div className="course-card">

<img src="[Link] alt="Fine Arts"


/>

<div className="course-info">

<h3>Bachelor of Fine Arts</h3>

<p>Unleash your creativity and refine your artistic skills in various disciplines.</p>

<a href="#" className="course-button">Learn More</a>

</div>

</div>

<div className="course-card">

<img src="[Link]
alt="Medicine" />

<div className="course-info">

<h3>Doctor of Medicine (MD)</h3>

<p>A comprehensive program for aspiring medical professionals, focusing on clinical


practice and research.</p>

<a href="#" className="course-button">Learn More</a>

</div>

</div>

</div>

</section>

{/* Add sections for course catalog, department links, etc. */}

</div>

);

// Admissions Page
const AdmissionsPage = () => (

<div className="admissions-page container">

<section className="admissions-section">

<h2>Admissions at Rekindle Academy</h2>

<div className="admissions-content">

<h3>Application Process</h3>

<p>Welcome to Rekindle Academy! We are thrilled you are considering joining our vibrant
community. Our admissions process is designed to be straightforward and supportive.</p>

<h4>Steps to Apply:</h4>

<ul>

<li><strong>Step 1: Online Application Form</strong><br/>Complete our online


application form. Ensure all required fields are filled accurately.</li>

<li><strong>Step 2: Submit Required Documents</strong><br/>Upload scanned copies


of your academic transcripts, certificates, letters of recommendation, and a personal statement.</li>

<li><strong>Step 3: Application Fee Payment</strong><br/>Pay the non-refundable


application fee. Details on payment methods are provided in the application portal.</li>

<li><strong>Step 4: Interview (if applicable)</strong><br/>Shortlisted candidates may be


invited for an interview, either in-person or virtually.</li>

<li><strong>Step 5: Admissions Decision</strong><br/>You will be notified of our


admissions decision via email.</li>

</ul>

<p>For detailed information on eligibility criteria, deadlines, and international admissions,


please refer to our official <a href="#">Admissions Handbook (PDF)</a>.</p>

<h3>Scholarships & Financial Aid</h3>

<p>Rekindle Academy is committed to making quality education accessible. We offer a


range of scholarships and financial aid options for deserving students. These include merit-based
scholarships, need-based grants, and specific program scholarships.</p>
<p>Explore our <a href="#">Scholarship Opportunities page</a> for more details and
application procedures.</p>

<h3>Important Dates</h3>

<ul>

<li><strong>Application Opening:</strong> September 1st, {new


Date().getFullYear()}</li>

<li><strong>Early Bird Deadline:</strong> December 15th, {new


Date().getFullYear()}</li>

<li><strong>Regular Decision Deadline:</strong> March 31st, {new Date().getFullYear() +


1}</li>

<li><strong>Admissions Decisions Released:</strong> May 15th, {new


Date().getFullYear() + 1}</li>

</ul>

<p>We encourage you to apply early to ensure consideration for all available programs and
scholarships.</p>

</div>

</section>

{/* Add sections for FAQ, visit us, etc. */}

</div>

);

// Contact Us Page

const ContactPage = () => (

<div className="contact-page container">

<section className="contact-section">

<h2 className="section-title">Get In Touch</h2>

<div className="contact-content">
<div className="contact-info">

<h3>Contact Information</h3>

<p>Have questions or need assistance? Reach out to us!</p>

<p><strong>Address:</strong><br/> 123 Rekindle Avenue,<br/>Knowledge City, RC


90210,<br/>Country</p>

<p><strong>Phone:</strong><br/> +1 (555) 123-4567</p>

<p><strong>Email:</strong><br/> <a
href="[Link]

<p><strong>Admissions Office:</strong><br/> <a


href="[Link]

<p><strong>Hours:</strong><br/> Monday - Friday: 9:00 AM - 5:00 PM (Local Time)</p>

</div>

<div className="contact-form-container">

<h3>Send Us a Message</h3>

<form className="contact-form">

<div className="form-group">

<label htmlFor="contactName">Your Name</label>

<input type="text" id="contactName" placeholder="Enter your name" required />

</div>

<div className="form-group">

<label htmlFor="contactEmail">Your Email</label>

<input type="email" id="contactEmail" placeholder="Enter your email" required />

</div>

<div className="form-group">

<label htmlFor="contactSubject">Subject</label>

<input type="text" id="contactSubject" placeholder="Subject of your message"


required />
</div>

<div className="form-group">

<label htmlFor="contactMessage">Your Message</label>

<textarea id="contactMessage" placeholder="Type your message here..."


required></textarea>

</div>

<div className="form-actions">

<button type="submit" className="form-button">Send Message</button>

</div>

</form>

</div>

</div>

</section>

{/* Potentially add an embedded map if you want, but it requires external scripts/keys */}

</div>

);

// --- Main App Component ---

const App = () => {

const [isAuthenticated, setIsAuthenticated] = useState(false);

const [user, setUser] = useState(null);

const [currentPage, setCurrentPage] = useState('home'); // Default page

const login = (userData) => {

setIsAuthenticated(true);
setUser(userData);

// In a real app, you'd store tokens/user info in localStorage/sessionStorage

};

const logout = () => {

setIsAuthenticated(false);

setUser(null);

setCurrentPage('home'); // Redirect to home after logout

};

const navigateTo = (page) => {

setCurrentPage(page);

[Link](0, 0); // Scroll to top on page change

};

const renderPage = () => {

switch (currentPage) {

case 'home':

return <HomePage />;

case 'about':

return <AboutPage />;

case 'courses':

return <CoursesPage />;

case 'admissions':

return <AdmissionsPage />;


case 'contact':

return <ContactPage />;

case 'auth':

return <AuthForm />;

default:

return <HomePage />;

};

return (

<[Link] value={{ isAuthenticated, user, login, logout }}>

<[Link] value={{ currentPage, navigateTo }}>

<Header />

<main className="main-content">

{renderPage()}

</main>

<Footer />

</[Link]>

</[Link]>

);

};

// Render the App

[Link](<App />, [Link]('root'));


</script>

</body>

</html>

You might also like