Connecting workers and employers, seamlessly.
LabourIn is a modern web application that bridges the gap between daily-wage workers and employers. It provides a platform for job posting, worker discovery, real-time chat, location-based job matching, and profile management.
- 🔐 Authentication — Secure sign-up and login for workers and employers
- 🗺️ Map-Based Job Discovery — Find nearby jobs using Google Maps integration
- 📋 Job Posting — Employers can quickly post job listings with required skills and pay
- 💬 Real-Time Chat — In-app messaging between workers and employers
- 👤 Profile Management — Detailed worker and employer profiles
- 📊 Dashboard — Personalized dashboard with relevant job and activity stats
| Layer | Technology |
|---|---|
| Frontend | React 18, TypeScript, Vite |
| UI Components | shadcn/ui, Radix UI, Tailwind CSS |
| Animations | Framer Motion |
| Routing | React Router v6 |
| Forms | React Hook Form + Zod |
| Maps | @react-google-maps/api |
| Backend / Auth | Firebase (Auth + Firestore) |
| Mobile (Hybrid) | Capacitor |
| State Management | TanStack Query |
- Node.js ≥ 18
- npm ≥ 9
# Clone the repository
git clone https://github.com/Ashitosh2004/LabourIn.git
cd LabourIn
# Install dependencies
npm installnpm run devThe app will be available at http://localhost:5173.
npm run build
npm run previewsrc/
├── components/ # Reusable UI components
│ ├── dashboard/ # Dashboard-specific components
│ ├── layout/ # Layout wrappers (navbar, sidebar, etc.)
│ └── ui/ # shadcn/ui base components
├── contexts/ # React context providers
├── hooks/ # Custom React hooks
├── lib/ # Utility functions and Firebase config
├── pages/ # Application pages / routes
│ ├── AuthPage.tsx
│ ├── ChatPage.tsx
│ ├── Dashboard.tsx
│ ├── Index.tsx
│ ├── MapPage.tsx
│ ├── PostJob.tsx
│ └── ProfilePage.tsx
└── main.tsx # App entry point
This project supports mobile deployment via Capacitor:
# Build the web app first
npm run build
# Sync with Capacitor
npx cap sync
# Open in Android Studio
npx cap open android# Run tests once
npm test
# Run tests in watch mode
npm run test:watchThis project is for educational and personal use.
Ashitosh — @Ashitosh2004