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
CompletedTechnology Stack
๐ 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
- Clone the repository
git clone <repository-url>
cd Battleworld
- Install dependencies
npm install
- 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
- Setup Convex
npx convex dev
- Run development server
npm run dev
- Open browser Navigate to http://localhost:3000
๐ CI/CD Pipeline
Jenkins Setup
The project includes a comprehensive Jenkins CI/CD pipeline:
Pipeline Stages:
- Code Cloning - Pulls latest code from GitHub
- Environment Setup - Configures secure environment variables
- Build - Creates Docker image with build arguments
- Push to Docker Hub - Publishes image to container registry
- Deploy - Deploys application using Docker Compose
Running the Pipeline:
- Configure Jenkins with required credentials
- Set up Jenkins agent with label 'agentdoom'
- Create pipeline job pointing to JenkinsFile
- 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
- Sign up/Login - Create account or sign in
- Complete Profile - Fill in skills and experience
- Browse Jobs - View available positions and apply
- Participate in Interviews - Join scheduled video interviews
- Chat with Interviewers - Built-in messaging system
For Interviewers
- Access Dashboard - View command interface
- Post Jobs - Create new job listings
- Review Applications - Manage incoming applications
- Schedule Interviews - Set up interview sessions
- Conduct Interviews - Video meeting with code editor
- Provide Feedback - Leave comments and ratings
For Admins
- Monitor Activity - Track platform usage
- Manage Users - Oversee accounts and permissions
- 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
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
๐ License
This project is licensed under the MIT License.
Built with โค๏ธ for the future of hiring
