The Localized Talent & Skill Ecosystem (LTSE) is a dynamic, localized web platform designed to bridge the gap between local job seekers and regional employers while fostering continuous skill development within communities. The platform provides a comprehensive solution for job discovery, skill enhancement, and professional networking at the local level.
- π Job Board: Browse and filter job opportunities with advanced search capabilities
- π Skill Library: Access curated learning resources and track your progress
- π Badge System: Earn and display skill badges upon course completion
- π¨ Project Showcase: Share your projects and build your portfolio
- π¬ Community Feed: Network with other professionals and participate in discussions
- βοΈ Job Posting: Simple interface to post and manage job listings
- π₯ Candidate Discovery: Access to community profiles and skill badges
- π Application Management: Track and manage job applications
- π€ AI-Sourced Jobs: Automated job aggregation from multiple sources
- π Smart Skill Recommendations: Automated course and workshop suggestions
- π Resource Curation: Continuously updated skill-building resources
Frontend: React (JSX) + Tailwind CSS
Backend: Node.js + Express
Database: MongoDB (via Google Cloud Firestore)
Auth: Firebase Authentication
Hosting: [To be determined]
LTSE Platform
βββ Authentication Layer (Firebase)
βββ Frontend (React SPA)
β βββ Job Seeker Dashboard
β βββ Recruiter Dashboard
β βββ Job Board Module
β βββ Skill Library Module
β βββ Community Module
βββ Backend API (Express)
β βββ Job Management
β βββ Skill Resources
β βββ User Profiles
β βββ Community Features
βββ Data Layer (Firestore)
βββ /jobs
βββ /skills
βββ /community_posts
βββ /user_profiles
- Node.js (v16 or higher)
- npm or yarn
- Firebase Account
- Google Cloud Platform Account (for Firestore)
-
Clone the repository
git clone <repository-url> cd rozgar
-
Install dependencies
Frontend:
cd frontend npm installBackend:
cd backend npm install -
Configure Environment Variables
Create
.envfiles in both frontend and backend directories:Frontend
.env:REACT_APP_FIREBASE_API_KEY=your_api_key REACT_APP_FIREBASE_AUTH_DOMAIN=your_auth_domain REACT_APP_FIREBASE_PROJECT_ID=your_project_id REACT_APP_FIREBASE_STORAGE_BUCKET=your_storage_bucket REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_sender_id REACT_APP_FIREBASE_APP_ID=your_app_id
Backend
.env:PORT=5000 MONGODB_URI=your_mongodb_connection_string FIREBASE_SERVICE_ACCOUNT=path_to_service_account.json JWT_SECRET=your_jwt_secret
-
Initialize Firestore
- Set up Firestore database in Google Cloud Console
- Configure security rules for public data access
- Create initial collections:
jobs,skills,community_posts,user_profiles
-
Run the application
Backend:
cd backend npm run devFrontend:
cd frontend npm start -
Access the application
- Frontend:
http://localhost:3000 - Backend API:
http://localhost:5000
- Frontend:
rozgar/
βββ frontend/
β βββ public/
β βββ src/
β β βββ components/
β β β βββ auth/
β β β βββ dashboard/
β β β βββ jobs/
β β β βββ skills/
β β β βββ community/
β β βββ contexts/
β β βββ hooks/
β β βββ services/
β β βββ utils/
β β βββ App.jsx
β β βββ index.js
β βββ package.json
β βββ tailwind.config.js
βββ backend/
β βββ controllers/
β βββ models/
β βββ routes/
β βββ middleware/
β βββ services/
β βββ config/
β βββ server.js
β βββ package.json
βββ README.md
The platform follows a LinkedIn-inspired professional aesthetic with:
- Color Palette: Primary blues (#0A66C2), neutral grays, crisp whites
- Typography: Clean, readable sans-serif fonts (Inter, Roboto)
- Layout: Card-based design with clear section separation
- Spacing: Generous whitespace for visual clarity
- Components: Rounded corners, subtle shadows, smooth transitions
- Responsive: Mobile-first approach with adaptive breakpoints
// Key design tokens
colors: {
primary: '#0A66C2',
secondary: '#378fe9',
accent: '#70B5F9',
text: {
primary: '#000000e6',
secondary: '#00000099',
},
background: {
primary: '#ffffff',
secondary: '#f3f2ef',
}
}Capabilities:
- Register and authenticate
- Browse and search jobs with advanced filters
- Access skill library and track progress
- Earn and display skill badges
- Submit projects to showcase
- Participate in community discussions
Capabilities:
- Register and authenticate
- Post new job listings
- Manage existing job postings
- View candidate profiles
- Track applications
Functions:
- Aggregate job listings from external sources
- Curate skill-building resources
- Suggest relevant courses and workshops
- Update content continuously
User Registration/Login
β
Firebase Authentication
β
Token Generation
β
Role Assignment (Job Seeker/Recruiter)
β
Dashboard Access
Supported Methods:
- Email/Password
- Google OAuth
- Anonymous Sign-in (fallback)
- Password Recovery
{
"jobId": "unique_id",
"title": "Software Developer",
"description": "Job description...",
"skills": ["React", "Node.js"],
"experienceLevel": "Mid-level",
"jobType": "Full-time",
"recruiterId": "user_id",
"source": "manual" | "ai-sourced",
"postedAt": "timestamp",
"location": "City, State"
}{
"skillId": "unique_id",
"title": "React Fundamentals",
"description": "Learn React basics...",
"category": "Web Development",
"provider": "Coursera",
"link": "https://...",
"source": "ai-sourced" | "community",
"tags": ["react", "javascript"],
"difficulty": "Beginner"
}{
"userId": "unique_id",
"displayName": "John Doe",
"email": "john@example.com",
"role": "job_seeker" | "recruiter",
"badges": ["react_badge", "node_badge"],
"completedCourses": ["course_id_1"],
"inProgressCourses": ["course_id_2"],
"projects": ["project_id_1"]
}{
"postId": "unique_id",
"type": "project" | "discussion",
"userId": "user_id",
"title": "My React Portfolio",
"description": "Description...",
"tags": ["react", "portfolio"],
"link": "https://github.com/...",
"comments": [],
"createdAt": "timestamp"
}- Filters: Skill tags, experience level, job type, source
- Search: Real-time text search across titles and descriptions
- Real-time Updates: onSnapshot listeners for live data
- Source Tags: Visual differentiation between manual and AI-sourced jobs
- Course Tracking: "In Progress" and "Completed" status
- Badge System: Automatic badge award on course completion
- External Links: Direct links to course providers
- Community Contributions: User-submitted resources
- Project Submissions: Title, description, tags, external links
- Discussion Threads: Nested comment system
- User Profiles: Public display of badges and completed projects
- Open Source Links: Integration with GitHub and other repositories
sm: 640px /* Mobile landscape */
md: 768px /* Tablets */
lg: 1024px /* Desktop */
xl: 1280px /* Large desktop */
2xl: 1536px /* Extra large */- Touch-friendly target sizes (minimum 44x44px)
- Fluid typography and spacing
- Collapsible navigation
- Optimized images and lazy loading
# Run frontend tests
cd frontend
npm test
# Run backend tests
cd backend
npm test
# Run end-to-end tests
npm run test:e2ecd frontend
npm run build
# Deploy dist foldercd backend
# Configure environment variables
# Deploy using platform-specific commands- β User registration and authentication within 30 seconds
- β Job board navigation and filtering within 60 seconds
- β Successful project submission and community interaction
- β Badge earning and profile display
- β Real-time data synchronization
- β Mobile-responsive on all screen sizes
- React: Functional components with Hooks
- Naming: camelCase for variables, PascalCase for components
- File Structure: One component per file
- Comments: JSDoc for functions, inline for complex logic
- Use React Hook Form for form management
- Implement error boundaries for robust error handling
- Optimize re-renders with React.memo and useMemo
- Use Lucide React for consistent iconography
- Implement loading states and skeleton screens
- Handle edge cases and empty states
# Feature branch
git checkout -b feature/feature-name
# Commit with conventional commits
git commit -m "feat: add job filtering functionality"
# Push and create PR
git push origin feature/feature-nameFirebase Authentication Errors:
- Verify API keys in
.env - Check Firebase Console for enabled auth methods
- Ensure domain is whitelisted in Firebase settings
Firestore Permission Errors:
- Review Firestore security rules
- Verify service account permissions
- Check data path structure
Build Failures:
- Clear node_modules and reinstall
- Update dependencies to compatible versions
- Check for TypeScript/ESLint errors
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch
- Make your changes
- Write/update tests
- Submit a pull request
See CONTRIBUTING.md for detailed guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
- Project Lead: [Name]
- Frontend Developer: [Name]
- Backend Developer: [Name]
- UI/UX Designer: [Name]
For questions or issues:
- π§ Email: support@ltse-platform.com
- π¬ Discord: [Community Link]
- π Issues: GitHub Issues
- β Core authentication
- β Job board functionality
- β Skill library basics
- β Community showcase
- π Advanced AI job matching
- π In-app messaging
- π Video interviews
- π Analytics dashboard
- π Mobile app (React Native)
- π Advanced skill assessments
- π Employer branding pages
- π Referral system
Built with β€οΈ for local communities
Last Updated: October 2025