Modern admin panel built with Next.js 16 for managing the JobHuntly platform
JobHuntly Admin Dashboard is a comprehensive administrative interface for managing the JobHuntly job search platform. Built with Next.js 16 and React 19, it provides powerful tools for monitoring platform activity, managing users, analyzing data, and maintaining system health.
π Related Repositories:
- Frontend Application - React + TypeScript
- Backend API - Express.js REST API
- Real-time Analytics - Platform statistics and KPIs
- Data Visualization - Interactive charts with Recharts
- Activity Monitoring - Recent user actions and system events
- Quick Actions - Common administrative tasks
- User Directory - Browse all registered users
- Role Management - Assign and modify user roles
- Account Status - Activate, suspend, or delete accounts
- User Details - View comprehensive user profiles
- Search & Filter - Find users by various criteria
- Job Listings - View all posted jobs
- Job Moderation - Approve or reject job postings
- Job Analytics - Track job performance metrics
- Bulk Operations - Manage multiple jobs efficiently
- Company Directory - All registered companies
- Verification - Approve company registrations
- Profile Management - Edit company information
- Company Analytics - Track company activity
- User Growth - Registration trends over time
- Job Statistics - Posting and application metrics
- Revenue Reports - Premium subscription analytics
- Platform Health - System performance indicators
- Configuration - Platform-wide settings
- Email Templates - Manage notification templates
- Feature Flags - Enable/disable features
- Security Settings - Authentication and access control
- Next.js 16.1.1 - React framework with App Router
- React 19.2.3 - Latest React with concurrent features
- TypeScript 5+ - Type-safe development
- Tailwind CSS 4 - Utility-first CSS framework
- PostCSS - CSS processing
- Axios 1.13.2 - HTTP client for API communication
- Recharts 3.6.0 - Composable charting library
- React Icons 5.5.0 - Icon library
- ESLint 9 - Code linting
- TypeScript ESLint - TypeScript-specific linting
- Node.js 18+ and npm/yarn
- Backend API running (see Backend Repository)
- Clone the repository
git clone https://github.com/shehabgamaleldeen/JobHuntly-Admin.git
cd JobHuntly-Admin- Install dependencies
npm install- Environment Configuration
Create a .env.local file in the root directory:
# API Configuration
NEXT_PUBLIC_API_URL=http://localhost:3000/api
# Admin Authentication
NEXT_PUBLIC_ADMIN_SECRET=your_admin_secret_key
# Optional: Analytics
NEXT_PUBLIC_ANALYTICS_ID=your_analytics_id- Run development server
npm run devThe dashboard will be available at http://localhost:3000
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLintapp/
βββ auth/ # Authentication pages
β βββ login/
β βββ page.tsx
βββ dashboard/ # Main dashboard
β βββ users/ # User management
β β βββ page.tsx
β βββ jobs/ # Job management
β β βββ page.tsx
β βββ companies/ # Company management
β β βββ page.tsx
β βββ analytics/ # Analytics & reports
β β βββ page.tsx
β βββ settings/ # System settings
β β βββ page.tsx
β βββ page.tsx # Dashboard home
βββ components/ # Reusable components
β βββ Sidebar.tsx
β βββ Header.tsx
β βββ UserTable.tsx
β βββ JobTable.tsx
β βββ Charts/
β βββ Modals/
βββ utils/ # Utility functions
β βββ api.ts # API client
βββ layout.tsx # Root layout
βββ page.tsx # Landing page
βββ globals.css # Global styles
The admin dashboard implements secure authentication:
- Admin-only access with JWT tokens
- Protected routes with middleware
- Session management
- Role-based permissions
-
User Metrics
- Total users
- Active users
- New registrations (daily/weekly/monthly)
- User retention rate
-
Job Metrics
- Total jobs posted
- Active job listings
- Applications submitted
- Average applications per job
-
Revenue Metrics
- Premium subscriptions
- Revenue trends
- Conversion rates
- Line charts for trends
- Bar charts for comparisons
- Pie charts for distributions
- Real-time data updates
- Responsive Design - Works on desktop and tablets
- Dark Mode Support - Tailwind CSS theming
- Intuitive Navigation - Sidebar with clear sections
- Data Tables - Sortable, filterable, paginated
- Loading States - Skeleton loaders
- Error Handling - User-friendly error messages
- Toast Notifications - Action confirmations
The dashboard communicates with the backend API:
- Centralized API client in
utils/api.ts - Axios interceptors for authentication
- Error handling and retry logic
- Type-safe API responses
GET /api/admin/users # Get all users
PUT /api/admin/users/:id # Update user
DELETE /api/admin/users/:id # Delete user
GET /api/admin/jobs # Get all jobs
GET /api/admin/analytics # Get analytics data
PUT /api/admin/settings # Update settingsnpm run build
npm run start# Install Vercel CLI
npm i -g vercel
# Deploy
vercelConfigure these in your deployment platform:
NEXT_PUBLIC_API_URL- Backend API URLNEXT_PUBLIC_ADMIN_SECRET- Admin authentication secret
sm: 640px /* Tablets */
md: 768px /* Small laptops */
lg: 1024px /* Desktops */
xl: 1280px /* Large desktops */
2xl: 1536px /* Extra large screens */- Admin-only Access - Restricted to authorized administrators
- JWT Validation - Token-based authentication
- CSRF Protection - Next.js built-in protection
- Input Sanitization - Prevent XSS attacks
- Rate Limiting - Prevent abuse
- Audit Logging - Track admin actions
- Next.js App Router - Server components by default
- Code Splitting - Automatic route-based splitting
- Image Optimization - Next.js Image component
- Caching - API response caching
- Lazy Loading - Components loaded on demand
- Overview statistics
- Recent activity feed
- Quick action buttons
- System health indicators
- User list with search/filter
- User details modal
- Role assignment
- Account status management
- Job listings table
- Job approval workflow
- Job analytics
- Bulk actions
- Interactive charts
- Date range selection
- Export reports
- Trend analysis
This is a capstone project for the NTI Full-Stack Development Program. Contributions are welcome!
Shehab Gamal El-Deen
- GitHub: shehabgamaleldeen
- LinkedIn: Shehab Gamal El-Deen
This project is part of the NTI Open-Source Applications Developer Program.
- National Telecommunication Institute (NTI)
- Open-Source Applications Developer Program
- All team members and instructors
β If you find this project helpful, please give it a star!