Skip to content

TrainWithShubham/community-website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

59 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ TrainWithShubham Community Hub

Empowering DevOps Engineers, Cloud Practitioners & DevSecOps Enthusiasts

Live Site GitHub Pages Next.js TypeScript Tailwind CSS

A modern, fully static Next.js platform for community learning through real-world projects, events, and collaborative growth.

🌟 Features β€’ πŸ—οΈ Architecture β€’ πŸš€ Quick Start β€’ 🀝 Contributing β€’ πŸ“š Documentation


✨ Features

🎯 Core Capabilities

πŸ“… Events

Community calendar powered by Google Calendar integration

  • Real-time event synchronization
  • Automated hourly updates
  • Responsive event cards with details

πŸ† Community Heroes

Recognition program celebrating top contributors

  • Three-tier achievement system
  • Hero profiles with social links
  • Filterable by tier level

πŸ’Ό Projects

GitHub-powered project catalog with live metadata

  • ⭐ Stars, forks, and topic tags
  • πŸ“– Integrated README viewer
  • πŸ” Searchable by difficulty and tech stack

πŸ’‘ Interview Questions

Comprehensive Q&A for DevOps/Cloud interviews

  • ⚑ Client-side fuzzy search (Fuse.js)
  • πŸ“‘ Paginated browsing
  • 🎯 Curated by community experts

πŸ’Ό Jobs Board

Community-driven job opportunities

  • Latest DevOps/Cloud positions
  • Terminal-style animations
  • Direct application links

🎨 Modern UI/UX

Beautiful, accessible interface

  • πŸŒ“ Dark/Light mode support
  • πŸ“± Fully responsive design
  • β™Ώ WCAG accessibility compliant

🎯 Technical Highlights

  • πŸš€ Zero Hosting Cost - Deployed to GitHub Pages with automated builds
  • ⚑ Lightning Fast - Fully static site generation, no server required
  • πŸ”„ Auto-Updates - Hourly rebuilds fetch fresh data automatically
  • πŸ” Smart Search - Client-side fuzzy search with Fuse.js
  • πŸ“¦ Optimized Bundles - 30%+ size reduction through code splitting
  • πŸ§ͺ Test Coverage - Property-based testing with fast-check
  • 🎨 Component Library - Shadcn/ui with Radix UI primitives
  • πŸ”’ Type Safety - Strict TypeScript with Zod validation

πŸ—οΈ Architecture

Tech Stack

graph TB
    A[Next.js 15 App Router] --> B[Static Site Generation]
    B --> C[GitHub Pages CDN]
    D[Google Sheets API] --> B
    E[GitHub API] --> B
    F[Client-Side Search] --> G[Fuse.js]
    H[UI Components] --> I[Shadcn/ui + Radix]
    J[Styling] --> K[Tailwind CSS]
    L[Testing] --> M[Vitest + fast-check]
Loading

Project Structure

src/
β”œβ”€β”€ app/                    # Next.js App Router (pages + layouts)
β”‚   β”œβ”€β”€ events/            # Community events calendar
β”‚   β”œβ”€β”€ heroes/            # Community heroes recognition
β”‚   β”œβ”€β”€ projects/          # Project catalog with GitHub integration
β”‚   β”œβ”€β”€ interview-questions/ # DevOps/Cloud Q&A
β”‚   └── jobs/              # Job board
β”œβ”€β”€ components/            # Shared UI components
β”‚   β”œβ”€β”€ ui/               # Shadcn/ui components (40+ components)
β”‚   β”œβ”€β”€ layout/           # Navbar, Footer, layouts
β”‚   └── heroes/           # Hero-specific components
β”œβ”€β”€ features/             # Feature-based modules
β”‚   └── projects/         # Project listing logic
β”œβ”€β”€ lib/                  # Core utilities
β”‚   β”œβ”€β”€ client-search.ts  # Fuse.js wrapper
β”‚   β”œβ”€β”€ data-fetcher.ts   # Build-time data fetching
β”‚   └── utils.ts          # Shared utilities
β”œβ”€β”€ services/             # External service wrappers
β”‚   └── google-sheets.ts  # Google Sheets CSV fetching
└── data/                 # Type definitions & static data

Data Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Build Time (GitHub Actions)               β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  1. Trigger (Push/Cron/Manual)                              β”‚
β”‚  2. Fetch Google Sheets CSV data                            β”‚
β”‚  3. Fetch GitHub API metadata (stars, forks, topics)        β”‚
β”‚  4. Generate static HTML/CSS/JS                             β”‚
β”‚  5. Deploy to GitHub Pages CDN                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Runtime (Browser)                         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β€’ Static assets served from CDN                            β”‚
β”‚  β€’ Client-side search with Fuse.js                          β”‚
β”‚  β€’ Theme toggle (dark/light mode)                           β”‚
β”‚  β€’ No server-side processing required                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

  • Node.js 20+ and npm
  • Git

Installation

# Clone the repository
git clone https://github.com/TrainWithShubham/community-website.git
cd community-website

# Install dependencies
npm install

# Start development server
npm run dev

Visit http://localhost:3000 to see the site in action! πŸŽ‰

Available Scripts

# Development
npm run dev              # Start dev server with Turbopack
npm run build            # Production build (static export)
npm run lint             # Run ESLint
npm run typecheck        # TypeScript type checking

# Testing
npm run test             # Run all tests
npm run test:watch       # Run tests in watch mode
npm run test:ui          # Open Vitest UI

# Commits (Conventional Commits)
npm run commit           # Interactive commit prompt
npm run lint:commits     # Validate commit messages

# Utilities
npm run env:check        # Validate environment variables
npm run test:sheets      # Test Google Sheets connection

🀝 Contributing

We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.

Quick Contribution Guide

  1. Fork & Clone the repository
  2. Create a branch from main
    git checkout -b feat/your-feature-name
  3. Make your changes with proper testing
  4. Commit using Conventional Commits
    npm run commit  # Interactive prompt
  5. Push and create a Pull Request

Commit Convention

We use Conventional Commits for clear, semantic commit history:

type(scope): brief description

[optional body]
[optional footer]

Types: feat, fix, docs, chore, build, ci, test, refactor, perf, style

Common Scopes: events, heroes, projects, interview-questions, jobs, ui, api, docs, ci

Examples:

feat(heroes): add community heroes recognition program
fix(projects): correct GitHub API rate limiting
docs(readme): update installation instructions
test(heroes): add property-based tests for hero filtering

Code Quality Standards

  • βœ… TypeScript strict mode
  • βœ… ESLint + Prettier formatting
  • βœ… Unit tests for utilities
  • βœ… Property-based tests for complex logic
  • βœ… Accessibility compliance (WCAG)
  • βœ… Responsive design (mobile-first)

Getting Help

  • πŸ“– Check CONTRIBUTING.md for detailed guidelines
  • πŸ› Report bugs via GitHub Issues
  • πŸ’¬ Join discussions in the community Discord
  • 🏷️ Look for good first issue labels for beginner-friendly tasks

πŸ“š Documentation

Core Documentation

Document Description
πŸ“– Deployment Guide Complete deployment instructions, custom domain setup, troubleshooting
πŸ”„ Migration Report Vercel to GitHub Pages migration details, cost savings analysis
πŸ—οΈ Project Structure Detailed codebase organization and architecture
🀝 Contributing Guide Comprehensive contribution guidelines and workflow

Key Concepts

Static Site Generation

All pages are pre-rendered at build time for maximum performance and zero hosting cost.

Automated Deployment

GitHub Actions workflow handles:

  • βœ… Immediate deployment on push to main
  • βœ… Hourly scheduled rebuilds for fresh data
  • βœ… Manual deployment via GitHub Actions UI

Client-Side Search

Fuse.js provides fuzzy search without server infrastructure:

  • ⚑ Instant results
  • 🎯 Typo-tolerant matching
  • πŸ“¦ Minimal bundle impact

🎯 Roadmap

Current Focus

  • Community Heroes recognition program
  • Property-based testing infrastructure
  • Dark mode support
  • Enhanced project filtering
  • Event RSVP functionality
  • User authentication (optional)

Future Enhancements

  • πŸ“Š Analytics dashboard
  • πŸ”” Event notifications
  • πŸ† Gamification features
  • πŸ“± Progressive Web App (PWA)
  • 🌍 Internationalization (i18n)
  • πŸ€– AI-powered recommendations

πŸ“Š Project Stats

Migration Success (Dec 2024)

Metric Before (Vercel) After (GitHub Pages) Improvement
Hosting Cost $240/year $0/year πŸ’° 100% savings
Bundle Size ~850 KB ~595 KB πŸ“¦ 30% reduction
Build Time ~45s ~35s ⚑ 22% faster
Deployment Manual Automated πŸ€– Fully automated

Test Coverage

  • βœ… 59 tests passing across 7 test suites
  • βœ… Property-based tests with 100+ iterations each
  • βœ… Unit tests for all core components
  • βœ… Integration tests for critical flows

πŸ™ Acknowledgments

Built with ❀️ by the TrainWithShubham community

Technologies Used


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


⬆ Back to Top

Made with πŸ’» and β˜• by the TrainWithShubham Community

GitHub Stars GitHub Forks GitHub Issues GitHub Pull Requests

About

Community Website for TrainWithShubham

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages