CompletedNextJSTypeScriptDocker+3 more

BattleWorld

Modern interview platform combining real-time video conferencing, comprehensive candidate management, and seamless hiring experiences. Built with Next.js, Convex, Stream, Jenkins CI/CD, Docker, Redis caching, and Nginx reverse proxy.

Timeline

Role

Status
Completed

Technology Stack

NextJS
TypeScript
Docker
Jenkins
Redis
Nginx

๐Ÿš€ BattleWorld - Modern Interview Platform

A cutting-edge interview platform that combines real-time video conferencing, comprehensive candidate management, and seamless hiring experiences. Built with Next.js, Convex, and Stream for modern recruitment workflows.


๐ŸŒŸ Features

๐ŸŽฏ Core Functionality

  • Video Conferencing: High-quality video calls powered by Stream
  • Real-time Chat: Instant messaging between candidates and interviewers
  • Job Management: Post, manage, and track job applications
  • Candidate Dashboard: Comprehensive candidate profiles and tracking
  • Interview Scheduling: Automated scheduling with email notifications
  • Resume Management: Upload and review candidate resumes
  • Code Editor: Built-in code editor for technical assessments

๐Ÿš€ DevOps & Infrastructure

  • Jenkins CI/CD Pipeline: Automated build, test, and deployment
  • Docker Containerization: Consistent deployment across environments
  • Redis Caching: High-performance caching with Upstash Redis
  • Nginx Reverse Proxy: Load balancing and SSL termination
  • Environment Management: Secure credential management in Jenkins

๐Ÿ‘ฅ User Roles

  • Candidates: Apply for jobs, participate in interviews, manage profiles
  • Interviewers: Post jobs, conduct interviews, review candidates
  • Admin: Oversee all platform activities and manage users

๐ŸŽจ UI/UX Features

  • Dark Theme: Modern dark interface with green accent colors
  • Responsive Design: Works seamlessly on desktop and mobile
  • Smooth Animations: Framer Motion powered interactions
  • Real-time Updates: Live data synchronization across all components

๐Ÿ›  Tech Stack

Frontend

  • Next.js 15.4.1 - React framework with App Router
  • React 19.1.0 - UI library
  • TypeScript - Type safety
  • Tailwind CSS - Styling
  • Framer Motion - Animations
  • Radix UI - Accessible components

Backend & Database

  • Convex - Backend-as-a-Service with real-time database
  • Clerk - Authentication and user management
  • Stream - Video calling and chat functionality
  • Redis (Upstash) - High-performance caching layer

DevOps & Infrastructure

  • Jenkins - CI/CD pipeline automation
  • Docker - Containerization and deployment
  • Nginx - Reverse proxy and load balancing
  • Docker Hub - Container registry

๐Ÿ“ Project Structure

Battleworld/
โ”œโ”€โ”€ convex/                 # Backend functions and database schema
โ”‚   โ”œโ”€โ”€ applications.ts    # Application management
โ”‚   โ”œโ”€โ”€ auth.config.ts     # Authentication configuration
โ”‚   โ”œโ”€โ”€ interviews.ts      # Interview management
โ”‚   โ”œโ”€โ”€ jobs.ts            # Job posting and management
โ”‚   โ”œโ”€โ”€ resume.ts          # Resume handling
โ”‚   โ””โ”€โ”€ schema.ts          # Database schema
โ”œโ”€โ”€ docker/                # Docker configuration
โ”‚   โ””โ”€โ”€ nginx.conf        # Nginx configuration
โ”œโ”€โ”€ Jenkins/              # CI/CD pipeline
โ”‚   โ””โ”€โ”€ JenkinsFile       # Jenkins pipeline definition
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ app/              # Next.js App Router pages
โ”‚   โ”œโ”€โ”€ components/       # Reusable React components
โ”‚   โ”œโ”€โ”€ hooks/            # Custom React hooks
โ”‚   โ”œโ”€โ”€ lib/              # Utility functions
โ”‚   โ””โ”€โ”€ providers/        # Context providers
โ”œโ”€โ”€ docker-compose.yml    # Multi-container deployment
โ”œโ”€โ”€ Dockerfile           # Application containerization
โ””โ”€โ”€ public/              # Static assets

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18+
  • Docker and Docker Compose
  • Convex account
  • Clerk account
  • Stream account
  • Upstash Redis account

Installation

  1. Clone the repository
git clone <repository-url>
cd Battleworld
  1. Install dependencies
npm install
  1. Environment Setup

Create a .env.local file:

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key
CLERK_SECRET_KEY=your_clerk_secret
NEXT_PUBLIC_CONVEX_URL=your_convex_url
NEXT_PUBLIC_STREAM_API_KEY=your_stream_key
STREAM_SECRET_KEY=your_stream_secret
UPSTASH_REDIS_REST_URL=your_redis_url
UPSTASH_REDIS_REST_TOKEN=your_redis_token
  1. Setup Convex
npx convex dev
  1. Run development server
npm run dev
  1. Open browser Navigate to http://localhost:3000

๐Ÿš€ CI/CD Pipeline

Jenkins Setup

The project includes a comprehensive Jenkins CI/CD pipeline:

Pipeline Stages:

  1. Code Cloning - Pulls latest code from GitHub
  2. Environment Setup - Configures secure environment variables
  3. Build - Creates Docker image with build arguments
  4. Push to Docker Hub - Publishes image to container registry
  5. Deploy - Deploys application using Docker Compose

Running the Pipeline:

  1. Configure Jenkins with required credentials
  2. Set up Jenkins agent with label 'agentdoom'
  3. Create pipeline job pointing to JenkinsFile
  4. Trigger pipeline manually or via webhook

๐Ÿณ Docker Deployment

Local Development

# Build and run
docker-compose up --build

# Run in background
docker-compose up -d

# Stop services
docker-compose down

Production Deployment

Docker Compose (Single-server)

docker-compose -f docker-compose.yml up -d

Docker Swarm (Multi-server)

docker stack deploy -c docker-compose.yml battleworld

Container Architecture

  • App Container: Next.js application (Port 3000)
  • Nginx Container: Reverse proxy and load balancer (Port 80)
  • Redis Container: Caching layer

๐Ÿ“ฑ Usage

For Candidates

  1. Sign up/Login - Create account or sign in
  2. Complete Profile - Fill in skills and experience
  3. Browse Jobs - View available positions and apply
  4. Participate in Interviews - Join scheduled video interviews
  5. Chat with Interviewers - Built-in messaging system

For Interviewers

  1. Access Dashboard - View command interface
  2. Post Jobs - Create new job listings
  3. Review Applications - Manage incoming applications
  4. Schedule Interviews - Set up interview sessions
  5. Conduct Interviews - Video meeting with code editor
  6. Provide Feedback - Leave comments and ratings

For Admins

  1. Monitor Activity - Track platform usage
  2. Manage Users - Oversee accounts and permissions
  3. System Analytics - View statistics and performance

๐ŸŽฏ Key Features

Video Interviews

  • Real-time video conferencing with screen sharing
  • Code editor integration for technical evaluations
  • Manual assessment and feedback system

Real-time Collaboration

  • Live video with screen sharing
  • Instant messaging
  • Collaborative code editing

Smart Job Management

  • Automated application tracking
  • Shortlisting and rejection workflows
  • Email notifications

Redis Caching

  • High-performance caching for frequently accessed data
  • Session management and user state
  • Real-time data synchronization

โœ… Features Summary

  • User authentication (Clerk, JWT)
  • Video conferencing (Stream)
  • Real-time chat
  • Job posting and application tracking
  • Interview scheduling with email notifications
  • Resume upload and management
  • Built-in code editor for assessments
  • Jenkins CI/CD automation
  • Docker containerization
  • Redis caching
  • Nginx reverse proxy
  • Responsive dark theme UI

๐Ÿค Contributing

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License.


Built with โค๏ธ for the future of hiring

Developed by Varun Hotani
ยฉ 2025. All rights reserved.