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. π
- β¨ Features
- π Deployment
- π οΈ Tech Stack
- π¦ Installation
- ποΈ Project Structure
- π Environment Setup
- π» Development
- π API Integration
- π¨ UI/UX Features
- π Performance
- π₯ Contributing
- π License
- π« Contact
- π 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
- β‘ 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
This portfolio is live on Render at: [https://devradar-pe79.onrender.com] π
- 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
- Type Checking: TypeScript
- Linting: ESLint with TypeScript plugins
- Code Formatting: Prettier
- Icon Library: Lucide React
- Version Control: Git
- API Testing: Postman
- Code splitting with React.lazy()
- Memoization with useMemo and useCallback
- Image optimization
- Bundle size optimization
- Node.js 18.x or higher
- npm 8.x or higher
- Git
- GitHub account and personal access token
- Clone the repository
git clone https://github.com/yourusername/DEVRadar.git
cd DEVRadar
- Install dependencies
npm install
- Configure environment
cp .env.example .env
- Start development server
npm run dev
- Build for production
npm run build
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
# 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
Required scopes for full functionality:
read:user
user:email
read:org
(optional)
# 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
- ESLint configuration for React and TypeScript
- Prettier for consistent code formatting
- TypeScript strict mode enabled
// Available endpoints
GET /users # List GitHub users
GET /users/{username} # Get user details
GET /users/{username}/repos # Get user repositories
- Authentication: 5,000 requests per hour
- Unauthenticated: 60 requests per hour
- Rate limit header handling
- π― Interactive data tables
- π¨ Custom loading skeletons
- π Error boundaries
- π± Responsive navigation
- π¨ Glass morphism effects
- Page transitions
- Loading states
- Hover effects
- React.lazy() for code splitting
- useCallback for memoized functions
- useMemo for expensive calculations
- Debounced search inputs
- Optimized rerenders
- Lighthouse score: 95+
- First contentful paint: < 1s
- Time to interactive: < 2s
- Bundle size: < 200KB gzipped
Contributions are welcome! Here's how you can help:
- π΄ Fork the repository
- π± Create a feature branch (
git checkout -b feature/AmazingFeature
) - π« Commit your changes (
git commit -m 'Add some AmazingFeature'
) - π Push to the branch (
git push origin feature/AmazingFeature
) - π Open a Pull Request
- Fork the repository
- Create your feature branch
git checkout -b feature/amazing-feature
- Commit changes
git commit -m 'feat: add amazing feature'
- Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Let's connect! Reach out to me through:
- π Portfolio: www.waleedzaryab.com
- π± GitHub: https://github.com/GhostMods00
- π§ Email: westendcrew1982@gmail.com
Made with β€οΈ by Waleed Zaryab | Β© 2024 All Rights Reserved β¨