A modern, full-stack talent management platform built with React, TypeScript, and Vite. TalentFlow provides comprehensive tools for HR teams to manage job postings, candidate assessments, and recruitment workflows.
- Job Management: Create, edit, and manage job postings with detailed requirements
- Candidate Management: Track and manage candidate profiles and applications
- Assessment Builder: Create dynamic, multi-section assessments with various question types
- Assessment Preview: Real-time preview of assessments before publishing
- Assessment Results: View and analyze candidate assessment responses
- Dashboard Analytics: Comprehensive HR dashboard with key metrics
- Single Choice
- Multiple Choice
- Short Text
- Long Text
- Numeric Input
- File Upload
- Conditional Logic: Questions can be shown/hidden based on previous answers
- Real-time Validation: Client-side validation with customizable rules
- Responsive Design: Mobile-first design with Tailwind CSS
- Mock API: Complete mock backend with MSW (Mock Service Worker)
- Local Storage: Persistent data storage with IndexedDB via Dexie
- React 19.1.1 - UI library with latest features
- TypeScript 5.8.3 - Type-safe JavaScript
- Vite 7.1.2 - Fast build tool and dev server
- React Router DOM 7.9.0 - Client-side routing
- Tailwind CSS 4.1.13 - Utility-first CSS framework
- Dexie 4.2.0 - IndexedDB wrapper for local storage
- MSW 2.11.2 - Mock Service Worker for API mocking
- Axios 1.12.1 - HTTP client for API requests
- Radix UI - Accessible component primitives
- Lucide React - Beautiful icon library
- React Hot Toast - Toast notifications
- Class Variance Authority - Component variant management
- ESLint - Code linting and formatting
- TypeScript ESLint - TypeScript-specific linting rules
- Faker.js - Fake data generation for development
src/
├── components/ # Reusable UI components
│ ├── common/ # Shared components (JobCard, JobSkeleton)
│ ├── HrDashboard/ # HR-specific components
│ ├── Jobs/ # Job-related components
│ ├── layout/ # Layout components (Header, Footer, HrLayout)
│ ├── sections/ # Landing page sections
│ └── ui/ # Base UI components (Button, Card, Logo)
├── pages/ # Page components
│ ├── AssessmentBuilder.tsx
│ ├── AssessmentPreview.tsx
│ ├── AssessmentResults.tsx
│ ├── Assessments.tsx
│ ├── CandidateJobs.tsx
│ ├── CandidateProfile.tsx
│ ├── Candidates.tsx
│ ├── HrDashboard.tsx
│ ├── JobDetails.tsx
│ ├── Jobs.tsx
│ └── Landing.tsx
├── services/ # Business logic and data layer
│ ├── db/ # Database layer (Dexie)
│ ├── mocks/ # Mock API handlers (MSW)
│ └── seed/ # Seed data generation
├── types/ # TypeScript type definitions
├── utils/ # Utility functions
└── main.tsx # Application entry point
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone <repository-url> cd talentflow
-
Install dependencies
npm install
-
Start development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
- Component-Based: Modular React components with clear separation of concerns
- Type-Safe: Full TypeScript coverage with strict type checking
- Responsive: Mobile-first design with Tailwind CSS
- Accessible: Built with accessibility in mind using Radix UI primitives
- Mock Backend: MSW provides complete API simulation
- Local Storage: Dexie manages IndexedDB for persistent data
- Seed Data: Faker.js generates realistic test data
- Type Safety: All data operations are fully typed
- Client-Side Routing: React Router DOM handles navigation
- Nested Routes: Dashboard with nested assessment routes
- Route Protection: Automatic redirects for HR login flow
- Latest React features including improved concurrent rendering
- Better performance with automatic batching
- Enhanced developer experience with new hooks
- Faster builds: 10-100x faster than CRA
- Better HMR: Instant hot module replacement
- Modern tooling: Built-in TypeScript and CSS support
- Smaller bundle: Tree-shaking and optimized builds
- Better performance: IndexedDB is more efficient for large datasets
- Structured queries: SQL-like query capabilities
- Type safety: Full TypeScript support
- Offline-first: Works without network connection
- Realistic mocking: Intercepts actual HTTP requests
- Development: Same code works in both environments
- Better debugging: Network tab shows actual requests
- Flexible: Easy to add complex business logic
- Utility-first: Rapid prototyping and consistent design
- Responsive: Mobile-first approach built-in
- Customizable: Easy to extend with custom design system
- Performance: Purges unused styles in production
Issue: 404 errors when refreshing pages on Vercel
Solution: Added vercel.json
with rewrite rules to serve index.html
for all routes
Issue: Dynamic MSW imports failing in production builds Solution: Added error handling with fallback to start app without MSW
Issue: React hydration errors with <span>
elements inside <option>
elements
Solution: Removed HTML elements from option content, using only text
Issue: New assessments not appearing in list after creation Solution: Added multiple refresh triggers (location change, window focus)
- Connect your GitHub repository to Vercel
- Vercel will automatically detect Vite configuration
- The
vercel.json
file handles SPA routing - Deploy with zero configuration
- Netlify: Add
_redirects
file with/* /index.html 200
- GitHub Pages: Use
gh-pages
package with proper base path - AWS S3 + CloudFront: Configure error pages to redirect to
index.html
- User authentication and authorization
- Real-time collaboration on assessments
- Advanced analytics and reporting
- Email notifications and integrations
- Bulk operations for candidates
- Assessment templates and library
- API rate limiting and caching
- Progressive Web App (PWA) features
- Add comprehensive test coverage
- Implement error boundaries
- Add performance monitoring
- Optimize bundle size further
- Add internationalization (i18n)
- Implement dark mode theme
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m '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.
- React - The UI library
- Vite - The build tool
- Tailwind CSS - The CSS framework
- MSW - The API mocking library
- Dexie - The IndexedDB wrapper
- Radix UI - The component primitives
TalentFlow - Streamlining talent management for modern HR teams.