A trust-based local service marketplace platform connecting clients with skilled providers.
QuickWork is a robust, trust-based local service marketplace platform designed to seamlessly connect clients with skilled service providers. It facilitates efficient job discovery, management, and execution within a localized context, leveraging advanced geo-spatial technologies and real-time communication. The platform supports role-based authentication for Users, Providers, and Administrators, features a real-world job location system with Geo-based data, and includes a real-time chat system for direct communication. Structured job creation, management, and a developing trust & reputation system are core components.
A live demonstration of the platform is available at: 👉 https://quickwork.site/
The QuickWork project is structured into distinct frontend and backend services, fostering a clear separation of concerns and enabling independent development and deployment.
-
Backend (
/backend):- Developed with Node.js and Express.js, providing a RESTful API for all platform functionalities.
- Utilizes MongoDB for data persistence, including GeoJSON-based storage for location data (
[lng, lat]). - Integrates Socket.IO to power the real-time chat system, enabling instant communication between users.
- Implements centralized HTTP status handling using enums for consistent API responses.
- Employs clean DTO-based API responses for structured data exchange.
- Handles authentication, user/provider/admin role management, job creation/management, and location-based queries.
- Features location autocomplete functionality, likely integrating with external geocoding APIs.
-
Frontend (
/frontend):- Built with React and TypeScript, providing a dynamic and type-safe user interface.
- Consumes APIs exposed by the backend service.
- Integrates Leaflet for interactive map views, displaying job locations and provider proximity.
- Manages user authentication flows, job browsing, application processes, and real-time chat interactions.
- Provides distinct user experiences tailored to Client, Provider, and Admin roles.
The frontend communicates with the backend via standard HTTP requests for data retrieval and manipulation, and through WebSocket connections (Socket.IO) for real-time features such as chat and potential live updates on job statuses or locations.
Before setting up and running QuickWork, ensure the following software is installed on your system:
- Node.js: Version 14.x or higher (LTS recommended).
- npm or Yarn: Package manager for Node.js. npm is typically bundled with Node.js.
- MongoDB: A running instance of MongoDB (local or cloud-hosted like MongoDB Atlas).
Follow these steps to set up the QuickWork project locally:
-
Clone the repository:
git clone https://github.com/ismailkt313/quickwork.git cd quickwork -
Backend Setup:
Navigate to the
backenddirectory, install dependencies, and configure environment variables.cd backend npm installCreate a
.envfile in thebackenddirectory with the following variables:PORT=5000 MONGO_URI=mongodb://localhost:27017/quickwork_db JWT_SECRET=your_jwt_secret_key GEOCODING_API_KEY=your_geocoding_api_key # e.g., for Mapbox, Google Maps, etc.
-
Frontend Setup:
Navigate to the
frontenddirectory, install dependencies, and configure environment variables.cd ../frontend npm installCreate a
.envfile in thefrontenddirectory with the following variables:REACT_APP_API_BASE_URL=http://localhost:5000/api REACT_APP_SOCKET_URL=http://localhost:5000 REACT_APP_MAPBOX_ACCESS_TOKEN=your_mapbox_access_token # Or similar for Leaflet tile provider
To run the QuickWork application locally, follow these instructions:
-
Start the Backend Server:
From the
backenddirectory, execute the start command.cd backend npm run dev # Or 'npm start' if a production build is configured
The backend server will typically start on
http://localhost:5000. -
Start the Frontend Application:
From the
frontenddirectory, execute the start command.cd ../frontend npm run dev # Or 'npm start'
The frontend application will typically open in your browser at
http://localhost:3000(or another available port).
You can now interact with the QuickWork platform through your web browser.
Generated by Auto-README
- 🔐 Role-based authentication (User / Provider / Admin)
- 📍 Real-world job location system with Geo-based data
- 🗺️ Job location map view for providers
- 💬 Real-time chat system (Socket.IO)
- 📦 Structured job creation and management
- ⭐ Trust & reputation-based system (in progress)
- GeoJSON-based location storage (
[lng, lat]) - Location autocomplete using external APIs
- Map integration using Leaflet
- Centralized HTTP status handling with enums
- Clean DTO-based API responses
- Frontend: React, TypeScript
- Backend: Node.js, Express, MongoDB
- Realtime: Socket.IO
- Maps: Leaflet + OpenStreetMap
👉 https://quickwork-mu.vercel.app
Actively under development. Core features implemented, with focus on scalability and real-world usage.
Ismail KT