Skip to content

GhostMods00/DEVRadar

Repository files navigation

DEVRADAR πŸ”

MIT License Vite React TypeScript TailwindCSS GitHub API ESLint Prettier PRs Welcome

✨ Description

A sophisticated GitHub talent acquisition platform built with modern web technologies. Streamline your technical recruitment process by discovering, evaluating, and managing potential developer candidates through GitHub profiles. πŸš€

πŸ“‘ Table of Contents

Search Portal

App Screenshot

Saved candidates

App Screenshot

No candidates Found

App Screenshot

✨ Features

Core Features 🎯

  • πŸ” Advanced GitHub user search with real-time filtering
  • πŸ‘€ Comprehensive user profile analysis
  • πŸ’Ύ Local storage persistence for saved candidates
  • πŸ“Š Developer statistics visualization
  • 🌐 Direct links to GitHub profiles and repositories

Technical Features πŸ› οΈ

  • ⚑ Optimized performance with React 18 features
  • πŸ“± Responsive design with Tailwind CSS
  • πŸ”’ Secure token handling and API integration
  • 🎭 Error boundary implementation
  • πŸ”„ Custom hooks for data management
  • 🌐 React Router v6 navigation

πŸš€ Deployment

This portfolio is live on Render at: [https://devradar-pe79.onrender.com] 🌐

πŸ› οΈ Tech Stack

Frontend Core 🎨

  • Framework: React 18.2.0
  • Language: TypeScript 5.2.2
  • Routing: React Router DOM 6.23.1
  • Styling: Tailwind CSS 3.4.1
  • Build Tool: Vite 5.2.0

Development Tools πŸ”§

  • Type Checking: TypeScript
  • Linting: ESLint with TypeScript plugins
  • Code Formatting: Prettier
  • Icon Library: Lucide React
  • Version Control: Git
  • API Testing: Postman

Performance Optimization πŸš€

  • Code splitting with React.lazy()
  • Memoization with useMemo and useCallback
  • Image optimization
  • Bundle size optimization

πŸ“¦ Installation

Prerequisites πŸ“‹

  • Node.js 18.x or higher
  • npm 8.x or higher
  • Git
  • GitHub account and personal access token

Step-by-Step Setup πŸ”„

  1. Clone the repository
git clone https://github.com/yourusername/DEVRadar.git
cd DEVRadar
  1. Install dependencies
npm install
  1. Configure environment
cp .env.example .env
  1. Start development server
npm run dev
  1. Build for production
npm run build

πŸ—οΈ Project Structure

DEVRADAR/
β”œβ”€β”€ public/                    # Public assets
β”‚   └── vite.svg
β”œβ”€β”€ src/                      # Source files
β”‚   β”œβ”€β”€ api/                  # API integration
β”‚   β”‚   └── API.tsx          # GitHub API services
β”‚   β”œβ”€β”€ assets/              # Asset files
β”‚   β”‚   └── react.svg        
β”‚   β”œβ”€β”€ components/          # Reusable components
β”‚   β”‚   └── Nav.tsx         # Navigation component
β”‚   β”œβ”€β”€ interfaces/          # TypeScript interfaces
β”‚   β”‚   └── Candidate.interface.tsx
β”‚   β”œβ”€β”€ pages/              # Page components
β”‚   β”‚   β”œβ”€β”€ CandidateSearch.tsx
β”‚   β”‚   β”œβ”€β”€ ErrorPage.tsx
β”‚   β”‚   └── SavedCandidates.tsx
β”‚   β”œβ”€β”€ App.tsx             # Main App component
β”‚   β”œβ”€β”€ index.css           # Global styles
β”‚   └── main.tsx            # Application entry point
β”œβ”€β”€ .env.EXAMPLE            # Example environment variables
β”œβ”€β”€ .eslintrc.cjs           # ESLint configuration
β”œβ”€β”€ .gitignore              # Git ignore file
β”œβ”€β”€ LICENSE                 # License file
β”œβ”€β”€ README.md               # Project documentation
β”œβ”€β”€ index.html             # HTML entry point
β”œβ”€β”€ package-lock.json      # Package lock file
β”œβ”€β”€ package.json           # Project dependencies
β”œβ”€β”€ tsconfig.json          # TypeScript configuration
β”œβ”€β”€ tsconfig.node.json     # Node TypeScript configuration
β”œβ”€β”€ vite.config.ts         # Vite configuration
└── tailwind.config.cjs    # Tailwind Configuration

πŸ” Environment Setup

Required Environment Variables πŸ”‘

# GitHub API Configuration
# Generate a token at https://github.com/settings/tokens
VITE_GITHUB_TOKEN=your_github_token_here

# API Configuration
VITE_GITHUB_API_URL=https://api.github.com/YOUR_API_URL
# Application Configuration
VITE_DEV_SERVER_PORT=3000

# Never commit your actual .env file
# Copy this file to .env and fill in your values

GitHub Token Scopes 🎫

Required scopes for full functionality:

  • read:user
  • user:email
  • read:org (optional)

πŸ’» Development

Available Scripts πŸ“œ

# Development
npm run dev           # Start development server
npm run build        # Build for production
npm run preview      # Preview production build

# Quality Assurance
npm run lint         # Run ESLint
npm run type-check   # Run TypeScript compiler
npm run format       # Format code with Prettier

# Testing
npm run test         # Run tests
npm run test:watch   # Run tests in watch mode
npm run test:coverage # Generate coverage report

Code Quality Tools πŸ› οΈ

  • ESLint configuration for React and TypeScript
  • Prettier for consistent code formatting
  • TypeScript strict mode enabled

πŸ”Œ API Integration

GitHub API Endpoints πŸ”—

// Available endpoints
GET /users                 # List GitHub users
GET /users/{username}      # Get user details
GET /users/{username}/repos # Get user repositories

Rate Limiting πŸ“Š

  • Authentication: 5,000 requests per hour
  • Unauthenticated: 60 requests per hour
  • Rate limit header handling

🎨 UI/UX Features

Components 🧩

  • 🎯 Interactive data tables
  • 🎨 Custom loading skeletons
  • 🎭 Error boundaries
  • πŸ“± Responsive navigation
  • 🎨 Glass morphism effects

Animations 🎬

  • Page transitions
  • Loading states
  • Hover effects

πŸ“ˆ Performance

Optimizations πŸš€

  • React.lazy() for code splitting
  • useCallback for memoized functions
  • useMemo for expensive calculations
  • Debounced search inputs
  • Optimized rerenders

Metrics πŸ“Š

  • Lighthouse score: 95+
  • First contentful paint: < 1s
  • Time to interactive: < 2s
  • Bundle size: < 200KB gzipped

πŸ‘₯ Contributing

Contributions are welcome! Here's how you can help:

  1. 🍴 Fork the repository
  2. 🌱 Create a feature branch (git checkout -b feature/AmazingFeature)
  3. πŸ’« Commit your changes (git commit -m 'Add some AmazingFeature')
  4. πŸš€ Push to the branch (git push origin feature/AmazingFeature)
  5. πŸ” Open a Pull Request

Development Process πŸ”„

  1. Fork the repository
  2. Create your feature branch
git checkout -b feature/amazing-feature
  1. Commit changes
git commit -m 'feat: add amazing feature'
  1. Push to the branch
git push origin feature/amazing-feature
  1. Open a Pull Request

πŸ“„ License

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

πŸ“« Contact

Let's connect! Reach out to me through:


Made with ❀️ by Waleed Zaryab | © 2024 All Rights Reserved ✨

About

Developer Candidate Search Application

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published