A modern, responsive frontend application built with Next.js, TypeScript, and Tailwind CSS for the HireKarma job portal platform.
- Modern UI/UX: Beautiful, responsive design with smooth animations
- Dark/Light Mode: Built-in theme switching with system preference detection
- TypeScript: Full type safety and better development experience
- Responsive Design: Mobile-first approach with excellent cross-device compatibility
- Form Validation: Robust form handling with Zod schema validation
- Authentication: Complete login/registration system for multiple user types
- API Integration: Seamless backend integration with automatic token management
Based on the HireKarma logo:
- Primary Blue:
#00B0E0- Main brand color - Black:
#000000- Primary text color - White:
#FFFFFF- Background color - Gray Scale: Comprehensive gray palette for UI elements
- Font Family: Inter (Google Fonts)
- Weights: Regular, Medium, Semibold, Bold
- Responsive: Fluid typography scaling
- Button: Multiple variants (default, outline, ghost, gradient)
- Input: Form inputs with icon support and validation states
- Select: Custom dropdown with search functionality
- Card: Flexible card components for content organization
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Forms: React Hook Form + Zod
- Animations: Framer Motion
- Icons: Lucide React
- HTTP Client: Axios
- State Management: Zustand
- Theming: next-themes
- Notifications: React Hot Toast
-
Clone the repository
cd client/ui -
Install dependencies
npm install # or yarn install # or pnpm install
-
Set up environment variables Create a
.env.localfile in the root directory:NEXT_PUBLIC_API_URL=http://localhost:8000 NEXT_PUBLIC_APP_NAME=HireKarma
-
Start the development server
npm run dev # or yarn dev # or pnpm dev
-
Open your browser Navigate to http://host:3000
client/ui/
โโโ app/ # Next.js App Router
โ โโโ auth/ # Authentication pages
โ โ โโโ login/ # Login page
โ โ โโโ register/ # Registration page
โ โโโ globals.css # Global styles
โ โโโ layout.tsx # Root layout
โ โโโ page.tsx # Home page
โโโ components/ # Reusable components
โ โโโ providers/ # Context providers
โ โโโ ui/ # UI components
โโโ lib/ # Utility libraries
โ โโโ api.ts # API client
โ โโโ utils.ts # Helper functions
โโโ types/ # TypeScript type definitions
โ โโโ auth.ts # Authentication types
โโโ public/ # Static assets
โโโ tailwind.config.js # Tailwind configuration
โโโ tsconfig.json # TypeScript configuration
โโโ package.json # Dependencies and scripts
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run type-check- Run TypeScript type checking
- TypeScript: Strict mode enabled
- ESLint: Next.js recommended configuration
- Prettier: Automatic code formatting
- Import Aliases: Use
@/for absolute imports
- Use TypeScript interfaces for props
- Implement proper error handling
- Add loading states for async operations
- Use semantic HTML elements
- Ensure accessibility (ARIA labels, keyboard navigation)
The frontend integrates with the HireKarma backend API:
POST /api/v1/auth/login- User loginPOST /api/v1/auth/register/student- Student registrationPOST /api/v1/auth/register/corporate- Corporate registrationPOST /api/v1/auth/register/university- University registrationPOST /api/v1/auth/register/admin- Admin registration
- Automatic Token Management: JWT tokens stored securely
- Token Refresh: Automatic token renewal
- Error Handling: Comprehensive error handling with user feedback
- Request/Response Interceptors: Centralized API configuration
The application supports four main user types:
- Profile creation with academic details
- Skill management and career preferences
- Job application tracking
- Resume building tools
- Company profile management
- Job posting and management
- Candidate search and filtering
- Analytics and reporting
- Institution profile management
- Student placement tracking
- Industry partnerships
- Career services management
- System administration
- User management
- Platform analytics
- Content moderation
npm run build
npm run startEnsure all required environment variables are set in production:
NEXT_PUBLIC_API_URL- Backend API URLNEXT_PUBLIC_APP_NAME- Application name
- Image Optimization: Next.js built-in image optimization
- Code Splitting: Automatic route-based code splitting
- Bundle Analysis: Use
@next/bundle-analyzerfor optimization - CDN: Configure CDN for static assets
- HTTPS: Always use HTTPS in production
- CORS: Proper CORS configuration
- Input Validation: Server-side and client-side validation
- XSS Protection: Sanitized user inputs
- CSRF Protection: Token-based CSRF protection
- Mobile First: Mobile-optimized design approach
- Breakpoints: Tailwind CSS responsive breakpoints
- Touch Friendly: Optimized for touch devices
- Performance: Fast loading on mobile networks
npm run testnpm run test:e2e- Jest: Unit testing framework
- React Testing Library: Component testing
- Playwright: E2E testing
- MSW: API mocking
- Performance Monitoring: Core Web Vitals tracking
- User Analytics: User behavior analysis
- Error Tracking: Error monitoring and reporting
- A/B Testing: Feature flag management
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
feat:New featuresfix:Bug fixesdocs:Documentation updatesstyle:Code style changesrefactor:Code refactoringtest:Test updateschore:Maintenance tasks
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Documentation: Check this README and inline code comments
- Issues: Create an issue on GitHub
- Discussions: Use GitHub Discussions for questions
- โ Authentication system
- โ User registration
- โ Basic UI components
- โ Theme system
- Dashboard implementation
- Job management system
- Profile management
- Search and filtering
- Real-time notifications
- Advanced analytics
- Mobile app
- AI-powered matching
Built with โค๏ธ by the HireKarma Team