Tech Jobs Portal 🚀💼
A modern, full-stack job board platform built with Next.js 14, featuring advanced job search, filtering, and management capabilities for the tech industry.

🌟 Key Features
🔍 Advanced Job Search & Filtering
- Smart Search Engine - Full-text search across job titles, company names, descriptions, and skills
- Multi-Filter System - Filter by job type (Full-time, Part-time, Contract, Freelance)
- Location-Based Search - Find jobs by city, state, or remote work options
- Experience Level Filtering - Filter by seniority (Entry, Mid, Senior, Lead)
- Real-time Results - Instant search results with pagination
👥 User Management & Authentication
- Secure Authentication - NextAuth.js integration with multiple providers
- User Profiles - Personalized dashboards for job seekers
- Admin Panel - Complete job management system for administrators
- Role-Based Access - Different permissions for users and admins
📝 Job Management System
- Job Posting - Easy-to-use form for creating job listings
- Rich Text Editor - WYSIWYG editor for detailed job descriptions
- Job Approval Workflow - Admin approval system for quality control
- Job Editing & Updates - Full CRUD operations for job management
- Company Logos - Support for company branding and logos
🎨 Modern UI/UX
- Responsive Design - Mobile-first approach with Tailwind CSS
- Dark/Light Theme - Toggle between themes with system preference detection
- Component Library - Reusable UI components with Radix UI
- Accessibility - WCAG compliant with keyboard navigation
- Loading States - Smooth loading animations and skeleton screens
🛠 Technical Features
- Type Safety - Full TypeScript implementation
- Database Integration - Prisma ORM with SQLite/PostgreSQL support
- API Routes - RESTful API endpoints for job operations
- Form Validation - Zod schema validation for data integrity
- Error Handling - Comprehensive error boundaries and user feedback
🏗️ Tech Stack
Frontend
- Next.js 14 - React framework with App Router
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Accessible component primitives
- Framer Motion - Animation library
- React Hook Form - Form management
- Zod - Schema validation
Backend
- Next.js API Routes - Serverless API endpoints
- Prisma - Database ORM and query builder
- NextAuth.js - Authentication framework
- SQLite/PostgreSQL - Database options
Development Tools
- ESLint - Code linting
- Prettier - Code formatting
- PostCSS - CSS processing
- Playwright - End-to-end testing
📁 Project Structure
src/
├── app/ # Next.js App Router
│ ├── api/ # API routes
│ ├── admin/ # Admin dashboard
│ ├── jobs/ # Job-related pages
│ ├── resources/ # Career resources
│ └── globals.css # Global styles
├── components/ # Reusable UI components
│ ├── ui/ # Base UI components
│ └── *.tsx # Feature components
├── lib/ # Utility functions
│ ├── auth.ts # Authentication config
│ ├── prisma.ts # Database client
│ └── validation.ts # Zod schemas
├── types/ # TypeScript type definitions
└── styles/ # Additional CSS files
🚀 Getting Started
Prerequisites
- Node.js 18+
- npm or yarn
- Git
Installation
-
Clone the repository
git clone https://github.com/AlainKwishima/Tech-Jobs-Portal.git
cd Tech-Jobs-Portal
-
Install dependencies
npm install
-
Set up the database
npx prisma migrate dev
npx prisma generate
-
Start the development server
npm run dev
-
Open your browser
Navigate to http://localhost:3000
Environment Variables
Create a .env.local file in the root directory:
# Database
DATABASE_URL="file:./dev.db"
# NextAuth
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL="http://localhost:3000"
# Optional: OAuth providers
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
📊 Available Scripts
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run type-check # Run TypeScript checks
🎯 Features in Detail
Job Search & Discovery
- Advanced search with multiple criteria
- Real-time filtering and sorting
- Pagination for large result sets
- Search history and saved searches
Job Management
- Create, edit, and delete job postings
- Rich text editor for job descriptions
- File upload for company logos
- Job approval workflow
User Experience
- Responsive design for all devices
- Dark/light theme support
- Smooth animations and transitions
- Accessible navigation
Admin Features
- Complete job management dashboard
- User management and permissions
- Analytics and reporting
- Bulk operations
🤝 Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
- 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
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Next.js for the amazing React framework
- Prisma for the excellent database toolkit
- Tailwind CSS for the utility-first CSS framework
- Radix UI for accessible component primitives
📞 Support
If you have any questions or need help, please:
- Open an issue on GitHub
- Check the documentation
- Contact the maintainers
Made with ❤️ by the Tech Jobs Portal Team