Merge version_2 into main #4
@@ -1,35 +1,40 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import Link from "next/link";
|
||||
import NavbarStyleApple from "@/components/navbar/NavbarStyleApple/NavbarStyleApple";
|
||||
import FooterCard from "@/components/sections/footer/FooterCard";
|
||||
import HeroBillboardScroll from "@/components/sections/hero/HeroBillboardScroll";
|
||||
import FeatureHoverPattern from "@/components/sections/feature/featureHoverPattern/FeatureHoverPattern";
|
||||
import TestimonialCardOne from "@/components/sections/testimonial/TestimonialCardOne";
|
||||
import Link from "next/link";
|
||||
import PricingCardOne from "@/components/sections/pricing/PricingCardOne";
|
||||
import TeamCardFive from "@/components/sections/team/TeamCardFive";
|
||||
import FaqDouble from "@/components/sections/faq/FaqDouble";
|
||||
import FooterCard from "@/components/sections/footer/FooterCard";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import {
|
||||
Calendar,
|
||||
Sparkles,
|
||||
Zap,
|
||||
Award,
|
||||
DollarSign,
|
||||
Users,
|
||||
HelpCircle,
|
||||
Calendar,
|
||||
Lock,
|
||||
BarChart3,
|
||||
Zap,
|
||||
Smartphone,
|
||||
Award,
|
||||
Sparkles,
|
||||
Twitter,
|
||||
Linkedin,
|
||||
Mail,
|
||||
} from "lucide-react";
|
||||
|
||||
export default function ClassesPage() {
|
||||
const navItems = [
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Workshops", id: "/workshops" },
|
||||
{ name: "Classes", id: "/classes" },
|
||||
{ name: "Pricing", id: "/pricing" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
];
|
||||
const navItems = [
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Workshops", id: "/workshops" },
|
||||
{ name: "Classes", id: "/classes" },
|
||||
{ name: "Pricing", id: "/pricing" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
];
|
||||
|
||||
export default function ClassesPage() {
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="shift-hover"
|
||||
@@ -49,18 +54,16 @@ export default function ClassesPage() {
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBillboardScroll
|
||||
title="Master New Skills Online"
|
||||
description="Discover and book world-class workshops and classes taught by expert instructors. Learn at your own pace with flexible scheduling and interactive learning experiences."
|
||||
tag="Flexible Learning Platform"
|
||||
title="Ongoing Classes for Continuous Learning"
|
||||
description="Structured, semester-based classes that meet regularly to help you master subjects deeply. From beginner fundamentals to advanced specializations, find the perfect class for your learning journey."
|
||||
tag="Class Catalog"
|
||||
tagIcon={Sparkles}
|
||||
background={{ variant: "animated-grid" }}
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-banner-image-showing-a-dive-1773149958687-87f99901.jpg?_wi=4"
|
||||
imageAlt="Professional workshop training environment"
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-banner-image-showing-a-dive-1773149958687-87f99901.jpg?_wi=1"
|
||||
imageAlt="Professional training classroom environment"
|
||||
buttons={[
|
||||
{
|
||||
text: "Explore Classes", href: "/classes"},
|
||||
{
|
||||
text: "View Pricing", href: "/pricing"},
|
||||
{ text: "Browse Classes", href: "#features" },
|
||||
{ text: "View Pricing", href: "/pricing" },
|
||||
]}
|
||||
tagAnimation="slide-up"
|
||||
buttonAnimation="slide-up"
|
||||
@@ -69,37 +72,31 @@ export default function ClassesPage() {
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<FeatureHoverPattern
|
||||
title="Class Features"
|
||||
description="Everything you need for successful ongoing learning with structured progression"
|
||||
tag="Class Benefits"
|
||||
tagIcon={Zap}
|
||||
features={[
|
||||
{
|
||||
icon: Calendar,
|
||||
title: "Smart Scheduling", description:
|
||||
"Browse upcoming workshops and classes with real-time availability. Filter by category, skill level, instructor, and time slots that fit your schedule."},
|
||||
title: "Flexible Scheduling", description: "Classes meet at consistent times throughout the semester. Choose from morning, afternoon, or evening sessions. Weekday or weekend options available."},
|
||||
{
|
||||
icon: Users,
|
||||
title: "Expert Instructors", description:
|
||||
"Learn from verified, professional instructors with years of experience in their fields. Read reviews and ratings from other students."},
|
||||
{
|
||||
icon: Lock,
|
||||
title: "Secure Authentication", description:
|
||||
"Enterprise-grade JWT authentication with role-based access control. Separate secure dashboards for students, teachers, and administrators."},
|
||||
title: "Community Learning", description: "Build relationships with fellow students and instructors. Collaborative projects and group discussions enhance your learning experience."},
|
||||
{
|
||||
icon: BarChart3,
|
||||
title: "Real-Time Capacity", description:
|
||||
"See available seats in real-time. Automatic booking closure when capacity is reached. Prevents overbooking with backend validation."},
|
||||
title: "Progress Tracking", description: "Monitor your advancement with regular assessments and feedback. Personalized learning paths adapted to your pace and goals."},
|
||||
{
|
||||
icon: Zap,
|
||||
title: "Dynamic Content", description:
|
||||
"All content powered by Strapi CMS API. Updates instantly across the platform without code changes. Fully scalable infrastructure."},
|
||||
icon: Award,
|
||||
title: "Structured Curriculum", description: "Follow a proven learning progression from fundamentals to advanced topics. Each class builds on previous concepts systematically."},
|
||||
{
|
||||
icon: Lock,
|
||||
title: "Support Resources", description: "Access office hours, tutoring sessions, and peer study groups. Comprehensive support materials and discussion forums."},
|
||||
{
|
||||
icon: Smartphone,
|
||||
title: "Fully Responsive", description:
|
||||
"Perfect experience on mobile, tablet, and desktop. Flexbox layouts adapt to any screen size. Touch-optimized interface for mobile users."},
|
||||
title: "Multi-Format Options", description: "Choose between in-person, hybrid, or fully online classes. Switch formats as needed to accommodate your schedule."},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
title="Powerful Features"
|
||||
description="Everything you need to book, manage, and attend classes with confidence"
|
||||
tag="Platform Capabilities"
|
||||
tagIcon={Zap}
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
@@ -107,38 +104,122 @@ export default function ClassesPage() {
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialCardOne
|
||||
title="Class Success Stories"
|
||||
description="Students sharing their experiences in our ongoing classes and their learning achievements"
|
||||
tag="Student Achievements"
|
||||
tagIcon={Award}
|
||||
testimonials={[
|
||||
{
|
||||
id: "1", name: "Sarah Chen", role: "Software Engineer", company: "Tech Startup", rating: 5,
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-wo-1773149958697-b0d1653b.png?_wi=2", imageAlt: "Sarah Chen professional portrait"},
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-wo-1773149958697-b0d1653b.png?_wi=1", imageAlt: "Sarah Chen professional portrait"},
|
||||
{
|
||||
id: "2", name: "Michael Rodriguez", role: "Creative Director", company: "Design Agency", rating: 5,
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-ma-1773149960412-c73ce951.png?_wi=2", imageAlt: "Michael Rodriguez professional portrait"},
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-ma-1773149960412-c73ce951.png?_wi=1", imageAlt: "Michael Rodriguez professional portrait"},
|
||||
{
|
||||
id: "3", name: "Emily Watson", role: "Marketing Manager", company: "E-Commerce Business", rating: 5,
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-young-professio-1773149959161-e0640722.png?_wi=2", imageAlt: "Emily Watson professional portrait"},
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-young-professio-1773149959161-e0640722.png?_wi=1", imageAlt: "Emily Watson professional portrait"},
|
||||
{
|
||||
id: "4", name: "David Kim", role: "Freelance Developer", company: "Independent", rating: 5,
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-ma-1773149958765-b75148e4.png?_wi=2", imageAlt: "David Kim professional portrait"},
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-ma-1773149958765-b75148e4.png?_wi=1", imageAlt: "David Kim professional portrait"},
|
||||
{
|
||||
id: "5", name: "Jessica Thompson", role: "Product Manager", company: "SaaS Company", rating: 5,
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-diverse-profess-1773149958342-9fec15d1.jpg?_wi=2", imageAlt: "Jessica Thompson professional portrait"},
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-diverse-profess-1773149958342-9fec15d1.jpg?_wi=1", imageAlt: "Jessica Thompson professional portrait"},
|
||||
{
|
||||
id: "6", name: "James Morrison", role: "Business Consultant", company: "Management Consulting", rating: 5,
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-ma-1773149959785-c28fc4c1.png?_wi=2", imageAlt: "James Morrison professional portrait"},
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-ma-1773149959785-c28fc4c1.png?_wi=1", imageAlt: "James Morrison professional portrait"},
|
||||
]}
|
||||
gridVariant="uniform-all-items-equal"
|
||||
animationType="slide-up"
|
||||
title="Trusted by Thousands"
|
||||
description="Real feedback from students who transformed their skills"
|
||||
tag="Student Success Stories"
|
||||
tagIcon={Award}
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<PricingCardOne
|
||||
title="Class Pricing Plans"
|
||||
description="Affordable pricing for ongoing classes. All plans include instructor-led sessions, course materials, and community access."
|
||||
tag="Class Subscriptions"
|
||||
tagIcon={DollarSign}
|
||||
plans={[
|
||||
{
|
||||
id: "1", badge: "Starter", badgeIcon: Sparkles,
|
||||
price: "$9.99/mo", subtitle: "Perfect for casual learners", features: [
|
||||
"Access to all classes", "Book up to 4 classes per month", "Student community forum", "Digital materials", "Basic progress tracking"],
|
||||
},
|
||||
{
|
||||
id: "2", badge: "Popular", badgeIcon: Zap,
|
||||
price: "$24.99/mo", subtitle: "Ideal for dedicated students", features: [
|
||||
"Unlimited class access", "Priority instructor support", "Office hours & tutoring", "Advanced analytics", "Certificates of completion", "Peer study groups"],
|
||||
},
|
||||
{
|
||||
id: "3", badge: "Professional", badgeIcon: Award,
|
||||
price: "$49.99/mo", subtitle: "For career advancement", features: [
|
||||
"Everything in Popular", "1-on-1 mentorship", "Custom learning pathways", "Career counseling", "Exclusive masterclasses", "Priority course registration"],
|
||||
},
|
||||
{
|
||||
id: "4", badge: "Team License", badgeIcon: Users,
|
||||
price: "$299/month", subtitle: "For organizations & groups", features: [
|
||||
"Up to 10 team members", "Team analytics dashboard", "Group discounts", "Custom class planning", "Admin management tools", "Dedicated support"],
|
||||
},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="team" data-section="team">
|
||||
<TeamCardFive
|
||||
title="Class Instructors"
|
||||
description="Experienced educators committed to student success and ongoing learning support"
|
||||
tag="Teaching Excellence"
|
||||
tagIcon={Users}
|
||||
team={[
|
||||
{
|
||||
id: "1", name: "Margaret Johnson", role: "Piano Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-piano-instruc-1773149958833-7e1afaf0.png?_wi=1", imageAlt: "Margaret Johnson piano instructor"},
|
||||
{
|
||||
id: "2", name: "Jessica Lee", role: "Dance Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-dance-instruc-1773149955255-d32fb4cc.jpg?_wi=1", imageAlt: "Jessica Lee dance instructor"},
|
||||
{
|
||||
id: "3", name: "Marcus Williams", role: "Yoga Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-yoga-instruct-1773149958540-4c8fc93c.jpg?_wi=1", imageAlt: "Marcus Williams yoga instructor"},
|
||||
{
|
||||
id: "4", name: "Sofia Rossi", role: "Art Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-an-art-instruct-1773149958976-9ea3327d.png?_wi=1", imageAlt: "Sofia Rossi art instructor"},
|
||||
{
|
||||
id: "5", name: "Ahmed Hassan", role: "Language Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-language-inst-1773149958360-43c50b1b.jpg?_wi=1", imageAlt: "Ahmed Hassan language instructor"},
|
||||
{
|
||||
id: "6", name: "Lisa Anderson", role: "Fitness Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-fitness-instr-1773149958873-1119546c.png?_wi=1", imageAlt: "Lisa Anderson fitness instructor"},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqDouble
|
||||
title="Classes FAQ"
|
||||
description="Frequently asked questions about class enrollment, schedules, and the ongoing learning experience"
|
||||
tag="Help & Support"
|
||||
tagIcon={HelpCircle}
|
||||
faqs={[
|
||||
{
|
||||
id: "1", title: "What is the difference between classes and workshops?", content: "Classes are ongoing, semester-based courses that meet regularly (weekly or bi-weekly) for deeper learning over time. Workshops are intensive, short-term learning experiences. Classes are better for comprehensive understanding, while workshops focus on rapid skill acquisition."},
|
||||
{
|
||||
id: "2", title: "How long do classes typically run?", content: "Most classes run for one semester (12-16 weeks) meeting once or twice per week. Some beginner classes are 8 weeks, and advanced specializations may span multiple semesters. You can see the duration in each class listing."},
|
||||
{
|
||||
id: "3", title: "Can I join a class mid-semester?", content: "It depends on the class. Some classes allow late enrollment with catch-up materials provided. Others require starting from the beginning. Check with individual class instructors about their enrollment policies."},
|
||||
{
|
||||
id: "4", title: "What happens if I miss a class session?", content: "Most classes provide recorded sessions and materials for missed classes. You can catch up at your own pace. However, active participation is important for group discussion and collaborative projects."},
|
||||
{
|
||||
id: "5", title: "Do I need prerequisites for advanced classes?", content: "Yes, advanced classes typically require completion of foundational courses or equivalent experience. We offer beginner, intermediate, and advanced levels. Check prerequisites in the class description."},
|
||||
{
|
||||
id: "6", title: "How are grades or progress measured?", content: "Progress is tracked through assignments, projects, assessments, and participation. You receive regular feedback from instructors. Upon completion, you can earn a certificate if you meet course requirements."},
|
||||
{
|
||||
id: "7", title: "Can I change my enrollment or drop a class?", content: "Yes, you can drop within the first 2 weeks for a full refund. After that, you can audit the class or request a transfer to another session. Changes must be made through your student dashboard."},
|
||||
{
|
||||
id: "8", title: "What support is available during the class?", content: "Instructors hold weekly office hours, and tutoring support is available. You also have access to peer study groups, forums, and community resources. Professional and premium tier subscribers get priority support."},
|
||||
]}
|
||||
faqsAnimation="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
|
||||
153
src/app/login/page.tsx
Normal file
153
src/app/login/page.tsx
Normal file
@@ -0,0 +1,153 @@
|
||||
"use client";
|
||||
|
||||
import Link from "next/link";
|
||||
import { useState } from "react";
|
||||
import NavbarStyleApple from "@/components/navbar/NavbarStyleApple/NavbarStyleApple";
|
||||
import Input from "@/components/form/Input";
|
||||
import ButtonExpandHover from "@/components/button/ButtonExpandHover";
|
||||
import FooterCard from "@/components/sections/footer/FooterCard";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import { Mail, Lock, Twitter, Linkedin } from "lucide-react";
|
||||
|
||||
const navItems = [
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Workshops", id: "/workshops" },
|
||||
{ name: "Classes", id: "/classes" },
|
||||
{ name: "Pricing", id: "/pricing" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
];
|
||||
|
||||
export default function LoginPage() {
|
||||
const [email, setEmail] = useState("");
|
||||
const [password, setPassword] = useState("");
|
||||
const [loading, setLoading] = useState(false);
|
||||
const [error, setError] = useState("");
|
||||
|
||||
const handleLogin = async (e: React.FormEvent) => {
|
||||
e.preventDefault();
|
||||
setLoading(true);
|
||||
setError("");
|
||||
|
||||
try {
|
||||
// Placeholder for login logic
|
||||
console.log("Login attempt with:", { email, password });
|
||||
// Add your login API call here
|
||||
} catch (err) {
|
||||
setError("Login failed. Please try again.");
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="shift-hover"
|
||||
defaultTextAnimation="entrance-slide"
|
||||
borderRadius="pill"
|
||||
contentWidth="medium"
|
||||
sizing="mediumLarge"
|
||||
background="circleGradient"
|
||||
cardStyle="glass-depth"
|
||||
primaryButtonStyle="radial-glow"
|
||||
secondaryButtonStyle="glass"
|
||||
headingFontWeight="light"
|
||||
>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleApple brandName="ClassHub" navItems={navItems} />
|
||||
</div>
|
||||
|
||||
<div className="min-h-screen flex items-center justify-center px-4 py-20">
|
||||
<div className="w-full max-w-md">
|
||||
<div className="mb-8 text-center">
|
||||
<h1 className="text-4xl font-bold mb-2">Welcome Back</h1>
|
||||
<p className="text-foreground/70">Sign in to your ClassHub account</p>
|
||||
</div>
|
||||
|
||||
<form onSubmit={handleLogin} className="space-y-6">
|
||||
{error && (
|
||||
<div className="bg-red-500/10 border border-red-500/20 rounded-lg p-4 text-red-600 text-sm">
|
||||
{error}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div>
|
||||
<label className="block text-sm font-medium mb-2">Email Address</label>
|
||||
<Input
|
||||
type="email"
|
||||
value={email}
|
||||
onChange={(value) => setEmail(value)}
|
||||
placeholder="you@example.com"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label className="block text-sm font-medium mb-2">Password</label>
|
||||
<Input
|
||||
type="password"
|
||||
value={password}
|
||||
onChange={(value) => setPassword(value)}
|
||||
placeholder="Enter your password"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="flex items-center justify-between text-sm">
|
||||
<label className="flex items-center">
|
||||
<input type="checkbox" className="mr-2" />
|
||||
<span>Remember me</span>
|
||||
</label>
|
||||
<Link href="/forgot-password" className="text-primary-cta hover:underline">
|
||||
Forgot password?
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
disabled={loading}
|
||||
className="w-full bg-primary-cta text-background py-3 rounded-lg font-medium hover:opacity-90 transition disabled:opacity-50"
|
||||
>
|
||||
{loading ? "Signing in..." : "Sign In"}
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<div className="mt-6 text-center text-sm">
|
||||
<p className="text-foreground/70">
|
||||
Don't have an account?{" "}
|
||||
<Link href="/register" className="text-primary-cta hover:underline font-medium">
|
||||
Create one here
|
||||
</Link>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="mt-8 pt-8 border-t border-foreground/10">
|
||||
<p className="text-center text-sm text-foreground/50 mb-4">Or continue with</p>
|
||||
<div className="flex gap-4 justify-center">
|
||||
<button className="flex-1 py-2 px-4 rounded-lg bg-card hover:bg-card/80 transition text-sm font-medium">
|
||||
Google
|
||||
</button>
|
||||
<button className="flex-1 py-2 px-4 rounded-lg bg-card hover:bg-card/80 transition text-sm font-medium">
|
||||
GitHub
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterCard
|
||||
logoText="ClassHub"
|
||||
copyrightText="© 2025 ClassHub. All rights reserved. Empowering learners worldwide."
|
||||
socialLinks={[
|
||||
{
|
||||
icon: Twitter,
|
||||
href: "https://twitter.com/classhub", ariaLabel: "Follow ClassHub on Twitter"},
|
||||
{
|
||||
icon: Linkedin,
|
||||
href: "https://linkedin.com/company/classhub", ariaLabel: "Follow ClassHub on LinkedIn"},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
@@ -1,137 +1,41 @@
|
||||
"use client";
|
||||
|
||||
import Link from "next/link";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleApple from "@/components/navbar/NavbarStyleApple/NavbarStyleApple";
|
||||
import HeroBillboardScroll from "@/components/sections/hero/HeroBillboardScroll";
|
||||
import FeatureHoverPattern from "@/components/sections/feature/featureHoverPattern/FeatureHoverPattern";
|
||||
import TestimonialCardOne from "@/components/sections/testimonial/TestimonialCardOne";
|
||||
import PricingCardOne from "@/components/sections/pricing/PricingCardOne";
|
||||
import TeamCardFive from "@/components/sections/team/TeamCardFive";
|
||||
import FaqDouble from "@/components/sections/faq/FaqDouble";
|
||||
import FooterCard from "@/components/sections/footer/FooterCard";
|
||||
import { DollarSign, Sparkles, Star, Crown, Users, HelpCircle, Twitter, Linkedin, Mail } from "lucide-react";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import {
|
||||
Sparkles,
|
||||
Zap,
|
||||
Award,
|
||||
DollarSign,
|
||||
Users,
|
||||
HelpCircle,
|
||||
Calendar,
|
||||
Lock,
|
||||
BarChart3,
|
||||
Smartphone,
|
||||
Twitter,
|
||||
Linkedin,
|
||||
Mail,
|
||||
CheckCircle,
|
||||
} from "lucide-react";
|
||||
|
||||
const navItems = [
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Workshops", id: "/workshops" },
|
||||
{ name: "Classes", id: "/classes" },
|
||||
{ name: "Pricing", id: "/pricing" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
];
|
||||
|
||||
export default function PricingPage() {
|
||||
const pricingPlans = [
|
||||
{
|
||||
id: "1",
|
||||
badge: "Popular",
|
||||
badgeIcon: Sparkles,
|
||||
price: "$9.99/mo",
|
||||
subtitle: "Perfect for casual learners",
|
||||
features: [
|
||||
"Access to all workshops",
|
||||
"Book up to 5 classes per month",
|
||||
"Student community forum",
|
||||
"Mobile app access",
|
||||
"Basic progress tracking",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
badge: "Best Value",
|
||||
badgeIcon: Star,
|
||||
price: "$24.99/mo",
|
||||
subtitle: "Ideal for dedicated students",
|
||||
features: [
|
||||
"Unlimited class bookings",
|
||||
"Priority instructor support",
|
||||
"Advanced progress analytics",
|
||||
"Certificate of completion",
|
||||
"Video replay access",
|
||||
"Networking events",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
badge: "Professional",
|
||||
badgeIcon: Crown,
|
||||
price: "$49.99/mo",
|
||||
subtitle: "For career advancement",
|
||||
features: [
|
||||
"Everything in Pro plan",
|
||||
"1-on-1 mentorship sessions",
|
||||
"Custom learning pathways",
|
||||
"Career placement assistance",
|
||||
"Exclusive workshops",
|
||||
"Priority booking access",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
badge: "Teacher License",
|
||||
badgeIcon: Users,
|
||||
price: "$99.99/mo",
|
||||
subtitle: "Teach and earn",
|
||||
features: [
|
||||
"Create & manage classes",
|
||||
"Student management tools",
|
||||
"Booking analytics dashboard",
|
||||
"Revenue tracking",
|
||||
"Marketing support",
|
||||
"24/7 technical support",
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
const faqItems = [
|
||||
{
|
||||
id: "1",
|
||||
title: "Can I change my plan anytime?",
|
||||
content: "Yes! You can upgrade or downgrade your plan at any time. Changes take effect at the beginning of your next billing cycle. No cancellation fees or commitments required.",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
title: "Do you offer annual billing discounts?",
|
||||
content: "Yes, we offer 20% off when you choose annual billing. This saves you money while supporting continuous learning. Annual plans auto-renew unless cancelled.",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
title: "What payment methods do you accept?",
|
||||
content: "We accept all major credit cards (Visa, Mastercard, American Express), PayPal, and bank transfers. All payments are processed securely through industry-standard encryption.",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
title: "Is there a free trial available?",
|
||||
content: "Yes! All new users get a 7-day free trial to explore ClassHub. No credit card required to start. After the trial ends, choose a plan that suits your needs.",
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
title: "Can I cancel anytime?",
|
||||
content: "Absolutely! Cancel your subscription anytime with no penalties. Your access continues until the end of your billing period. You can reactivate your account anytime.",
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
title: "Do teacher plans include student access?",
|
||||
content: "Yes, teacher plans include full student plan benefits plus teacher dashboard features. Teach your own classes while accessing other instructors' workshops.",
|
||||
},
|
||||
{
|
||||
id: "7",
|
||||
title: "What if I'm not satisfied?",
|
||||
content: "We offer a 30-day money-back guarantee on all plans. If you're not satisfied, contact our support team for a full refund. No questions asked.",
|
||||
},
|
||||
{
|
||||
id: "8",
|
||||
title: "Are there discounts for organizations?",
|
||||
content: "Yes! We offer custom pricing for teams and organizations. Contact our enterprise sales team at enterprise@classhub.com for volume discounts and dedicated support.",
|
||||
},
|
||||
];
|
||||
|
||||
const socialLinks = [
|
||||
{
|
||||
icon: Twitter,
|
||||
href: "https://twitter.com/classhub",
|
||||
ariaLabel: "Follow ClassHub on Twitter",
|
||||
},
|
||||
{
|
||||
icon: Linkedin,
|
||||
href: "https://linkedin.com/company/classhub",
|
||||
ariaLabel: "Follow ClassHub on LinkedIn",
|
||||
},
|
||||
{
|
||||
icon: Mail,
|
||||
href: "mailto:hello@classhub.com",
|
||||
ariaLabel: "Email ClassHub",
|
||||
},
|
||||
];
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="shift-hover"
|
||||
@@ -139,55 +43,204 @@ export default function PricingPage() {
|
||||
borderRadius="pill"
|
||||
contentWidth="medium"
|
||||
sizing="mediumLarge"
|
||||
background="grid"
|
||||
background="circleGradient"
|
||||
cardStyle="glass-depth"
|
||||
primaryButtonStyle="radial-glow"
|
||||
secondaryButtonStyle="glass"
|
||||
headingFontWeight="light"
|
||||
>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleApple
|
||||
brandName="ClassHub"
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Schedule", id: "/schedule" },
|
||||
{ name: "Pricing", id: "/pricing" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
<NavbarStyleApple brandName="ClassHub" navItems={navItems} />
|
||||
</div>
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBillboardScroll
|
||||
title="Simple, Transparent Pricing"
|
||||
description="Choose the perfect plan for your learning goals. Scale from casual learner to professional educator with flexible pricing that grows with you."
|
||||
tag="Plans for Everyone"
|
||||
tagIcon={Sparkles}
|
||||
background={{ variant: "animated-grid" }}
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-banner-image-showing-a-dive-1773149958687-87f99901.jpg?_wi=1"
|
||||
imageAlt="Professional pricing planning environment"
|
||||
buttons={[
|
||||
{ text: "View All Plans", href: "#pricing" },
|
||||
{ text: "Contact Sales", href: "/contact" },
|
||||
]}
|
||||
tagAnimation="slide-up"
|
||||
buttonAnimation="slide-up"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="pricing-plans" data-section="pricing-plans">
|
||||
<PricingCardOne
|
||||
title="Flexible Pricing Plans"
|
||||
description="Choose the perfect plan for your learning journey. All plans include access to our full catalog of workshops and classes."
|
||||
tag="Affordable Learning"
|
||||
tagIcon={DollarSign}
|
||||
plans={pricingPlans}
|
||||
<div id="features" data-section="features">
|
||||
<FeatureHoverPattern
|
||||
title="What's Included"
|
||||
description="All plans include core platform features with increasing levels of support and access"
|
||||
tag="Plan Comparison"
|
||||
tagIcon={Zap}
|
||||
features={[
|
||||
{
|
||||
icon: Calendar,
|
||||
title: "Access to Content", description: "All plans include access to our full catalog of workshops and classes. Browse, filter, and register for courses that match your interests and schedule."},
|
||||
{
|
||||
icon: Users,
|
||||
title: "Community & Support", description: "Join our learning community with peer forums, discussion groups, and networking opportunities. Support level varies by plan tier."},
|
||||
{
|
||||
icon: Award,
|
||||
title: "Certificates", description: "Earn recognized certificates upon course completion. Paid plans include certificates; free tier includes basic completion badges."},
|
||||
{
|
||||
icon: Lock,
|
||||
title: "Secure Platform", description: "Enterprise-grade security protects your data and learning progress. All plans include SSL encryption and secure authentication."},
|
||||
{
|
||||
icon: BarChart3,
|
||||
title: "Progress Tracking", description: "Monitor your learning journey with progress analytics and personalized recommendations. Premium tiers include advanced analytics."},
|
||||
{
|
||||
icon: Smartphone,
|
||||
title: "Multi-Device Access", description: "Learn on your terms across desktop, tablet, and mobile. Fully responsive platform designed for all devices."},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="pricing-faq" data-section="pricing-faq">
|
||||
<div id="pricing" data-section="pricing">
|
||||
<PricingCardOne
|
||||
title="Our Pricing Plans"
|
||||
description="Choose the plan that fits your learning path. All plans can be upgraded or downgraded anytime."
|
||||
tag="Flexible & Affordable"
|
||||
tagIcon={DollarSign}
|
||||
plans={[
|
||||
{
|
||||
id: "1", badge: "Free", badgeIcon: Sparkles,
|
||||
price: "$0/mo", subtitle: "Start learning", features: [
|
||||
"Browse all courses", "1 free class access", "Community forums", "Basic profile", "Mobile app access"],
|
||||
},
|
||||
{
|
||||
id: "2", badge: "Popular", badgeIcon: Zap,
|
||||
price: "$14.99/mo", subtitle: "Most popular choice", features: [
|
||||
"Unlimited class access", "5 workshops per month", "Email support", "Course certificates", "Priority booking", "Offline access"],
|
||||
},
|
||||
{
|
||||
id: "3", badge: "Professional", badgeIcon: Award,
|
||||
price: "$49.99/mo", subtitle: "For career growth", features: [
|
||||
"Unlimited access", "Priority support", "1-on-1 mentoring", "Custom learning paths", "Career counseling", "Advanced analytics"],
|
||||
},
|
||||
{
|
||||
id: "4", badge: "Educator License", badgeIcon: Users,
|
||||
price: "$99.99/mo", subtitle: "Teach & earn", features: [
|
||||
"Create courses", "Student management", "Revenue dashboard", "Marketing tools", "24/7 support", "API access"],
|
||||
},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialCardOne
|
||||
title="Why Choose ClassHub"
|
||||
description="Real students share what they love about our platform and pricing"
|
||||
tag="Customer Love"
|
||||
tagIcon={Award}
|
||||
testimonials={[
|
||||
{
|
||||
id: "1", name: "Sarah Chen", role: "Software Engineer", company: "Tech Startup", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-wo-1773149958697-b0d1653b.png?_wi=1", imageAlt: "Sarah Chen professional portrait"},
|
||||
{
|
||||
id: "2", name: "Michael Rodriguez", role: "Creative Director", company: "Design Agency", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-ma-1773149960412-c73ce951.png?_wi=1", imageAlt: "Michael Rodriguez professional portrait"},
|
||||
{
|
||||
id: "3", name: "Emily Watson", role: "Marketing Manager", company: "E-Commerce Business", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-young-professio-1773149959161-e0640722.png?_wi=1", imageAlt: "Emily Watson professional portrait"},
|
||||
{
|
||||
id: "4", name: "David Kim", role: "Freelance Developer", company: "Independent", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-ma-1773149958765-b75148e4.png?_wi=1", imageAlt: "David Kim professional portrait"},
|
||||
{
|
||||
id: "5", name: "Jessica Thompson", role: "Product Manager", company: "SaaS Company", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-diverse-profess-1773149958342-9fec15d1.jpg?_wi=1", imageAlt: "Jessica Thompson professional portrait"},
|
||||
{
|
||||
id: "6", name: "James Morrison", role: "Business Consultant", company: "Management Consulting", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-ma-1773149959785-c28fc4c1.png?_wi=1", imageAlt: "James Morrison professional portrait"},
|
||||
]}
|
||||
gridVariant="uniform-all-items-equal"
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="team" data-section="team">
|
||||
<TeamCardFive
|
||||
title="Trusted by Thousands"
|
||||
description="Join students and educators from around the world learning on ClassHub"
|
||||
tag="Our Community"
|
||||
tagIcon={Users}
|
||||
team={[
|
||||
{
|
||||
id: "1", name: "Margaret Johnson", role: "Piano Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-piano-instruc-1773149958833-7e1afaf0.png?_wi=1", imageAlt: "Margaret Johnson piano instructor"},
|
||||
{
|
||||
id: "2", name: "Jessica Lee", role: "Dance Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-dance-instruc-1773149955255-d32fb4cc.jpg?_wi=1", imageAlt: "Jessica Lee dance instructor"},
|
||||
{
|
||||
id: "3", name: "Marcus Williams", role: "Yoga Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-yoga-instruct-1773149958540-4c8fc93c.jpg?_wi=1", imageAlt: "Marcus Williams yoga instructor"},
|
||||
{
|
||||
id: "4", name: "Sofia Rossi", role: "Art Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-an-art-instruct-1773149958976-9ea3327d.png?_wi=1", imageAlt: "Sofia Rossi art instructor"},
|
||||
{
|
||||
id: "5", name: "Ahmed Hassan", role: "Language Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-language-inst-1773149958360-43c50b1b.jpg?_wi=1", imageAlt: "Ahmed Hassan language instructor"},
|
||||
{
|
||||
id: "6", name: "Lisa Anderson", role: "Fitness Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-fitness-instr-1773149958873-1119546c.png?_wi=1", imageAlt: "Lisa Anderson fitness instructor"},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqDouble
|
||||
title="Pricing & Billing Questions"
|
||||
description="Find answers to common questions about our pricing plans, billing, and subscription management"
|
||||
tag="Help & Support"
|
||||
title="Pricing FAQ"
|
||||
description="Common questions about our plans, billing, and account management"
|
||||
tag="Questions Answered"
|
||||
tagIcon={HelpCircle}
|
||||
faqs={faqItems}
|
||||
faqs={[
|
||||
{
|
||||
id: "1", title: "Can I change my plan anytime?", content: "Yes! You can upgrade or downgrade your plan anytime. Changes take effect on your next billing cycle. If you upgrade, you'll get an immediate credit for unused days on your current plan."},
|
||||
{
|
||||
id: "2", title: "What payment methods do you accept?", content: "We accept all major credit cards (Visa, Mastercard, American Express), PayPal, and bank transfers. All payments are processed securely through industry-standard encryption."},
|
||||
{
|
||||
id: "3", title: "Do you offer annual subscriptions?", content: "Yes! Annual subscriptions save you 20% compared to monthly pricing. You can switch to annual billing in your account settings. Annual subscriptions auto-renew each year."},
|
||||
{
|
||||
id: "4", title: "What if I want to cancel my subscription?", content: "You can cancel anytime with no penalties or hidden fees. Cancel through your account settings. You'll retain access until the end of your current billing period."},
|
||||
{
|
||||
id: "5", title: "Do you offer discounts for teams or organizations?", content: "Yes! We offer special volume pricing for teams of 10+ members or organizations. Contact our sales team at sales@classhub.com for a custom quote."},
|
||||
{
|
||||
id: "6", title: "Is there a free trial?", content: "We offer a Free plan with limited features that never expires. You can also try a paid plan for 7 days with a full refund if not satisfied."},
|
||||
{
|
||||
id: "7", title: "What happens if I don't use my monthly booking credits?", content: "Credits are monthly and don't roll over. However, if you upgrade to unlimited access, you'll never need to worry about booking limits."},
|
||||
{
|
||||
id: "8", title: "Are there any hidden fees?", content: "No! Our pricing is completely transparent. The price you see is what you pay—no hidden fees, no surprise charges. Your invoice clearly breaks down what you're paying for."},
|
||||
]}
|
||||
faqsAnimation="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="pricing-footer" data-section="pricing-footer">
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterCard
|
||||
logoText="ClassHub"
|
||||
copyrightText="© 2025 ClassHub. All rights reserved. Empowering learners worldwide."
|
||||
socialLinks={socialLinks}
|
||||
socialLinks={[
|
||||
{
|
||||
icon: Twitter,
|
||||
href: "https://twitter.com/classhub", ariaLabel: "Follow ClassHub on Twitter"},
|
||||
{
|
||||
icon: Linkedin,
|
||||
href: "https://linkedin.com/company/classhub", ariaLabel: "Follow ClassHub on LinkedIn"},
|
||||
{
|
||||
icon: Mail,
|
||||
href: "mailto:hello@classhub.com", ariaLabel: "Email ClassHub"},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
|
||||
215
src/app/register/page.tsx
Normal file
215
src/app/register/page.tsx
Normal file
@@ -0,0 +1,215 @@
|
||||
"use client";
|
||||
|
||||
import Link from "next/link";
|
||||
import { useState } from "react";
|
||||
import NavbarStyleApple from "@/components/navbar/NavbarStyleApple/NavbarStyleApple";
|
||||
import Input from "@/components/form/Input";
|
||||
import ButtonExpandHover from "@/components/button/ButtonExpandHover";
|
||||
import FooterCard from "@/components/sections/footer/FooterCard";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import { Mail, Lock, User, Twitter, Linkedin } from "lucide-react";
|
||||
|
||||
const navItems = [
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Workshops", id: "/workshops" },
|
||||
{ name: "Classes", id: "/classes" },
|
||||
{ name: "Pricing", id: "/pricing" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
];
|
||||
|
||||
export default function RegisterPage() {
|
||||
const [formData, setFormData] = useState({
|
||||
firstName: "", lastName: "", email: "", password: "", confirmPassword: ""});
|
||||
const [loading, setLoading] = useState(false);
|
||||
const [error, setError] = useState("");
|
||||
const [agreeToTerms, setAgreeToTerms] = useState(false);
|
||||
|
||||
const handleChange = (field: string, value: string) => {
|
||||
setFormData((prev) => ({
|
||||
...prev,
|
||||
[field]: value,
|
||||
}));
|
||||
};
|
||||
|
||||
const handleRegister = async (e: React.FormEvent) => {
|
||||
e.preventDefault();
|
||||
setError("");
|
||||
|
||||
if (formData.password !== formData.confirmPassword) {
|
||||
setError("Passwords do not match");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!agreeToTerms) {
|
||||
setError("You must agree to the terms and conditions");
|
||||
return;
|
||||
}
|
||||
|
||||
setLoading(true);
|
||||
try {
|
||||
// Placeholder for registration logic
|
||||
console.log("Registration attempt with:", formData);
|
||||
// Add your registration API call here
|
||||
} catch (err) {
|
||||
setError("Registration failed. Please try again.");
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="shift-hover"
|
||||
defaultTextAnimation="entrance-slide"
|
||||
borderRadius="pill"
|
||||
contentWidth="medium"
|
||||
sizing="mediumLarge"
|
||||
background="circleGradient"
|
||||
cardStyle="glass-depth"
|
||||
primaryButtonStyle="radial-glow"
|
||||
secondaryButtonStyle="glass"
|
||||
headingFontWeight="light"
|
||||
>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleApple brandName="ClassHub" navItems={navItems} />
|
||||
</div>
|
||||
|
||||
<div className="min-h-screen flex items-center justify-center px-4 py-20">
|
||||
<div className="w-full max-w-md">
|
||||
<div className="mb-8 text-center">
|
||||
<h1 className="text-4xl font-bold mb-2">Create Account</h1>
|
||||
<p className="text-foreground/70">Join ClassHub and start learning today</p>
|
||||
</div>
|
||||
|
||||
<form onSubmit={handleRegister} className="space-y-4">
|
||||
{error && (
|
||||
<div className="bg-red-500/10 border border-red-500/20 rounded-lg p-4 text-red-600 text-sm">
|
||||
{error}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
<div>
|
||||
<label className="block text-sm font-medium mb-2">First Name</label>
|
||||
<Input
|
||||
type="text"
|
||||
value={formData.firstName}
|
||||
onChange={(value) => handleChange("firstName", value)}
|
||||
placeholder="John"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-sm font-medium mb-2">Last Name</label>
|
||||
<Input
|
||||
type="text"
|
||||
value={formData.lastName}
|
||||
onChange={(value) => handleChange("lastName", value)}
|
||||
placeholder="Doe"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label className="block text-sm font-medium mb-2">Email Address</label>
|
||||
<Input
|
||||
type="email"
|
||||
value={formData.email}
|
||||
onChange={(value) => handleChange("email", value)}
|
||||
placeholder="you@example.com"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label className="block text-sm font-medium mb-2">Password</label>
|
||||
<Input
|
||||
type="password"
|
||||
value={formData.password}
|
||||
onChange={(value) => handleChange("password", value)}
|
||||
placeholder="Create a strong password"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label className="block text-sm font-medium mb-2">Confirm Password</label>
|
||||
<Input
|
||||
type="password"
|
||||
value={formData.confirmPassword}
|
||||
onChange={(value) => handleChange("confirmPassword", value)}
|
||||
placeholder="Confirm your password"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="flex items-start">
|
||||
<input
|
||||
type="checkbox"
|
||||
id="terms"
|
||||
checked={agreeToTerms}
|
||||
onChange={(e) => setAgreeToTerms(e.target.checked)}
|
||||
className="mt-1 mr-2"
|
||||
/>
|
||||
<label htmlFor="terms" className="text-sm text-foreground/70">
|
||||
I agree to the{" "}
|
||||
<Link href="/terms" className="text-primary-cta hover:underline">
|
||||
Terms of Service
|
||||
</Link>
|
||||
{" "}and{" "}
|
||||
<Link href="/privacy" className="text-primary-cta hover:underline">
|
||||
Privacy Policy
|
||||
</Link>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
disabled={loading}
|
||||
className="w-full bg-primary-cta text-background py-3 rounded-lg font-medium hover:opacity-90 transition disabled:opacity-50 mt-6"
|
||||
>
|
||||
{loading ? "Creating account..." : "Create Account"}
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<div className="mt-6 text-center text-sm">
|
||||
<p className="text-foreground/70">
|
||||
Already have an account?{" "}
|
||||
<Link href="/login" className="text-primary-cta hover:underline font-medium">
|
||||
Sign in here
|
||||
</Link>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="mt-8 pt-8 border-t border-foreground/10">
|
||||
<p className="text-center text-sm text-foreground/50 mb-4">Or sign up with</p>
|
||||
<div className="flex gap-4 justify-center">
|
||||
<button className="flex-1 py-2 px-4 rounded-lg bg-card hover:bg-card/80 transition text-sm font-medium">
|
||||
Google
|
||||
</button>
|
||||
<button className="flex-1 py-2 px-4 rounded-lg bg-card hover:bg-card/80 transition text-sm font-medium">
|
||||
GitHub
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterCard
|
||||
logoText="ClassHub"
|
||||
copyrightText="© 2025 ClassHub. All rights reserved. Empowering learners worldwide."
|
||||
socialLinks={[
|
||||
{
|
||||
icon: Twitter,
|
||||
href: "https://twitter.com/classhub", ariaLabel: "Follow ClassHub on Twitter"},
|
||||
{
|
||||
icon: Linkedin,
|
||||
href: "https://linkedin.com/company/classhub", ariaLabel: "Follow ClassHub on LinkedIn"},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
@@ -1,23 +1,40 @@
|
||||
"use client";
|
||||
|
||||
import Link from "next/link";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleApple from "@/components/navbar/NavbarStyleApple/NavbarStyleApple";
|
||||
import HeroBillboardScroll from "@/components/sections/hero/HeroBillboardScroll";
|
||||
import FeatureHoverPattern from "@/components/sections/feature/featureHoverPattern/FeatureHoverPattern";
|
||||
import TestimonialCardOne from "@/components/sections/testimonial/TestimonialCardOne";
|
||||
import PricingCardOne from "@/components/sections/pricing/PricingCardOne";
|
||||
import TeamCardFive from "@/components/sections/team/TeamCardFive";
|
||||
import FaqDouble from "@/components/sections/faq/FaqDouble";
|
||||
import FooterCard from "@/components/sections/footer/FooterCard";
|
||||
import { Calendar, Users, Lock, BarChart3, Zap, Smartphone, Sparkles, DollarSign, Mail, Twitter, Linkedin } from "lucide-react";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import {
|
||||
Sparkles,
|
||||
Zap,
|
||||
Award,
|
||||
DollarSign,
|
||||
Users,
|
||||
HelpCircle,
|
||||
Calendar,
|
||||
Lock,
|
||||
BarChart3,
|
||||
Smartphone,
|
||||
Twitter,
|
||||
Linkedin,
|
||||
Mail,
|
||||
} from "lucide-react";
|
||||
|
||||
const navItems = [
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Workshops", id: "/workshops" },
|
||||
{ name: "Classes", id: "/classes" },
|
||||
{ name: "Pricing", id: "/pricing" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
];
|
||||
|
||||
export default function WorkshopsPage() {
|
||||
const navItems = [
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Workshops", id: "/workshops" },
|
||||
{ name: "Classes", id: "/classes" },
|
||||
{ name: "Pricing", id: "/pricing" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
];
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="shift-hover"
|
||||
@@ -35,51 +52,49 @@ export default function WorkshopsPage() {
|
||||
<NavbarStyleApple brandName="ClassHub" navItems={navItems} />
|
||||
</div>
|
||||
|
||||
<div id="workshops-hero" data-section="workshops-hero">
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBillboardScroll
|
||||
title="Discover World-Class Workshops"
|
||||
description="Explore our curated selection of workshops taught by certified instructors. From music and dance to technology and business, find the perfect workshop to advance your skills."
|
||||
tag="Expert-Led Learning"
|
||||
title="Discover Expert-Led Workshops"
|
||||
description="Intensive, focused learning experiences designed to master specific skills in a short timeframe. From coding bootcamps to creative masterclasses, find workshops that accelerate your growth."
|
||||
tag="Workshop Catalog"
|
||||
tagIcon={Sparkles}
|
||||
background={{ variant: "animated-grid" }}
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-banner-image-showing-a-dive-1773149958687-87f99901.jpg?_wi=3"
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-banner-image-showing-a-dive-1773149958687-87f99901.jpg?_wi=1"
|
||||
imageAlt="Professional workshop training environment"
|
||||
buttons={[
|
||||
{
|
||||
text: "Browse All Workshops", href: "/workshops"},
|
||||
{
|
||||
text: "View Pricing", href: "/pricing"},
|
||||
{ text: "Browse Workshops", href: "#features" },
|
||||
{ text: "View Pricing", href: "/pricing" },
|
||||
]}
|
||||
tagAnimation="slide-up"
|
||||
buttonAnimation="slide-up"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="workshops-features" data-section="workshops-features">
|
||||
<div id="features" data-section="features">
|
||||
<FeatureHoverPattern
|
||||
title="Workshop Experience"
|
||||
description="Everything you need for a seamless learning experience"
|
||||
tag="Features"
|
||||
title="Workshop Highlights"
|
||||
description="Choose from intensive, project-based learning experiences led by industry experts"
|
||||
tag="What You Get"
|
||||
tagIcon={Zap}
|
||||
features={[
|
||||
{
|
||||
icon: Calendar,
|
||||
title: "Flexible Scheduling", description: "Workshops available at various times throughout the week. Choose what fits your schedule perfectly."},
|
||||
title: "Intensive Schedule", description: "Concentrated learning sessions ranging from half-day to multi-week intensive courses. Structured curriculum designed for rapid skill acquisition."},
|
||||
{
|
||||
icon: Users,
|
||||
title: "Expert Instructors", description: "Learn from certified professionals with years of industry experience. Read instructor bios and reviews."},
|
||||
title: "Small Class Sizes", description: "Limited enrollment ensures personalized attention and hands-on guidance from instructors. Interactive group discussions and peer learning."},
|
||||
{
|
||||
icon: Lock,
|
||||
title: "Secure Enrollment", description: "Safe booking with secure payment processing. Your data is protected with enterprise-grade encryption."},
|
||||
{
|
||||
icon: BarChart3,
|
||||
title: "Real-Time Capacity", description: "See available spots instantly. Automatic confirmation when you book your workshop slot."},
|
||||
icon: Award,
|
||||
title: "Certifications", description: "Earn recognized certificates upon completion. Showcase your achievements on LinkedIn and professional profiles."},
|
||||
{
|
||||
icon: Zap,
|
||||
title: "Live Interaction", description: "Engage directly with instructors and fellow students. Ask questions and network with peers."},
|
||||
title: "Hands-On Projects", description: "Real-world projects and practical exercises. Build a portfolio piece while learning industry best practices."},
|
||||
{
|
||||
icon: Lock,
|
||||
title: "Lifetime Access", description: "Access to workshop materials, recordings, and resources forever. Review content anytime and reinforce your learning."},
|
||||
{
|
||||
icon: Smartphone,
|
||||
title: "Mobile Ready", description: "Book and manage workshops on any device. Full mobile app for on-the-go access."},
|
||||
title: "Hybrid Options", description: "Choose between in-person, online, or hybrid workshop formats. Learn at your preferred location and pace."},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
@@ -87,32 +102,65 @@ export default function WorkshopsPage() {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="workshops-pricing" data-section="workshops-pricing">
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialCardOne
|
||||
title="Workshop Success Stories"
|
||||
description="Real feedback from professionals who advanced their careers through our workshops"
|
||||
tag="Student Transformations"
|
||||
tagIcon={Award}
|
||||
testimonials={[
|
||||
{
|
||||
id: "1", name: "Sarah Chen", role: "Software Engineer", company: "Tech Startup", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-wo-1773149958697-b0d1653b.png?_wi=1", imageAlt: "Sarah Chen professional portrait"},
|
||||
{
|
||||
id: "2", name: "Michael Rodriguez", role: "Creative Director", company: "Design Agency", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-ma-1773149960412-c73ce951.png?_wi=1", imageAlt: "Michael Rodriguez professional portrait"},
|
||||
{
|
||||
id: "3", name: "Emily Watson", role: "Marketing Manager", company: "E-Commerce Business", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-young-professio-1773149959161-e0640722.png?_wi=1", imageAlt: "Emily Watson professional portrait"},
|
||||
{
|
||||
id: "4", name: "David Kim", role: "Freelance Developer", company: "Independent", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-ma-1773149958765-b75148e4.png?_wi=1", imageAlt: "David Kim professional portrait"},
|
||||
{
|
||||
id: "5", name: "Jessica Thompson", role: "Product Manager", company: "SaaS Company", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-diverse-profess-1773149958342-9fec15d1.jpg?_wi=1", imageAlt: "Jessica Thompson professional portrait"},
|
||||
{
|
||||
id: "6", name: "James Morrison", role: "Business Consultant", company: "Management Consulting", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/portrait-photograph-of-a-professional-ma-1773149959785-c28fc4c1.png?_wi=1", imageAlt: "James Morrison professional portrait"},
|
||||
]}
|
||||
gridVariant="uniform-all-items-equal"
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<PricingCardOne
|
||||
title="Choose Your Learning Path"
|
||||
description="Find the perfect plan for your workshop attendance and skill development goals"
|
||||
tag="Pricing Plans"
|
||||
title="Workshop Pricing"
|
||||
description="Choose the perfect workshop plan. All workshops include instructor-led sessions, materials, and lifetime access to recordings."
|
||||
tag="Affordable Learning"
|
||||
tagIcon={DollarSign}
|
||||
plans={[
|
||||
{
|
||||
id: "1", badge: "Popular", badgeIcon: Sparkles,
|
||||
price: "$9.99/mo", subtitle: "Perfect for casual learners", features: [
|
||||
"Access to all workshops", "Book up to 5 workshops per month", "Attendance certificates", "Workshop recordings", "Community forum access"],
|
||||
id: "1", badge: "Starter", badgeIcon: Sparkles,
|
||||
price: "$49/workshop", subtitle: "Single workshop access", features: [
|
||||
"One full-day workshop", "Expert instructor guidance", "Digital course materials", "Certificate of completion", "Lifetime access to recordings"],
|
||||
},
|
||||
{
|
||||
id: "2", badge: "Best Value", badgeIcon: Sparkles,
|
||||
price: "$24.99/mo", subtitle: "Ideal for serious students", features: [
|
||||
"Unlimited workshop bookings", "Priority registration access", "Advanced progress tracking", "1-on-1 instructor consultations", "Exclusive advanced workshops"],
|
||||
id: "2", badge: "Popular", badgeIcon: Zap,
|
||||
price: "$199/series", subtitle: "Multi-workshop series", features: [
|
||||
"4-week intensive series", "Priority instructor support", "Project portfolio building", "Professional certification", "Networking events", "Career guidance sessions"],
|
||||
},
|
||||
{
|
||||
id: "3", badge: "Professional", badgeIcon: Sparkles,
|
||||
price: "$49.99/mo", subtitle: "For career advancement", features: [
|
||||
"Everything in Best Value", "Personalized learning plans", "Career mentorship program", "Certificate with distinction", "Networking events access"],
|
||||
id: "3", badge: "Professional", badgeIcon: Award,
|
||||
price: "$499/quarter", subtitle: "Comprehensive bootcamp", features: [
|
||||
"12-week intensive bootcamp", "One-on-one mentorship", "Career placement support", "Advanced certification", "Private Slack community", "Job interview prep"],
|
||||
},
|
||||
{
|
||||
id: "4", badge: "Instructor", badgeIcon: Users,
|
||||
price: "$99.99/mo", subtitle: "Host your own workshops", features: [
|
||||
"Create and manage workshops", "Student enrollment tools", "Analytics dashboard", "Revenue tracking", "24/7 technical support"],
|
||||
id: "4", badge: "Corporate", badgeIcon: Users,
|
||||
price: "Custom Pricing", subtitle: "Team & enterprise solutions", features: [
|
||||
"Custom workshop design", "On-site or virtual delivery", "Unlimited team access", "Progress tracking dashboard", "Dedicated account manager", "Custom certification"],
|
||||
},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
@@ -121,6 +169,62 @@ export default function WorkshopsPage() {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="team" data-section="team">
|
||||
<TeamCardFive
|
||||
title="Workshop Instructors"
|
||||
description="Learn from industry veterans with proven track records of teaching and mentoring"
|
||||
tag="Expert Educators"
|
||||
tagIcon={Users}
|
||||
team={[
|
||||
{
|
||||
id: "1", name: "Margaret Johnson", role: "Piano Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-piano-instruc-1773149958833-7e1afaf0.png?_wi=1", imageAlt: "Margaret Johnson piano instructor"},
|
||||
{
|
||||
id: "2", name: "Jessica Lee", role: "Dance Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-dance-instruc-1773149955255-d32fb4cc.jpg?_wi=1", imageAlt: "Jessica Lee dance instructor"},
|
||||
{
|
||||
id: "3", name: "Marcus Williams", role: "Yoga Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-yoga-instruct-1773149958540-4c8fc93c.jpg?_wi=1", imageAlt: "Marcus Williams yoga instructor"},
|
||||
{
|
||||
id: "4", name: "Sofia Rossi", role: "Art Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-an-art-instruct-1773149958976-9ea3327d.png?_wi=1", imageAlt: "Sofia Rossi art instructor"},
|
||||
{
|
||||
id: "5", name: "Ahmed Hassan", role: "Language Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-language-inst-1773149958360-43c50b1b.jpg?_wi=1", imageAlt: "Ahmed Hassan language instructor"},
|
||||
{
|
||||
id: "6", name: "Lisa Anderson", role: "Fitness Instructor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AkwR5I869xG7mvZJi1gLiW16GY/professional-portrait-of-a-fitness-instr-1773149958873-1119546c.png?_wi=1", imageAlt: "Lisa Anderson fitness instructor"},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqDouble
|
||||
title="Workshop FAQ"
|
||||
description="Common questions about our workshop programs, enrollment, and learning experience"
|
||||
tag="Help & Support"
|
||||
tagIcon={HelpCircle}
|
||||
faqs={[
|
||||
{
|
||||
id: "1", title: "What is the difference between workshops and classes?", content: "Workshops are intensive, focused learning experiences typically lasting 1-4 weeks with project-based curricula. Classes are ongoing courses that meet regularly throughout a semester. Choose workshops for rapid skill acquisition and classes for deeper, sustained learning."},
|
||||
{
|
||||
id: "2", title: "Do I need prior experience to join a workshop?", content: "Most workshops are designed for intermediate learners, but we offer beginner, intermediate, and advanced levels. Each workshop listing clearly indicates the required skill level. We also offer prerequisite courses if needed."},
|
||||
{
|
||||
id: "3", title: "What is included in the workshop price?", content: "Workshop pricing includes all instructor-led sessions, digital course materials, project resources, and lifetime access to workshop recordings. Depending on the tier, you may also get certification, mentorship, and networking opportunities."},
|
||||
{
|
||||
id: "4", title: "Are workshops offered online or in-person?", content: "We offer hybrid options for most workshops. You can choose between in-person, fully online, or a mix of both. Check individual workshop listings for available formats."},
|
||||
{
|
||||
id: "5", title: "Can I access workshop materials after completion?", content: "Yes! You have lifetime access to all workshop recordings, slides, and digital materials. You can review and refresh your knowledge anytime after the workshop ends."},
|
||||
{
|
||||
id: "6", title: "Do workshops offer professional certification?", content: "Most of our workshops include recognized certifications upon completion. These certificates can be added to your LinkedIn profile and resume to showcase your new skills to employers."},
|
||||
{
|
||||
id: "7", title: "What is your cancellation policy for workshops?", content: "You can cancel up to 7 days before the workshop starts for a full refund. Cancellations within 7 days receive store credit. If we cancel a workshop, you receive a full refund or can transfer to another workshop."},
|
||||
{
|
||||
id: "8", title: "Do you offer group discounts for workshops?", content: "Yes! Groups of 5 or more students receive special pricing. Contact our sales team at sales@classhub.com to discuss custom rates for your group or organization."},
|
||||
]}
|
||||
faqsAnimation="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterCard
|
||||
logoText="ClassHub"
|
||||
|
||||
Reference in New Issue
Block a user