A modern, interactive event website built for Cloud Native Durgapur's Code for Change 2.0 hackathon. Features stunning animations, glassmorphism design, and seamless user experience.
Live Demo โข Report Bug โข Request Feature
- Overview
- Features
- Tech Stack
- Getting Started
- Project Structure
- Components Documentation
- Customization Guide
- Deployment
- Performance
- Contributing
- Roadmap
- License
- Contact
Code for Change 2.0 is a fully-featured event website showcasing modern web development practices. Built with Next.js 15 and React 19, it features:
- 8 Interactive Sections: Hero, About, Venue, Mentors/Judges, Sponsors, Community Partners, Testimonials, and FAQs
- Dedicated Team Page: Showcase organizers and core team members
- Advanced Animations: WebGL Aurora effects, infinite scrolling, and smooth transitions
- Mobile-First Design: Fully responsive across all devices
- Optimized Performance: Fast loading times with Next.js optimization
- Multi-layered Animated Background: Gradient animations with wave decorations and Aurora effects
- Glassmorphism UI: Modern frosted glass aesthetic with backdrop blur
- Smooth Scrolling: Seamless navigation between sections with scroll-based animations
- Responsive Layout: Mobile-first design optimized for all screen sizes
- Custom Typography: Michroma for headings, Geist Sans for body text
| Component | Description | Key Features |
|---|---|---|
| FocusCard | Cards with selective focus | Blur non-hovered items, "COMING SOON" watermark |
| InfiniteMovingCards | Auto-scrolling galleries | Configurable speed/direction, pause on hover |
| HoverEffect | Enhanced hover animations | Scale effects, shadows, glassmorphism |
| ProfileCard | Team member showcase | Tilt effects, social links, status display |
| Dock | macOS-style navigation | Icon magnification, smooth animations |
| Aurora | WebGL background | Customizable colors, wave effects |
-
Hero Section ๐ฏ
- Eye-catching landing with animated background
- Event title with gradient text effects
- Call-to-action buttons
-
About Section ๐
- Event description and objectives
- Auto-scrolling photo gallery
- Key highlights and details
-
Venue Section ๐
- Location information
- Embedded map integration
- Venue highlights
-
Mentors & Judges ๐ฅ
- Showcase industry experts
- Focus card layout with profiles
- "Coming Soon" placeholder support
-
Sponsors Section ๐
- Tiered display (Platinum, Gold, Silver)
- Hover effects on sponsor cards
- Responsive grid layout
-
Community Partners ๐ค
- Partner organizations showcase
- Logo grid with hover effects
-
Testimonials ๐ฌ
- Infinite scrolling testimonials
- Past participant feedback
- Smooth animations
-
Team Page ๐จโ๐ป
- Dedicated page for organizers
- Profile cards with tilt effects
- Role-based categorization
-
FAQs โ
- Accordion-style questions
- Smooth expand/collapse animations
- Easy-to-scan format
- Next.js Image optimization for 50%+ faster loading
- Font optimization with
next/font(zero layout shift) - Lazy loading for images and heavy components
- GPU-accelerated animations with Framer Motion
- CSS-based background animations for better performance
- Code splitting for optimal bundle sizes
| Technology | Version | Purpose |
|---|---|---|
| Next.js | 15.0.4 | React framework with App Router |
| React | 19.1.1 | UI library with concurrent features |
| React DOM | 19.1.1 | React rendering engine |
| Technology | Version | Purpose |
|---|---|---|
| Tailwind CSS | 4.0 | Utility-first CSS framework |
| @tailwindcss/postcss | 4.0 | PostCSS plugin for Tailwind |
| Custom CSS | - | Additional animations and effects |
| Technology | Version | Purpose |
|---|---|---|
| Motion | 12.23.12 | Framer Motion for React animations |
| OGL | 1.0.11 | WebGL library for Aurora effects |
| Technology | Version | Purpose |
|---|---|---|
| ESLint | 9.x | Code linting and quality |
| eslint-config-next | Latest | Next.js ESLint rules |
- Geist Sans - Primary sans-serif font
- Geist Mono - Monospace font for code
- Michroma - Display font for headings
Ensure you have the following installed:
-
Clone the repository
git clone https://github.com/CNCF-DURGAPUR/codeforchange2.0.git cd codeforchange2.0 -
Install dependencies
npm install # or yarn install # or pnpm install # or bun install
-
Run the development server
npm run dev # or yarn dev # or pnpm dev # or bun dev
-
Open your browser
Navigate to http://localhost:3000 to see the application.
| Command | Description |
|---|---|
npm run dev |
Start development server at localhost:3000 |
npm run build |
Create optimized production build |
npm run start |
Start production server |
npm run lint |
Run ESLint for code quality checks |
codeforchange2.0/
โ
โโโ public/ # Static assets
โ โโโ LOGO__1_-removebg-preview.png # Main logo
โ โโโ waves-DawnI9IY.png # Wave decoration
โ โโโ bridge-transparent-background...png # Bridge image
โ โโโ icon.svg # Favicon
โ
โโโ src/
โ โโโ app/ # Next.js App Router
โ โ โ
โ โ โโโ components/ # Shared components
โ โ โ โโโ Aurora.js # WebGL Aurora background
โ โ โ โโโ Aurora.css # Aurora styles
โ โ โ
โ โ โโโ team/ # Team page route
โ โ โ โโโ page.js # Team page component
โ โ โ โโโ loading.js # Loading state
โ โ โ
โ โ โโโ AppClientBoot.js # Client-side initialization
โ โ โโโ Dock.js # macOS-style dock component
โ โ โโโ Dock.css # Dock styles
โ โ โโโ ProfileCard.js # Team member card component
โ โ โโโ ProfileCard.css # ProfileCard styles
โ โ โโโ globals.css # Global styles & animations
โ โ โโโ layout.js # Root layout (fonts, metadata)
โ โ โโโ manifest.js # PWA manifest configuration
โ โ โโโ page.js # Homepage (main landing)
โ โ
โ โโโ ui/ # Reusable UI components
โ โโโ card-hover-effect.jsx # Hover effect cards
โ โโโ focus-card.jsx # Focus effect cards
โ โโโ infinite-moving-cards.jsx # Infinite scroll cards
โ
โโโ .eslintrc.json # ESLint configuration
โโโ eslint.config.mjs # ESLint config (ESM)
โโโ next.config.mjs # Next.js configuration
โโโ package.json # Dependencies & scripts
โโโ postcss.config.mjs # PostCSS configuration
โโโ README.md # This file
public/: Static files served directly (images, icons)src/app/: Next.js App Router pages and layoutssrc/app/components/: Shared components used across pagessrc/ui/: Reusable UI components and utilitiessrc/app/team/: Team page with dedicated route
Interactive card grid with selective focus effect.
{
cards: Array<{ description: string }>, // Card data
columns?: 3 | 4 // Grid columns (default: 3)
}- Blurs non-hovered cards for focus
- "COMING SOON" animated watermark
- Light blue background (
bg-blue-100) - Responsive grid layout
- Smooth hover transitions
<FocusCard
cards={[
{ description: "Mentor - AI & Machine Learning" },
{ description: "Judge - Cloud Native Technologies" },
{ description: "Mentor - Full Stack Development" },
]}
columns={3}
/>Auto-scrolling card carousel for testimonials and galleries.
{
items: Array<any>, // Items to display
direction?: "left" | "right", // Scroll direction (default: "left")
speed?: "slow" | "normal" | "fast", // Animation speed (default: "normal")
pauseOnHover?: boolean // Pause on hover (default: true)
}- Seamless infinite loop animation
- Configurable speed and direction
- Supports both content and quote cards
- Pause animation on hover
- Smooth GPU-accelerated animations
<InfiniteMovingCards
items={testimonials}
direction="left"
speed="slow"
pauseOnHover={true}
/>Grid of cards with enhanced hover animations.
{
items: Array<{
title: string,
description: string,
link?: string
}>,
className?: string // Additional CSS classes
}- Glassmorphism design with backdrop blur
- Scale and shadow effects on hover
- Optional link support (Next.js Link)
- Responsive grid layout
- Smooth transitions
<HoverEffect
items={[
{
title: "Web Development Workshop",
description: "Learn modern web technologies",
link: "/workshops/web-dev"
},
{
title: "AI/ML Session",
description: "Introduction to machine learning",
}
]}
className="max-w-5xl mx-auto"
/>Team member profile cards with 3D tilt effect.
{
name: string, // Member name
title: string, // Role/title
handle: string, // Social media handle
status: string, // Status message
avatarUrl: string, // Avatar image URL
showUserInfo?: boolean, // Show user info (default: true)
enableTilt?: boolean, // Enable tilt effect (default: true)
enableMobileTilt?: boolean // Enable on mobile (default: false)
}- 3D tilt effect on mouse/touch movement
- Responsive design
- Social media integration
- Custom avatar support
- Status indicator
<ProfileCard
name="John Doe"
title="Lead Organizer"
handle="@johndoe"
status="Building amazing events"
avatarUrl="/avatars/john.jpg"
enableTilt={true}
/>macOS-style dock navigation with icon magnification.
- Icon magnification on hover
- Smooth spring animations
- Customizable icons and links
- Tooltip support
- Responsive behavior
Edit icon array in Dock.js:
const icons = [
{ icon: HomeIcon, label: "Home", href: "/" },
{ icon: UsersIcon, label: "Team", href: "/team" },
// Add more icons...
];WebGL-powered animated background with gradient waves.
{
colorStops?: string[], // Array of hex colors
amplitude?: number, // Wave amplitude (default: 320)
blend?: number // Blend intensity (default: 1)
}- GPU-accelerated WebGL rendering
- Customizable color gradients
- Wave amplitude control
- Blend mode effects
- Performance optimized
<Aurora
colorStops={["#3b82f6", "#8b5cf6", "#ec4899"]}
amplitude={280}
blend={0.8}
/>The project uses a blue-centric color scheme. Update colors in components:
// Primary Colors
bg-blue-900 // Dark backgrounds
bg-blue-800 // Headers
bg-blue-600 // Primary buttons
// Accent Colors
bg-blue-500 // Highlights
bg-blue-400 // Secondary elements
bg-blue-300 // Borders
// Light Backgrounds
bg-blue-100 // Card backgrounds
bg-blue-50 // Subtle backgroundsTo change the entire color scheme:
- Find and replace color classes in components
- Update Aurora color stops in
page.js - Modify gradient backgrounds in
globals.css
Fonts are configured in src/app/layout.js:
// Import custom fonts
import { Michroma } from "next/font/google";
import localFont from "next/font/local";
const michroma = Michroma({
weight: "400",
subsets: ["latin"],
variable: "--font-michroma",
});
const geistSans = localFont({
src: "./fonts/GeistVF.woff",
variable: "--font-geist-sans",
});To change fonts:
- Import new font in
layout.js - Add CSS variable
- Update Tailwind config to use new variable
- Apply throughout components
Replace images in public/ directory:
| File | Purpose | Recommended Size |
|---|---|---|
LOGO__1_-removebg-preview.png |
Main logo | 500ร500px, PNG with transparency |
waves-DawnI9IY.png |
Wave decoration | 1920ร1080px, PNG |
bridge-transparent-background...png |
Bridge image | 1200ร800px, PNG with transparency |
icon.svg |
Favicon | 32ร32px, SVG |
For external images (Unsplash), update next.config.mjs:
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'images.unsplash.com',
},
{
protocol: 'https',
hostname: 'your-cdn.com', // Add your CDN
},
],
}- Hero section text and CTA buttons
- About section description
- Venue information
- Sponsor tiers and logos
- FAQ items
- Team member profiles
- Roles and categories
- Social media links
export const metadata = {
title: "Your Event Name",
description: "Your event description",
// Update other metadata fields
};Adjust animation durations in component files:
// InfiniteMovingCards speed
speed === "fast" ? "20s" : speed === "normal" ? "40s" : "80s"
// Hover effects
transition={{ duration: 0.3 }} // Adjust duration
// Scroll animations
initial={{ opacity: 0, y: 50 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8 }}Vercel is the easiest way to deploy Next.js applications:
-
Push code to GitHub
git add . git commit -m "Ready for deployment" git push origin main
-
Deploy on Vercel
- Visit vercel.com/new
- Import your GitHub repository
- Vercel auto-detects Next.js configuration
- Click "Deploy"
-
Custom Domain (Optional)
- Go to Project Settings โ Domains
- Add your custom domain
- Update DNS records
npm run build
# Drag and drop .next folder to Netlify# Connect GitHub repository to Railway
# Set build command: npm run build
# Set start command: npm run start# Connect repository in AWS Console
# Use default Next.js build settingsFROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]Build and run:
docker build -t codeforchange .
docker run -p 3000:3000 codeforchangeIf you add environment variables, create .env.local:
NEXT_PUBLIC_API_URL=https://api.example.com
NEXT_PUBLIC_ANALYTICS_ID=your-analytics-idAdd to Vercel:
- Project Settings โ Environment Variables
- Add each variable
- Redeploy
| Technique | Implementation | Impact |
|---|---|---|
| Image Optimization | Next.js <Image> component |
50%+ smaller images |
| Font Optimization | next/font with subsetting |
Zero layout shift |
| Code Splitting | Automatic with App Router | Faster initial load |
| Lazy Loading | Images and heavy components | Better FCP/LCP scores |
| GPU Acceleration | CSS transforms, Framer Motion | Smooth 60fps animations |
| Preloading | Critical assets preloaded | Reduced time to interactive |
- Performance: 90+
- Accessibility: 95+
- Best Practices: 95+
- SEO: 100
-
Optimize images before uploading
- Use WebP format
- Compress with tools like TinyPNG
- Provide appropriate dimensions
-
Minimize bundle size
npm run build # Check bundle size in output -
Use React DevTools Profiler
- Identify slow components
- Optimize re-renders
-
Enable compression (handled by Vercel automatically)
We welcome contributions from the community! Here's how you can help:
-
Fork the repository
# Click "Fork" button on GitHub -
Clone your fork
git clone https://github.com/YOUR_USERNAME/codeforchange2.0.git cd codeforchange2.0 -
Create a feature branch
git checkout -b feature/amazing-feature
-
Make your changes
- Write clean, readable code
- Follow existing code style
- Add comments where necessary
-
Test your changes
npm run dev npm run build # Ensure production build works npm run lint # Check for linting errors
-
Commit with meaningful messages
git commit -m "feat: add amazing feature" -
Push to your fork
git push origin feature/amazing-feature
-
Open a Pull Request
- Go to original repository
- Click "New Pull Request"
- Describe your changes
- Link any related issues
- Code Style: Follow existing patterns and conventions
- Commit Messages: Use conventional commits (feat, fix, docs, style, refactor, test, chore)
- Testing: Test on multiple browsers and screen sizes
- Documentation: Update README if adding new features
- Responsive: Ensure changes work on mobile devices
- ๐ Bug fixes
- โจ New features
- ๐ Documentation improvements
- ๐จ UI/UX enhancements
- โฟ Accessibility improvements
- ๐ Internationalization (i18n)
- โก Performance optimizations
- Homepage with all sections
- Team page
- Responsive design
- Animation system
- Component library
- Dark mode support with theme toggle
- Registration form with validation
- Event schedule section with timeline
- Live event updates with real-time data
- Email notifications for registrations
- Admin dashboard for content management
- Backend API integration (Next.js API routes)
- User authentication (OAuth, email/password)
- Real-time chat for participants
- Project submission portal
- Live leaderboard during event
- Photo gallery from event
- Blog/news section
- Internationalization (i18n) support
- PWA features (offline support, push notifications)
- Advanced analytics dashboard
- Social media integration
- Video streaming integration
- Certificates generation and download
This project is part of the Cloud Native Durgapur community initiative.
License: Open source (specify license type if applicable)
- Next.js by Vercel - The React Framework
- Tailwind CSS - Utility-first CSS framework
- Framer Motion - Animation library
- Vercel - Hosting and deployment platform
- Aceternity UI - Component inspiration
- Unsplash - High-quality images
- Next.js documentation and examples
- React documentation and patterns
Special thanks to Cloud Native Durgapur community members and contributors.
- ๐ Website: codeforchange2.0
- ๐ป GitHub: @CNCF-DURGAPUR
- ๐ง Email: [email protected] (update with actual email)
- ๐ฆ Twitter: @CNCFDurgapur (update with actual handle)
- ๐ฌ Discord: Join our community (update with actual link)
- Lead Developer: Your Name
- Design Lead: Designer Name
Made with โค๏ธ by Cloud Native Durgapur Community