{"id":48928339,"url":"https://github.com/mrafiq825/hiredesk","last_synced_at":"2026-04-17T08:02:39.295Z","repository":{"id":317310169,"uuid":"1063035846","full_name":"mrafiq825/HireDesk","owner":"mrafiq825","description":"HireDesk is a modern, AI-powered recruitment platform that revolutionizes the hiring process. Upload resumes, analyze candidates with advanced AI, generate tailored interview questions, and make data-driven hiring decisions with confidence.","archived":false,"fork":false,"pushed_at":"2026-02-13T04:35:53.000Z","size":1235,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-16T18:42:13.800Z","etag":null,"topics":["react","react-router","typescript"],"latest_commit_sha":null,"homepage":"https://hiredesk.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrafiq825.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-24T04:44:51.000Z","updated_at":"2026-02-13T04:35:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"c8eab440-2472-44a9-b8f5-1341d93f0eb6","html_url":"https://github.com/mrafiq825/HireDesk","commit_stats":null,"previous_names":["rafiqdevhub/hiredesk","mrafiq825/hiredesk"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mrafiq825/HireDesk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrafiq825%2FHireDesk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrafiq825%2FHireDesk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrafiq825%2FHireDesk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrafiq825%2FHireDesk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrafiq825","download_url":"https://codeload.github.com/mrafiq825/HireDesk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrafiq825%2FHireDesk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31920518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["react","react-router","typescript"],"created_at":"2026-04-17T08:02:36.532Z","updated_at":"2026-04-17T08:02:39.271Z","avatar_url":"https://github.com/mrafiq825.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HireDesk - AI-Powered Recruitment Platform\n\n![HireDesk Logo](public/logo/logo.png)\n\n## HireDesk\n\nTransform your hiring process with AI-powered candidate analysis\n\n[![React](https://img.shields.io/badge/React-19.1.0-blue.svg)](https://reactjs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.8.3-blue.svg)](https://www.typescriptlang.org/)\n[![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-4.1.4-38B2AC.svg)](https://tailwindcss.com/)\n[![React Router](https://img.shields.io/badge/React_Router-7.7.1-CA4245.svg)](https://reactrouter.com/)\n[![Docker](https://img.shields.io/badge/Docker-Ready-2496ED.svg)](https://www.docker.com/)\n\n## 🌟 Overview\n\nHireDesk is a modern, AI-powered recruitment platform that revolutionizes the hiring process. Upload resumes, analyze candidates with advanced AI, generate tailored interview questions, and make data-driven hiring decisions with confidence.\n\n### Key Features\n\n- AI-Powered Resume Analysis\\*\\*: Intelligent parsing and candidate profiling\n- Smart Skills Matching\\*\\*: Automated matching of candidate skills to job requirements\n- Interview Question Generation\\*\\*: AI-generated, role-specific interview questions\n- Candidate Scoring\\*\\*: Comprehensive fit analysis with detailed reasoning\n- Data Persistence\\*\\*: All analysis results persist across browser sessions\n- Secure Authentication\\*\\*: User registration and login system\n- Responsive Design\\*\\*: Modern, mobile-first UI with glassmorphism effects\n- Real-time Processing\\*\\*: Fast, efficient analysis with loading states\n\n## Quick Start\n\n### Prerequisites\n\n- **Node.js** (v20 or higher)\n- **npm** or **yarn**\n- **Git**\n\n### Installation\n\n1. **Clone the repository**\n\n   ```bash\n   git clone https://github.com/Rafiqdevhub/HireDesk.git\n   cd hiredesk\n   ```\n\n2. **Install dependencies**\n\n   ```bash\n   npm install\n   ```\n\n3. **Environment Setup**\n\n   ```bash\n   cp .env.example .env\n   ```\n\n   Configure your environment variables in `.env`:\n\n   ```env\n   VITE_API_URL=http://localhost:5000/api\n   VITE_APP_NAME=HireDesk\n   VITE_APP_VERSION=1.0.0\n   ```\n\n4. **Start Development Server**\n\n   ```bash\n   npm run dev\n   ```\n\n   The application will be available at `http://localhost:3000`\n\n## Project Structure\n\n```bash\nhiredesk/\n├── app/                          # Main application code\n│   ├── components/               # Reusable UI components\n│   │   ├── auth/                 # Authentication components\n│   │   ├── layout/               # Layout components (Navbar, Footer)\n│   │   ├── resume/               # Resume-related components\n│   │   ├── toast/                # Notification components\n│   │   └── ui/                   # Base UI components\n│   ├── contexts/                 # React contexts (Auth, Toast)\n│   ├── data/                     # Static data and configurations\n│   ├── hooks/                    # Custom React hooks\n│   ├── routes/                   # Page components and routing\n│   ├── services/                 # API service functions\n│   ├── utils/                    # Utility functions\n│   └── root.tsx                  # Application root component\n├── public/                       # Static assets\n├── build/                        # Production build output\n├── .env.example                  # Environment variables template\n├── Dockerfile                    # Docker configuration\n├── package.json                  # Dependencies and scripts\n├── tailwind.config.js            # Tailwind CSS configuration\n├── tsconfig.json                 # TypeScript configuration\n└── vite.config.ts                # Vite build configuration\n```\n\n## Development Workflow\n\n### Available Scripts\n\n```bash\n# Development\nnpm run dev          # Start development server\nnpm run build        # Build for production\nnpm run start        # Start production server\nnpm run typecheck    # Run TypeScript type checking\n\n# Code Quality\nnpm run lint         # Run ESLint\nnpm run format       # Format code with Prettier\n```\n\n### Development Guidelines\n\n#### 🔄 Git Workflow\n\n1. **Create a feature branch**\n\n   ```bash\n   git checkout -b feature/your-feature-name\n   ```\n\n2. **Make your changes** following the established patterns\n\n3. **Test your changes**\n\n   ```bash\n   npm run dev\n   npm run typecheck\n   ```\n\n4. **Commit with conventional commits**\n\n   ```bash\n   git commit -m \"feat: add new feature description\"\n   ```\n\n5. **Push and create a pull request**\n\n   ```bash\n   git push origin feature/your-feature-name\n   ```\n\n#### 📝 Code Style\n\n- **TypeScript**: Strict type checking enabled\n- **ESLint**: Code linting with React and TypeScript rules\n- **Prettier**: Automatic code formatting\n- **Tailwind CSS**: Utility-first CSS framework\n- **Component Structure**: Functional components with hooks\n\n#### Testing\n\n```bash\n# Run tests (when implemented)\nnpm run test\n\n# Run tests with coverage\nnpm run test:coverage\n```\n\n## UI/UX Design System\n\n### Color Palette\n\n- **Primary**: Slate grays with blue accents\n- **Background**: Clean white/light gray with glassmorphism effects\n- **Accent**: Blue (#3B82F6) and purple (#8B5CF6) gradients (removed in favor of flat design)\n- **Semantic**: Green for success, red for errors, yellow for warnings\n\n### Design Principles\n\n- **Glassmorphism**: Semi-transparent elements with backdrop blur\n- **Minimalism**: Clean, focused design with ample white space\n- **Accessibility**: WCAG compliant contrast ratios and keyboard navigation\n- **Mobile-First**: Responsive design that works on all devices\n- **Modern Aesthetics**: Contemporary UI patterns and micro-interactions\n\n### Typography \u0026 Button Snippet (copy-paste ready)\n\nAdd this to another app to reuse HireDesk body typography, button sizing, and dark body colors. Ensure the Google Fonts imports are kept or swap to self-hosted files.\n\n```css\n/* Load fonts */\n@import url(\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700\u0026family=Tinos:wght@700\u0026display=swap\");\n@import url(\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@500\u0026display=swap\");\n\n:root {\n  --font-family-sans:\n    \"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto,\n    \"Helvetica Neue\", Arial, sans-serif;\n  --font-family-serif: \"Tinos\", Georgia, \"Times New Roman\", serif;\n  --font-family-mono:\n    \"JetBrains Mono\", \"Fira Code\", \"Fira Mono\", \"Roboto Mono\",\n    \"Source Code Pro\", ui-monospace, SFMono-Regular, \"SF Mono\", Monaco,\n    Inconsolata, \"Roboto Mono\", \"Liberation Mono\", Menlo, Consolas, monospace;\n\n  /* Body colors (dark UI palette) */\n  --body-bg: #0b1220;\n  --body-text: #e2e8f0;\n}\n\n/* Body typography */\nbody {\n  font-family: var(--font-family-sans);\n  font-size: 16px;\n  line-height: 1.6;\n  background: var(--body-bg);\n  color: var(--body-text);\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  text-rendering: optimizeLegibility;\n  font-feature-settings: \"cv02\", \"cv03\", \"cv04\", \"cv11\";\n  font-variant-ligatures: common-ligatures;\n}\n\n/* Headings use the serif stack */\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  font-family: var(--font-family-serif);\n  font-weight: 700;\n  letter-spacing: -0.5px;\n}\n\n/* Primary buttons (16px text) */\nbutton {\n  font-family: inherit;\n  font-size: 16px;\n  font-weight: 600;\n  color: #fff;\n  background: linear-gradient(90deg, #2563eb, #7c3aed);\n  padding: 0.85rem 1rem;\n  border: none;\n  border-radius: 0.5rem;\n  cursor: pointer;\n  transition:\n    transform 0.15s ease,\n    opacity 0.15s ease,\n    background 0.15s ease;\n}\nbutton:hover:not(:disabled) {\n  transform: scale(1.02);\n}\nbutton:active:not(:disabled) {\n  transform: scale(0.98);\n}\nbutton:disabled {\n  opacity: 0.5;\n  cursor: not-allowed;\n}\n\n/* Secondary/smaller buttons (14px text) */\n.btn-sm {\n  font-size: 14px;\n  padding: 0.65rem 0.9rem;\n}\n\n/* Mono helper */\n.font-mono {\n  font-family: var(--font-family-mono);\n}\n```\n\n## API Integration\n\n### External Services\n\nHireDesk integrates with AI-powered backend services for:\n\n- **Resume Analysis**: `https://hr-resume-analyzer-backend.vercel.app/api/hiredesk-analyze`\n- **Question Generation**: `https://hr-resume-analyzer-backend.vercel.app/api/generate-questions`\n\n### API Response Structure\n\n#### Resume Analysis Response\n\n```typescript\n{\n  resumeData: {\n    personalInfo: {...},\n    workExperience: [...],\n    education: [...],\n    skills: [...]\n  },\n  roleRecommendations: [\n    {\n      roleName: string,\n      matchPercentage: number,\n      reasoning: string,\n      requiredSkills: string[],\n      missingSkills: string[],\n      careerLevel: string,\n      industryFit: string\n    }\n  ],\n  questions: [\n    {\n      question: string,\n      type: \"technical\" | \"behavioral\" | \"experience\",\n      context?: string\n    }\n  ],\n  fit_status: string,\n  reasoning: string\n}\n```\n\n## Deployment\n\n### Docker Hub Image\n\nHireDesk is available as a pre-built Docker image on Docker Hub, making deployment incredibly simple.\n\n#### Pull the Official Image\n\n```bash\n# Pull the latest version\ndocker pull rafiq9323/hiredesk:latest\n\n# Or pull a specific version/tag\ndocker pull rafiq9323/hiredesk:master\n```\n\n#### Run with Docker Hub Image\n\n```bash\n# Run the container\ndocker run -d \\\n  --name hiredesk \\\n  -p 3000:3000 \\\n  -e NODE_ENV=production \\\n  -e VITE_API_URL=http://localhost:5000/api \\\n  rafiq9323/hiredesk:latest\n\n# Access at http://localhost:3000\n```\n\n### Docker Compose Setup\n\nFor a complete development or production environment, use Docker Compose with multiple services.\n\n#### Quick Start with Docker Compose\n\n```bash\n# Clone the repository\ngit clone https://github.com/Rafiqdevhub/HireDesk.git\ncd hiredesk\n\n# Start all services\ndocker compose up -d\n\n# View logs\ndocker compose logs -f\n\n# Stop all services\ndocker compose down\n```\n\n#### Available Docker Compose Profiles\n\nThe `docker-compose.yml` includes multiple profiles for different environments:\n\n##### Production Profile (Default)\n\n```bash\n# Start production environment with Nginx reverse proxy\ndocker compose --profile prod up -d\n\n# Includes: hiredesk (app), nginx (reverse proxy)\n```\n\n##### Development Profile\n\n```bash\n# Start development environment with hot reload\ndocker compose --profile dev up -d\n\n# Includes: hiredesk-dev (hot reload), mock-backend (API simulation)\n```\n\n##### Full Profile (Complete Stack)\n\n```bash\n# Start complete environment with all services\ndocker compose --profile full up -d\n\n# Includes: hiredesk, redis (caching), postgres (database)\n```\n\n#### Docker Compose Services Overview\n\n| Service        | Profile | Purpose                       | Port   |\n| -------------- | ------- | ----------------------------- | ------ |\n| `hiredesk`     | prod    | Production React app with SSR | 3000   |\n| `hiredesk-dev` | dev     | Development with hot reload   | 3001   |\n| `mock-backend` | dev     | Mock API for development      | 5000   |\n| `nginx`        | prod    | Reverse proxy \u0026 load balancer | 80/443 |\n| `redis`        | full    | Caching layer                 | 6379   |\n| `postgres`     | full    | Database (future features)    | 5432   |\n\n#### Environment Variables for Docker Compose\n\nCreate a `.env` file or set environment variables:\n\n```env\n# Application Configuration\nNODE_ENV=production\nVITE_API_URL=http://localhost:5000/api\nVITE_APP_NAME=HireDesk\nVITE_APP_VERSION=1.0.0\n\n# Database (for full profile)\nPOSTGRES_DB=hiredesk\nPOSTGRES_USER=hiredesk_user\nPOSTGRES_PASSWORD=your_secure_password\n\n# Redis (for full profile)\nREDIS_PASSWORD=your_redis_password\n```\n\n#### Docker Compose Commands\n\n```bash\n# Build and start all services\ndocker compose up --build\n\n# Start in background\ndocker compose up -d\n\n# View service status\ndocker compose ps\n\n# View logs for specific service\ndocker compose logs hiredesk\n\n# Scale services (if needed)\ndocker compose up -d --scale hiredesk=3\n\n# Clean up\ndocker compose down --volumes --remove-orphans\n```\n\n### CI/CD Pipeline\n\nHireDesk uses GitHub Actions for automated building and deployment.\n\n#### Automated Docker Builds\n\nEvery push to `master` or `main` branch automatically:\n\n1. **Builds** the Docker image using multi-stage Dockerfile\n2. **Tags** the image with multiple strategies:\n   - `latest` - Latest stable version\n   - `master` - Branch-specific tag\n   - `master-\u003ccommit-sha\u003e` - Unique commit tags\n3. **Pushes** to Docker Hub (`rafiq9323/hiredesk`)\n4. **Caches** layers for faster subsequent builds\n\n#### GitHub Actions Workflow\n\nThe CI/CD pipeline is defined in `.github/workflows/docker-push-image.yml`:\n\n```yaml\nname: Build and Push Docker Image\n\non:\n  push:\n    branches: [master, main]\n  pull_request:\n    branches: [master, main]\n\njobs:\n  build-and-push:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout code\n      - name: Set up Docker Buildx\n      - name: Login to Docker Hub\n      - name: Build and push image\n```\n\n#### Required GitHub Secrets\n\nSet these secrets in your repository settings:\n\n- `DOCKER_USERNAME`: `rafiq9323`\n- `DOCKER_PASSWORD`: Your Docker Hub Personal Access Token\n\n#### Pipeline Benefits\n\n- **Automated Deployment**: No manual intervention required\n- **Version Control**: Proper tagging for rollbacks\n- **Security**: Automated security scanning\n- **Performance**: Layer caching for faster builds\n- **Multi-Platform**: Ready for ARM64/x86_64 builds\n\n### Build Your Own Docker Image\n\nIf you want to build the image locally:\n\n```bash\n# Build from source\ndocker build -t hiredesk .\n\n# Build with specific Dockerfile\ndocker build -f Dockerfile.dev -t hiredesk-dev .\n\n# Build for multiple platforms\ndocker buildx build --platform linux/amd64,linux/arm64 -t hiredesk .\n```\n\n### 🌐 Production Deployment Options\n\n#### Option 1: Docker Hub + Docker Compose (Recommended)\n\n```bash\n# Use pre-built image\ndocker compose up -d\n```\n\n#### Option 2: Kubernetes Deployment\n\n```bash\n# Use the Docker Hub image in your K8s manifests\nkubectl apply -f k8s/\n```\n\n#### Option 3: Cloud Platforms\n\n- **Railway**: Connect GitHub repo, auto-deploys\n- **Render**: Use Docker image from Docker Hub\n- **Fly.io**: Deploy from Docker Hub image\n- **AWS ECS**: Use Docker Hub image in task definitions\n\n### Monitoring \u0026 Troubleshooting\n\n#### Health Checks\n\n```bash\n# Check container health\ndocker ps\n\n# View application logs\ndocker compose logs hiredesk\n\n# Test application health\ncurl http://localhost:3000\n```\n\n#### Common Issues\n\n**Port already in use:**\n\n```bash\n# Find process using port 3000\nnetstat -tulpn | grep :3000\n\n# Kill the process or change port mapping\ndocker run -p 3001:3000 rafiq9323/hiredesk:latest\n```\n\n**Permission issues:**\n\n```bash\n# Run as non-root user\ndocker run --user node rafiq9323/hiredesk:latest\n```\n\n**Memory issues:**\n\n```bash\n# Limit memory usage\ndocker run -m 512m rafiq9323/hiredesk:latest\n```\n\n### Resource Requirements\n\n- **CPU**: 0.5 vCPU minimum, 1 vCPU recommended\n- **Memory**: 512MB minimum, 1GB recommended\n- **Storage**: 200MB for application, plus logs\n- **Network**: Standard HTTP/HTTPS ports (80/443)\n\n### Security Best Practices\n\n- Use Docker Hub images from trusted sources\n- Regularly update base images\n- Scan images for vulnerabilities\n- Use secrets management for sensitive data\n- Implement proper network segmentation\n- Enable HTTPS in production\n\n## Authentication\n\nHireDesk includes a complete authentication system:\n\n- **User Registration**: Email/password signup\n- **User Login**: Secure authentication with JWT tokens\n- **Protected Routes**: Route-level protection for authenticated users\n- **Profile Management**: User profile updates and management\n- **Session Persistence**: Automatic login state management\n\n## Data Persistence\n\nAll analysis results are automatically persisted using localStorage:\n\n- **Resume Data**: Parsed resume information\n- **Analysis Results**: Fit status, reasoning, and recommendations\n- **Generated Questions**: Interview questions with categories\n- **UI State**: Expanded/collapsed states for question categories\n\n## Contributing\n\nWe welcome contributions! Please follow these guidelines:\n\n### How to Contribute\n\n1. **Fork the repository**\n2. **Create a feature branch** from `main`\n3. **Make your changes** following our coding standards\n4. **Add tests** for new functionality\n5. **Update documentation** as needed\n6. **Submit a pull request** with a clear description\n\n### Contribution Guidelines\n\n- **Code Style**: Follow the established TypeScript and React patterns\n- **Commits**: Use conventional commit format\n- **PRs**: Provide clear descriptions and link to issues\n- **Testing**: Ensure all tests pass before submitting\n- **Documentation**: Update README and code comments as needed\n\n### Development Setup for Contributors\n\n```bash\n# Clone your fork\ngit clone https://github.com/your-username/HireDesk.git\ncd hiredesk\n\n# Install dependencies\nnpm install\n\n# Set up pre-commit hooks (if available)\nnpm run prepare\n\n# Start development\nnpm run dev\n```\n\n## Acknowledgments\n\n- **React Router** for the excellent routing framework\n- **Tailwind CSS** for the utility-first CSS framework\n- **Heroicons** for the beautiful icon set\n- **Vite** for the fast build tool\n- **AI Backend Services** for powering the intelligent analysis\n\n## Support\n\n- **Issues**: [GitHub Issues](https://github.com/Rafiqdevhub/HireDesk/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/Rafiqdevhub/HireDesk/discussions)\n- **Email**: For business inquiries or support\n\n---\n\nBuilt with ❤️ using React, TypeScript, and AI\n\n_Transforming recruitment, one resume at a time._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrafiq825%2Fhiredesk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrafiq825%2Fhiredesk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrafiq825%2Fhiredesk/lists"}