Skip to content

ankrsinha/TalentHub-website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 

Repository files navigation

TalentHub

Connecting Talent with Opportunity, Seamlessly.

Build Issues Contributions License

Table of Contents

⭐ Overview

TalentHub is a cutting-edge, full-stack freelance marketplace platform designed to empower individuals and businesses to seamlessly connect, collaborate, and transact for various services.

The modern economy thrives on specialized skills, yet finding the right talent or showcasing one's expertise often remains a fragmented and inefficient process. Existing solutions frequently suffer from high fees, limited communication channels, or a lack of focused features, hindering productive collaborations and stifling opportunities for skilled professionals.

TalentHub addresses these challenges by providing a robust, intuitive, and secure environment where freelancers can showcase their "gigs" (service offerings) and clients can discover, hire, and manage projects with ease. With an emphasis on secure transactions, clear communication, and transparent reviews, TalentHub fosters a vibrant community built on trust and efficiency.

Inferred Architecture: This project adopts a Monorepo architecture, housing both the frontend and backend components within a single repository for streamlined development and deployment. It operates as a sophisticated MERN (MongoDB, Express.js, React, Node.js) stack application:

  • Backend: A robust Node.js application built with Express.js serves as a RESTful API. It handles authentication (JWT), data management (likely leveraging MongoDB for persistent storage), payment processing (Stripe integration), and business logic. The controllers, routes, and models structure indicates a well-organized API layer.
  • Frontend: A dynamic Single Page Application (SPA) developed using React.js. It leverages Vite for a fast development experience and efficient bundling, React Router DOM for navigation, and Sass for modular styling. The frontend consumes the backend API to provide a rich, interactive user experience for gig management, messaging, orders, and user profiles.

✨ Key Features

TalentHub is packed with functionalities designed to provide a comprehensive freelance marketplace experience:

  • 📈 Gig Management & Discovery: Users can effortlessly create, publish, edit, and manage their service offerings (gigs) with detailed descriptions, pricing, and categories. Clients can browse and discover relevant gigs through intuitive search and filtering capabilities.
  • 👤 Secure User Authentication & Profiles: A complete authentication system allows for secure user registration, login, and robust password management (forgot/reset password functionality). Comprehensive user profiles enable talent to showcase their skills and clients to view credentials.
  • 💳 Integrated Order & Payment System: Facilitates secure and seamless service ordering. Leverages Stripe for reliable payment processing, allowing clients to pay for services and freelancers to receive payments with confidence. Includes success and error handling for transactions.
  • ⭐ Review & Rating System: Fosters trust and transparency by enabling clients to leave detailed reviews and ratings for completed gigs, helping future users make informed decisions.
  • 💬 Real-time Messaging & Conversations: Provides a dedicated messaging system for direct, private communication between clients and service providers, ensuring clarity and efficient collaboration throughout a project's lifecycle.
  • 📂 Category-based Service Organization: Services are meticulously categorized, allowing for easy navigation and discovery of specific talent or gig types, from graphic design to web development.
  • 🔒 Protected Routes & Authorization: Implements robust access control mechanisms using JWT, ensuring that sensitive routes and functionalities are accessible only to authenticated and authorized users.

🛠️ Tech Stack & Architecture

TalentHub is built using a modern and scalable set of technologies, chosen for their performance, developer experience, and ecosystem maturity.

Technology Purpose Why it was Chosen
Node.js Backend Runtime High performance, non-blocking I/O, vast npm ecosystem, ideal for API services.
Express.js Backend Web Framework Minimalist, fast, unopinionated, flexible for building robust REST APIs.
MongoDB Database NoSQL, schema-less, highly scalable, ideal for handling diverse freelance data. (Inferred from model structure)
Mongoose ODM for MongoDB Provides object data modeling for MongoDB, simplifying data interaction and validation. (Inferred from model structure)
React 19 Frontend Library Declarative, component-based UI development, excellent for complex SPAs.
Vite Frontend Build Tool Extremely fast development server and build times, optimizing developer productivity.
Sass CSS Preprocessor Enables modular, maintainable, and scalable CSS with features like variables and mixins.
Axios HTTP Client (Frontend) Promise-based HTTP client for making API requests from the frontend, robust error handling.
Stripe Payment Processing Secure, reliable, and widely adopted platform for online payment gateways.
JSON Web Tokens (JWT) Authentication & Authorization Securely transmits information between parties as a JSON object, stateless authentication.
React Router DOM Frontend Routing Declarative routing for React applications, enabling seamless navigation within the SPA.
TanStack Query Data Fetching & Caching (Frontend) Powerful library for managing, caching, synchronizing, and updating asynchronous data in React.
Embla Carousel UI Component (Frontend) Lightweight and dependency-free carousel library for responsive image/content sliders.

🚀 Getting Started

Follow these steps to get TalentHub up and running on your local machine.

Prerequisites

Ensure you have the following software installed:

  • Node.js: v18.x or higher (includes npm)
  • MongoDB: Local installation or access to a cloud-hosted MongoDB instance (e.g., MongoDB Atlas).

Installation

  1. Clone the repository:

    git clone https://github.com/Ankur7470/Ankur7470-TalentHub-website-1fb4bfa.git
    cd Ankur7470-TalentHub-website-1fb4bfa
  2. Backend Setup: Navigate to the backend directory, install dependencies, and configure environment variables.

    cd backend
    npm install
    cp .env.example .env

    Open the newly created .env file and update the following variables with your actual values:

    # Example .env content (adjust as needed based on your actual backend env variables)
    PORT=8800
    MONGO_URI="mongodb://localhost:27017/talenthub" # Or your MongoDB Atlas connection string
    JWT_KEY="YOUR_SUPER_SECRET_JWT_KEY"
    STRIPE_SECRET_KEY="sk_test_YOUR_STRIPE_SECRET_KEY"
    CLIENT_URL="http://localhost:5173"
    # Add any other environment variables (e.g., for email services)
    

    Start the backend server:

    npm start # or node server.js if "start" script is not defined in package.json
  3. Frontend Setup: Open a new terminal, navigate to the client directory, install dependencies, and configure environment variables.

    cd ../client # From backend directory
    npm install
    cp .env.example .env # If an .env.example exists in client, otherwise create .env manually

    Open the .env file (create if it doesn't exist) and set your API base URL and Stripe public key:

    VITE_API_BASE_URL=http://localhost:8800/api # Ensure this matches your backend port
    VITE_STRIPE_PUBLIC_KEY="pk_test_YOUR_STRIPE_PUBLIC_KEY"
    

    Start the frontend development server:

    npm run dev

🔧 Usage

Once both the backend and frontend servers are running:

  1. Open your web browser and navigate to http://localhost:5173 (or the port Vite specified if different).
  2. Register a new user as a client or a seller.
  3. Explore Gigs: Browse existing service offerings.
  4. Create a Gig: If registered as a seller, navigate to "Add a New Gig" to list your services.
  5. Place an Order: As a client, select a gig and proceed through the secure payment process.
  6. Communicate: Use the integrated messaging system to interact with sellers/clients.
  7. Manage Orders & Messages: Access your dashboard to view active orders, messages, and your listed gigs.

🤝 Contributing

We welcome contributions from the community! If you're interested in making TalentHub even better, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix (git checkout -b feature/your-feature-name or fix/bug-description).
  3. Implement your changes.
  4. Commit your changes with a clear and descriptive message (git commit -m "feat: Add new feature X" or fix: Resolve bug Y).
  5. Push your branch to your forked repository (git push origin feature/your-feature-name).
  6. Open a Pull Request to the main branch of the original repository.

Please ensure your code adheres to the existing style and conventions.

📝 License

Distributed under the MIT License. See the LICENSE file for more information.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors