ios changes pending

This commit is contained in:
priyanshuvish
2025-07-17 13:28:29 +05:30
parent cc582d834f
commit 73bcb74426
14 changed files with 1683 additions and 1101 deletions

View File

@@ -1,272 +1,232 @@
import React from "react";
import { motion } from "framer-motion";
import { Card, CardContent } from "./ui/card";
import { ArrowRight, ExternalLink } from "lucide-react";
import { Button } from "./ui/button";
import { Badge } from "./ui/badge";
import { ArrowRight, ExternalLink, TrendingUp, Users, Clock, Star } from "lucide-react";
import { GridPattern } from "./GridPattern";
import { ImageWithFallback } from "./figma/ImageWithFallback";
import { navigateTo } from "../App";
import regroupImage from '../assets/images/regroup.webp';
import seezunImage from '../assets/images/seezun.webp';
// import wokaImage from '../assets/images/woka.webp';
import wokaAwardImage from '../assets/images/woka.webp';
import tanamiImage from '../assets/images/tanami.webp';
// High-quality project images
const regroupImage = "https://images.unsplash.com/photo-1551650975-87deedd944c3?w=600&h=400&fit=crop&auto=format";
const seezunImage = "https://images.unsplash.com/photo-1512941937669-90a1b58e7e9c?w=600&h=400&fit=crop&auto=format";
const wokaAwardImage = "https://images.unsplash.com/photo-1517077304055-6e89abbf09b0?w=600&h=400&fit=crop&auto=format";
const featuredCaseStudy = {
title: "Woka",
description: "Developed Woka as a vibrant platform where learning meets play. With a safe and fun environment to explore, learn, and grow effortlessly.",
achievement: "+300% User Retention",
industryTags: ["Education", "Learning Platform"],
image: wokaAwardImage,
metrics: [
{ label: "Active Users", value: "500K+" },
{ label: "User Retention", value: "+300%" },
{ label: "Learning Hours", value: "+180%" }
]
};
const caseStudies = [
{
id: 1,
title: "Regroup",
subtitle: "Social Networking Revolution",
description: "A comprehensive social platform that connects communities worldwide with advanced messaging, group management, and content sharing capabilities.",
image: regroupImage,
category: "Social Platform",
client: "Regroup Technologies",
duration: "8 months",
teamSize: "12 developers",
technologies: ["React Native", "Node.js", "MongoDB", "WebRTC", "AWS"],
results: [
{ metric: "User Engagement", value: "+240%" },
{ metric: "Active Communities", value: "50K+" },
{ metric: "Daily Messages", value: "2.5M+" }
],
awards: ["Best Social App 2023", "Innovation Award"],
link: "/projects/regroup",
featured: true
},
{
id: 2,
title: "Seezun",
subtitle: "Next-Gen E-commerce Platform",
description: "Revolutionary e-commerce solution with AI-powered recommendations, seamless checkout, and integrated inventory management for modern retailers.",
image: seezunImage,
category: "E-commerce",
client: "Seezun Retail",
duration: "6 months",
teamSize: "8 developers",
technologies: ["React", "Python", "PostgreSQL", "Redis", "Stripe"],
results: [
{ metric: "Conversion Rate", value: "+180%" },
{ metric: "Page Load Speed", value: "2.1s" },
{ metric: "Customer Satisfaction", value: "4.9/5" }
],
awards: ["E-commerce Excellence Award"],
link: "/projects/seezun",
featured: true
description: "Created Seezun as a dynamic customer-driven platform connecting buyers, sellers, and renters for a seamless marketplace that renders fashion accessible, sustainable, and affordable.",
achievement: "+85% Brand Recognition",
industryTags: ["Branding", "Fashion"],
image: seezunImage
},
{
id: 3,
title: "Woka",
subtitle: "Award-Winning Fitness App",
description: "Comprehensive fitness and wellness platform with personalized workout plans, nutrition tracking, and community features that won multiple industry awards.",
image: wokaAwardImage,
category: "Health & Fitness",
client: "Woka Wellness",
duration: "10 months",
teamSize: "15 developers",
technologies: ["Flutter", "Firebase", "TensorFlow", "Apple HealthKit", "Google Fit"],
results: [
{ metric: "User Retention", value: "+320%" },
{ metric: "Workout Completions", value: "1M+" },
{ metric: "App Store Rating", value: "4.8/5" }
],
awards: ["App of the Year 2023", "Health Innovation Award", "User Choice Award"],
link: "/projects/woka",
featured: true
title: "Regroup",
description: "Built Regroup as a social platform that brings together passion, global connections, teamwork, and love for sports through a vibrant online community.",
achievement: "+150% User Engagement",
industryTags: ["Social Media", "Digital Products"],
image: regroupImage
},
{
title: "Tanami",
description: "Revolutionized Tanami Capital into a powerful, intuitive platform that streamlines portfolio management and empowers users to grow their wealth effortlessly.",
achievement: "+200% Portfolio Growth",
industryTags: ["FinTech", "Wealth Management"],
image: tanamiImage
}
];
const SmallCaseStudyCard = ({ study, index }: { study: typeof caseStudies[0]; index: number }) => {
const getNavigationPath = (title: string) => {
switch (title) {
case 'Seezun':
return '/projects/seezun';
case 'Woka':
return '/projects/woka';
case 'Tanami':
return '/projects/tanami';
case 'Regroup':
return '/projects/regroup';
default:
return '/case-studies';
}
};
return (
<motion.div
initial={{ opacity: 0, y: 50 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6, delay: index * 0.1 }}
viewport={{ once: true }}
className="group bg-card rounded-[10px] overflow-hidden hover:bg-card/80 hover:shadow-lg hover:scale-[1.02] transition-all duration-300 cursor-pointer border border-transparent hover:border-border/50"
onClick={() => navigateTo(getNavigationPath(study.title))}
>
<div className="relative aspect-[4/3] overflow-hidden bg-muted/30 px-2 rounded-[10px]">
<ImageWithFallback
src={study.image}
alt={
study.title === "Seezun" ? "Seezun fashion marketplace app banner showcasing mobile shopping experience" :
study.title === "Woka" ? "Woka learning platform banner showcasing educational mobile app features" :
study.title === "Tanami" ? "Tanami Capital financial platform banner showcasing investment portfolio management" :
study.title === "Regroup" ? "Regroup mobile app banner showcasing sports networking features" :
study.title
}
className={`w-full h-full ${["Seezun", "Woka", "Tanami", "Regroup"].includes(study.title) ? "object-contain" : "object-cover"} object-center ${["Seezun", "Woka", "Tanami", "Regroup"].includes(study.title) ? "group-hover:scale-[1.02]" : "group-hover:scale-105"} transition-transform duration-500 rounded-[10px]`}
/>
<div className="absolute top-4 left-4 z-10">
<span className="px-3 py-1 bg-accent text-accent-foreground text-sm font-medium rounded-[10px]">
{study.achievement}
</span>
</div>
</div>
<div className="p-6">
<h3 className="text-xl font-semibold text-foreground mb-3 group-hover:text-accent transition-colors duration-300">
{study.title}
</h3>
<p className="text-muted-foreground text-sm mb-4 leading-relaxed">
{study.description}
</p>
<div className="flex flex-wrap gap-2 mb-4">
{study.industryTags.map((tag) => (
<span
key={tag}
className="px-3 py-1 bg-muted text-muted-foreground text-xs rounded-[10px]"
>
{tag}
</span>
))}
</div>
<button
className="text-accent text-sm font-medium hover:text-foreground transition-colors duration-300 flex items-center gap-2 group-hover:translate-x-1 transition-transform duration-300"
onClick={(e) => {
e.stopPropagation();
navigateTo(getNavigationPath(study.title));
}}
>
View Case Study <ArrowRight className="w-4 h-4" />
</button>
</div>
</motion.div>
);
};
export const CaseStudyHighlight = () => {
return (
<section className="py-32 bg-background">
<div className="container mx-auto px-6 lg:px-8">
{/* Section Header */}
<section className="relative py-20 bg-background overflow-hidden">
<GridPattern strokeDasharray="4 2" />
<div className="relative z-10 container mx-auto px-6 lg:px-8">
<motion.div
initial={{ opacity: 0, y: 30 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8 }}
viewport={{ once: true }}
className="text-center mb-20"
className="text-center mb-16"
>
<Badge variant="outline" className="mb-6 border-accent/20 text-accent">
Featured Work
</Badge>
<h2 className="text-4xl lg:text-5xl font-semibold text-foreground mb-6">
Success Stories That <span className="text-accent">Define Excellence</span>
<h2 className="text-3xl lg:text-4xl font-semibold text-foreground mb-4">
See What We've Built
</h2>
<p className="text-xl text-muted-foreground max-w-3xl mx-auto leading-relaxed">
Explore our award-winning projects that have transformed businesses and delighted millions of users worldwide.
<p className="text-muted-foreground text-lg max-w-2xl mx-auto">
Real results from real projects. Here's how we've helped companies scale their digital products.
</p>
</motion.div>
{/* Featured Case Studies Grid */}
<div className="grid lg:grid-cols-3 gap-8 mb-16">
<motion.div
initial={{ opacity: 0, y: 50 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8 }}
viewport={{ once: true }}
className="bg-card rounded-[10px] overflow-hidden mb-12 group cursor-pointer hover:bg-card/80 hover:shadow-xl hover:scale-[1.01] transition-all duration-300 border border-transparent hover:border-accent/20"
onClick={() => navigateTo('/projects/woka')}
>
<div className="grid lg:grid-cols-3 gap-0">
<div className="lg:col-span-2 relative aspect-[16/10] sm:aspect-[16/9] overflow-hidden bg-muted/30 px-2 rounded-[10px]">
<ImageWithFallback
src={featuredCaseStudy.image}
alt="Woka educational platform mobile app interface with award recognition and interactive learning features for children"
className="w-full h-full object-contain object-center group-hover:scale-[1.02] transition-transform duration-700 rounded-[10px]"
/>
<div className="absolute top-6 left-6 z-10">
<span className="px-4 py-2 bg-accent text-accent-foreground font-semibold rounded-[10px]">
{featuredCaseStudy.achievement}
</span>
</div>
</div>
<div className="p-8 lg:p-12 flex flex-col justify-center">
<h3 className="text-3xl lg:text-4xl font-semibold text-foreground mb-6 group-hover:text-accent transition-colors duration-300">
{featuredCaseStudy.title}
</h3>
<p className="text-muted-foreground mb-8 leading-relaxed">
{featuredCaseStudy.description}
</p>
<div className="space-y-4 mb-8">
{featuredCaseStudy.metrics.map((metric) => (
<div key={metric.label} className="flex justify-between items-center">
<span className="text-muted-foreground text-sm">{metric.label}</span>
<span className="text-foreground font-semibold">{metric.value}</span>
</div>
))}
</div>
<div className="flex flex-wrap gap-2 mb-8">
{featuredCaseStudy.industryTags.map((tag) => (
<span
key={tag}
className="px-3 py-1 bg-muted text-muted-foreground text-sm rounded-[10px]"
>
{tag}
</span>
))}
</div>
<button
className="text-accent font-medium hover:text-foreground transition-colors duration-300 flex items-center gap-3 group-hover:translate-x-2 transition-transform duration-300"
onClick={(e) => {
e.stopPropagation();
navigateTo('/projects/woka');
}}
>
View Full Case Study <ArrowRight className="w-5 h-5" />
</button>
</div>
</div>
</motion.div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8 mb-12">
{caseStudies.map((study, index) => (
<motion.div
key={study.id}
initial={{ opacity: 0, y: 40 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8, delay: index * 0.2 }}
viewport={{ once: true }}
whileHover={{ y: -8, scale: 1.02 }}
className="group cursor-pointer"
onClick={() => navigateTo(study.link)}
>
<Card className="bg-card/50 backdrop-blur-md border-white/10 hover:border-accent/30 transition-all duration-500 shadow-lg hover:shadow-2xl hover:shadow-accent/10 rounded-2xl overflow-hidden h-full">
<CardContent className="p-0 flex flex-col h-full">
{/* Image Header */}
<div className="relative overflow-hidden">
<ImageWithFallback
src={study.image}
alt={study.title}
className="w-full h-64 object-cover transition-transform duration-500 group-hover:scale-110"
/>
<div className="absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent" />
{/* Category Badge */}
<div className="absolute top-4 left-4">
<Badge className="bg-accent/90 text-white border-0">
{study.category}
</Badge>
</div>
{/* Awards */}
{study.awards.length > 0 && (
<div className="absolute top-4 right-4">
<div className="bg-amber-500/90 text-white px-3 py-1 rounded-full text-xs font-medium flex items-center gap-1">
<Star className="w-3 h-3 fill-current" />
Award Winner
</div>
</div>
)}
{/* Project Title Overlay */}
<div className="absolute bottom-4 left-4 right-4">
<h3 className="text-2xl font-bold text-white mb-1">
{study.title}
</h3>
<p className="text-white/80 text-sm">
{study.subtitle}
</p>
</div>
</div>
{/* Content */}
<div className="p-8 flex-1 flex flex-col">
<p className="text-muted-foreground leading-relaxed mb-6 flex-1">
{study.description}
</p>
{/* Key Metrics */}
<div className="grid grid-cols-3 gap-4 mb-6 p-4 bg-accent/5 rounded-lg border border-accent/10">
{study.results.slice(0, 3).map((result, idx) => (
<div key={idx} className="text-center">
<div className="text-lg font-bold text-accent">
{result.value}
</div>
<div className="text-xs text-muted-foreground">
{result.metric}
</div>
</div>
))}
</div>
{/* Technologies */}
<div className="mb-6">
<p className="text-sm font-medium text-foreground mb-2">Technologies:</p>
<div className="flex flex-wrap gap-2">
{study.technologies.slice(0, 3).map((tech) => (
<Badge key={tech} variant="secondary" className="text-xs bg-muted/50">
{tech}
</Badge>
))}
{study.technologies.length > 3 && (
<Badge variant="secondary" className="text-xs bg-muted/50">
+{study.technologies.length - 3} more
</Badge>
)}
</div>
</div>
{/* Project Details */}
<div className="grid grid-cols-2 gap-4 mb-6 text-sm">
<div className="flex items-center gap-2 text-muted-foreground">
<Clock className="w-4 h-4" />
{study.duration}
</div>
<div className="flex items-center gap-2 text-muted-foreground">
<Users className="w-4 h-4" />
{study.teamSize}
</div>
</div>
{/* Awards List */}
{study.awards.length > 0 && (
<div className="mb-6">
<p className="text-sm font-medium text-foreground mb-2">Awards:</p>
<div className="space-y-1">
{study.awards.slice(0, 2).map((award, idx) => (
<div key={idx} className="flex items-center gap-2 text-sm text-amber-600">
<Star className="w-3 h-3 fill-current" />
{award}
</div>
))}
</div>
</div>
)}
{/* CTA Button */}
<Button
variant="ghost"
className="w-full justify-between text-accent hover:text-accent hover:bg-accent/10 group-hover:translate-x-1 transition-all duration-300 mt-auto"
onClick={(e) => {
e.stopPropagation();
navigateTo(study.link);
}}
>
<span>View Case Study</span>
<ArrowRight className="w-4 h-4" />
</Button>
</div>
</CardContent>
</Card>
</motion.div>
<SmallCaseStudyCard key={study.title} study={study} index={index} />
))}
</div>
{/* Call-to-Action */}
<motion.div
initial={{ opacity: 0, y: 30 }}
initial={{ opacity: 0, y: 20 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8, delay: 0.6 }}
transition={{ duration: 0.6, delay: 0.8 }}
viewport={{ once: true }}
className="text-center"
>
<div className="bg-gradient-to-r from-accent/10 via-accent/5 to-accent/10 rounded-2xl p-8 border border-accent/20">
<h3 className="text-2xl font-semibold text-foreground mb-4">
Ready to Create Your Success Story?
</h3>
<p className="text-muted-foreground mb-6 max-w-2xl mx-auto">
Join the ranks of industry leaders who have transformed their businesses with our innovative solutions.
</p>
<div className="flex flex-col sm:flex-row gap-4 justify-center">
<Button
size="lg"
className="bg-accent hover:bg-accent/90 text-white"
onClick={() => navigateTo("/case-studies")}
>
View All Case Studies
<ExternalLink className="w-4 h-4 ml-2" />
</Button>
<Button
size="lg"
variant="outline"
onClick={() => navigateTo("/start-a-project")}
>
Start Your Project
<ArrowRight className="w-4 h-4 ml-2" />
</Button>
</div>
</div>
<Button
onClick={() => navigateTo('/case-studies')}
className="bg-accent hover:bg-accent/90 text-accent-foreground px-8 py-3 rounded-[10px]"
>
View All Case Studies <ExternalLink className="w-4 h-4 ml-2" />
</Button>
</motion.div>
</div>
</section>