Skip to content

Labora is a full-stack freelance job platform that enables users to post job opportunities, browse available tasks, and accept projects.

Notifications You must be signed in to change notification settings

programmerrakibul/labora-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

109 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‘©β€πŸ’» Labora

Where talent meets opportunity - A modern freelance job marketplace connecting skilled professionals with clients worldwide.

Live Demo

React Vite Firebase Tailwind CSS MongoDB

πŸ“‹ Overview

Labora is a full-stack freelance job platform that enables users to post job opportunities, browse available tasks, and accept projects. Built with modern web technologies, it offers a seamless experience with real-time updates, secure authentication, and an intuitive interface.

✨ Key Features

🎨 User Experience

  • Dark/Light Mode - Seamless theme switching for comfortable viewing
  • Responsive Design - Fully optimized for mobile, tablet, and desktop devices
  • Interactive Animations - Smooth transitions with Lottie animations and Motion
  • Modern UI - Clean interface built with Tailwind CSS and DaisyUI

πŸ” Authentication & Security

  • Firebase Authentication - Secure user registration and login
  • Google OAuth - Quick sign-in with Google accounts
  • Protected Routes - Private routes for authenticated users only
  • JWT Token Management - Secure session handling

πŸ’Ό Job Management

  • Post Jobs - Create new job listings with detailed information
  • Browse Jobs - View all available opportunities with filtering options
  • Job Details - Access comprehensive information for each listing
  • Update & Delete - Full CRUD operations for job owners
  • Accept Tasks - Apply for jobs posted by other users
  • My Jobs - Manage your posted jobs
  • Accepted Tasks - Track jobs you've accepted

πŸ› οΈ Technical Features

  • Real-time Updates - Dynamic data synchronization
  • API Integration - RESTful API communication with Axios
  • Date Formatting - Human-readable dates with date-fns
  • Toast Notifications - User feedback with React Toastify
  • Sweet Alerts - Beautiful confirmation dialogs
  • Image Sliders - Engaging carousels with Swiper

πŸ—οΈ Tech Stack

Frontend

  • React 19.1.1 - Modern UI library with latest features
  • React Router 7.9.5 - Client-side routing
  • Tailwind CSS 4.1.17 - Utility-first CSS framework
  • DaisyUI 5.4.7 - Tailwind CSS component library
  • Vite 7.1.7 - Next-generation frontend tooling

Backend Integration

  • Node.js & Express.js - Server-side runtime and framework
  • MongoDB - NoSQL database for data persistence
  • Axios 1.13.2 - HTTP client for API requests

Authentication & Hosting

  • Firebase 12.5.0 - Authentication and hosting platform
  • Firebase Hosting - Fast and secure web hosting

UI/UX Libraries

  • Motion 12.23.24 - Animation library
  • Lottie React 2.4.1 - Lightweight animations
  • React Icons 5.5.0 - Icon library
  • Swiper 12.0.3 - Modern slider component
  • React Spinners 0.17.0 - Loading indicators
  • SweetAlert2 11.26.3 - Beautiful popup boxes

πŸš€ Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn
  • Firebase account
  • MongoDB database (for backend)

Installation

  1. Clone the repository

    git clone https://github.com/programmerrakibul/labora-client.git
    cd labora-client
  2. Install dependencies

    npm install
  3. Configure environment variables

    Create a .env.local file in the root directory:

    VITE_APP_apiKey=your_firebase_api_key
    VITE_APP_authDomain=your_firebase_auth_domain
    VITE_APP_projectId=your_firebase_project_id
    VITE_APP_storageBucket=your_firebase_storage_bucket
    VITE_APP_messagingSenderId=your_firebase_messaging_sender_id
    VITE_APP_appId=your_firebase_app_id
  4. Start the development server

    npm run dev
  5. Open your browser

    Navigate to http://localhost:5173

πŸ“œ Available Scripts

npm run dev      # Start development server
npm run build    # Build for production
npm run preview  # Preview production build
npm run lint     # Run ESLint

πŸ“ Project Structure

labora-client/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ assets/          # Images and static files
β”‚   β”œβ”€β”€ components/      # Reusable UI components
β”‚   β”œβ”€β”€ contexts/        # React contexts
β”‚   β”œβ”€β”€ firebase/        # Firebase configuration
β”‚   β”œβ”€β”€ hooks/           # Custom React hooks
β”‚   β”œβ”€β”€ layouts/         # Layout components
β”‚   β”œβ”€β”€ pages/           # Page components
β”‚   β”œβ”€β”€ providers/       # Context providers
β”‚   β”œβ”€β”€ routes/          # Route configuration
β”‚   β”œβ”€β”€ utilities/       # Helper functions
β”‚   β”œβ”€β”€ App.jsx          # Root component
β”‚   β”œβ”€β”€ main.jsx         # Entry point
β”‚   └── index.css        # Global styles
β”œβ”€β”€ lotties/             # Lottie animation files
β”œβ”€β”€ public/              # Public assets
β”œβ”€β”€ .env.local           # Environment variables
β”œβ”€β”€ firebase.json        # Firebase configuration
β”œβ”€β”€ vite.config.js       # Vite configuration
└── package.json         # Dependencies

🎯 Core Pages

  • Homepage - Landing page with featured jobs and categories
  • All Jobs - Browse all available job listings
  • Job Details - Detailed view of individual jobs
  • Add Job - Create new job postings (authenticated)
  • My Jobs - Manage your posted jobs (authenticated)
  • My Accepted Tasks - View jobs you've accepted (authenticated)
  • Update Job - Edit job details (authenticated)
  • Login/Register - User authentication pages

πŸ”’ Environment Variables

Variable Description
VITE_APP_apiKey Firebase API key
VITE_APP_authDomain Firebase auth domain
VITE_APP_projectId Firebase project ID
VITE_APP_storageBucket Firebase storage bucket
VITE_APP_messagingSenderId Firebase messaging sender ID
VITE_APP_appId Firebase app ID

🌐 Deployment

The project is configured for Firebase Hosting:

npm run build
firebase deploy

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“§ Contact

For any inquiries or feedback, reach out at: rakibul00206@gmail.com


Built with ❀️ by Rakibul

⭐ Star this repo if you find it helpful!

About

Labora is a full-stack freelance job platform that enables users to post job opportunities, browse available tasks, and accept projects.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors