Job Junction is a web application built using the MERN stack (MongoDB, Express.js, React, Node.js). It serves as a platform to connect local workers (laborers) with customers who need services such as TV mounting, cleaning, plumbing, and more. Workers can register, offer their services, and get booked for jobs in their area. The system also provides a secure way for users to search for and book services.
- User Registration & Login: Both customers and workers can register and log in securely using JWT authentication.
- Worker Registration: Workers can create profiles and offer services across different categories and areas.
- Service Booking: Customers can search for services based on location and book workers for specific tasks.
- Secure Authentication: JWT (JSON Web Tokens) are used to authenticate users and manage secure sessions.
- Service Categorization: Tasks are organized into categories (e.g., cleaning, plumbing, electrical work) with workers specializing in different services.
- Admin Panel: A centralized admin dashboard to manage users, services, and bookings.
- Area-Based Search: Customers can search for available workers in their locality.
- Real-Time Notifications: Notify workers of new bookings and users of confirmation statuses.
- Transaction Management: Secure handling of service payments, powered by MongoDB transactions.
- Frontend: React.js, Bootstrap
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: JWT (JSON Web Token)
- Styling: CSS, Bootstrap
- Version Control: Git
- Register: Users (customers) and workers can sign up and log in.
- Book a Service: After logging in, customers can browse available workers and book a service based on location.
- Manage Bookings: Workers can view and manage incoming service requests from their dashboard.
- Admin Dashboard: Admins can manage users, services, and transactions.
- POST
/api/auth/register
- Register a new user (customer/worker) - POST
/api/auth/login
- Login for existing users
- GET
/api/users
- Get all users (Admin only) - GET
/api/users/:id
- Get details of a single user
- POST
/api/services
- Create a new service (Worker only) - GET
/api/services
- Get all available services - GET
/api/services/:id
- Get details of a specific service - POST
/api/bookings
- Book a service (Customer only)
- GET
/api/admin/requests
- Get all service requests (Admin only) - DELETE
/api/admin/users/:id
- Remove a user (Admin only)
- POST
/api/bookings
- Create a new service booking - GET
/api/bookings/:id
- Get details of a booking
Job-Junction/
├── backend/ # Backend (Node.js, Express)
│ ├── config/ # Configuration files (e.g., database connection)
│ ├── controllers/ # Route handler logic
│ ├── models/ # MongoDB Models (User, Service, Booking)
│ ├── routes/ # API routes (auth, users, services, bookings)
│ └── server.js # Entry point for backend server
├── frontend/ # Frontend (React)
│ ├── src/ # React source code
│ │ ├── components/ # Reusable React components
│ │ ├── pages/ # Application pages (Login, Register, Home, Admin)
│ │ ├── utils/ # Utility functions (API calls, authentication)
│ │ ├── App.js # Main application component
│ └── public/ # Static files
└── README.md # This file
- Reviews and Ratings: Allow users to rate and review workers after services.
- Payment Gateway Integration: Implement a secure payment system for booking services.
- SMS/Email Notifications: Notify users and workers about booking confirmations and reminders.
- Location-Based Suggestions: Use geolocation to recommend services based on the user's current location.
- Advanced Filtering: Add filters for price, service type, worker ratings, etc.
- Mobile App: Develop a mobile version of the platform using React Native.
Contributions are welcome! If you would like to contribute to this project, follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-name
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-name
). - Open a pull request.
Please ensure all tests pass before submitting your changes.
This project is licensed under the MIT License - see the LICENSE file for details.