0% found this document useful (0 votes)
29 views74 pages

Im97k Mlv0u

SkillHive is a platform that connects skilled workers with clients seeking services for construction and maintenance tasks, providing a centralized hub for showcasing skills and facilitating hiring. The proposed system addresses the inefficiencies of existing methods by offering user-friendly features such as detailed worker profiles, direct communication, and a transparent review system. Additionally, it includes an admin panel for monitoring activities and ensuring reliability, ultimately enhancing employment opportunities for workers and service quality for clients.

Uploaded by

nasrinbanu2005
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views74 pages

Im97k Mlv0u

SkillHive is a platform that connects skilled workers with clients seeking services for construction and maintenance tasks, providing a centralized hub for showcasing skills and facilitating hiring. The proposed system addresses the inefficiencies of existing methods by offering user-friendly features such as detailed worker profiles, direct communication, and a transparent review system. Additionally, it includes an admin panel for monitoring activities and ensuring reliability, ultimately enhancing employment opportunities for workers and service quality for clients.

Uploaded by

nasrinbanu2005
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

1.

INTRODUCTION
1.1 ABSTRACT:
SkillHive is an innovative platform designed to connect skilled workers, such as electricians,
plumbers, painters, carpenters, and other professionals, with clients seeking reliable services for
construction, repair, and maintenance tasks. Acting as a centralized hub, SkillHive empowers
workers to showcase their skills, experience, and portfolios, while enabling clients to search for,
communicate with, and hire the right professionals effortlessly.

Workers can create detailed profiles showcasing their expertise, certification, experience
and availability. Clients benefits from an intivitive search and filtering system, allowing them to
find workers based on service category, Location, pricing and user ratings. The system enables
direct communication between clients and workers ensuring a seamless hiring process without
intermediaries.

To enhance reliability and professionalism, skillhive features transparent review and


rating system, enabling clients to provide feedback based on their experience. Additionally,
workers can maintain a portfolio of their completed projects, allowing clients to assess the skills
and past work before making a hiring decision.

To ensure a reliable and safe user experience, SkillHive includes worker verification
processes and a dedicated admin panel for monitoring activities, managing user accounts, and
resolving disputes. These features promote trust and enhance the overall platform integrity.

By offering a centralized accessible solution, skillhive simplifies the process of finding


skilled workers enhance employment opportunities and ensures clients receive quality services
efficiently. The platform serves as a digital ecosystem where skills meet opportunity, benefiting
both service providers and customers.

2. SYSTEM STUDY

1
2.1 EXISTING SYSTEM

In the current scenario, finding skilled workers such as plumbers, electricians, carpenters, and
painters is often time-consuming and inconvenient for customers. The challenges of the existing
system include:

 Manual Search for Workers: Customers rely personal recommendations and local
advertisements, which - can be unreliable and limited to their social circle.
 Local Classifieds & Print Media: Newspapers and pamphlets list service providers, but
these are not updated frequently and lack real-time availability.
 Limited Availability Information: There is no centralized platform to check worker
availability, leading to delays in hiring.
 Lack of Transparency: There is no proper way to verify the skills, experience, or
customer reviews of workers.
 Communication Barriers: Customers must contact multiple workers individually to
discuss pricing and service availability.
 Limited Worker Opportunities: Skilled workers often struggle to find consistent jobs
due to a lack of visibility and accessibility to potential clients.

2.2 PROPOSED SYSTEM:

The SkillHive is an online platform designed to connect customers with skilled workers
efficiently. This system enhances convenience, transparency, and accessibility for both clients and
service providers.

2
FEATURES OF PROPOSED SYSTEM:

1. User-Friendly Web Platform:

 Customers can easily browse and find workers based on categories (plumber,
electrician, carpenter, etc.).
 Works on both laptop and mobile browsers with a responsive design.

2. Worker Profiles:

 Each worker will have a profile displaying their name, skills, contact details, and
availability.
 Customers can select a worker based on their preferences.

[Link] & Filtering:

 Customers can search for workers based on location and service type.
 Filters help users find the best-suited worker quickly.

4. Direct Contact System:

 Customers can contact workers via phone or WhatsApp through provided contact details.
 No need for middlemen, making the hiring process fast and direct.

5. Better Job Opportunities for Workers:

 Workers get regular job opportunities without relying on middlemen.


 More visibility and accessibility increase their chances of getting hired.

6. Booking & Scheduling Services:

 Clients can book appointments directly with workers based on their availability.
 Workers can accept or decline bookings via the platform.

3
7. Admin Panel for System Management:

 Admin can monitor user registrations, verify worker profiles, and handle customer queries.
 Provides data analytics on service demand and user engagement.

[Link] REQUIREMENTS
• The purpose of this document in to give detailed description to the requirements for the
“SKILLHIVE”. The SRS should fully describe the external and internal behavior of the
system.

• It also describes the functional requirement and other factor necessary provides a complete
and comprehensive description of the requirement for the software.

3.1. HARDWARE REQUIREMENTS :

PROCESSOR : Intel(R)Core(TM)i5-4440 [email protected]

4
RAM : 8.00GB

HARD DISK : 400GB

3.2. SOFTWARE REQUIREMENTS :

OPERATING SYSTEM : WINDOWS 11

FRONT END : [Link]

BACK END : SQL-SERVER

DOCUMENTATION&

PRESENTATION : MS-OFFICE

4. SOFTWARE DESCRIPTION

4.1 VISUAL STUDIO:

Visual studio is a comprehensive Integrated Development Environment (IDE) from


Microsoft, widely used for building applications across a variety of platform, including Windows,
MacOS, Android, iOS, and web-based platforms. It offers tools for designing, writing, debugging,
and deploying applications. Visual studio supports a wide range of programming languages such
as C#, Visual Basic, C++, python and more, making it a versatile tool for developers.

SUPPORTED PLATFORMS:

5
 Window: Visual studio allows developers to build desktop applications, window services,
console app and more.
 MacOS: Visual studio for Mac enables development for Macos and cross-platform
applications.
 Mobile (Android or iOS): Using Xamarin, developers can build native mobile app for
android and iOS.
 Web application: Visual studio provides robust tools for building web application,
including full support for [Link] and other web technologies like HTML, CSS,
JavaScript and Type Script.
 Cloud: Integrated tools for Azure allow developers to build, test, and deploy application
to the cloud.
 Cross-platform: With .NET core and .NET MAUI, visual studio enables building
application that run on Linux, Windows, and MacOS.

[Link]:

[Link] is a free, open-source, server-side web application framework developed by


Microsoft to allow developers to build dynamic web page, services, and applications. It provides
a robust platform for creating web applications, APIs, and more [Link] is part of the .NET
framework, meaning it benefits from the extensive features, libraries, and tools of the .NET
ecosystem.

SUPPORTED LANGUAGE:

 C#: The most commonly used language for [Link], designed for building secure
and scalable applications
 Visual basic: offers a simpler syntax and is popular for rapid application development.
 F#: A functional programming language supported by .NET, through less commonly
used in [Link] projects.

6
[Link] can be divided into two main categories:

 [Link] Framework: The traditional version that runs on windows.


 [Link] core: A cross-platform version of [Link], designed to work on windows,
LINUX, and MacOS, providing better performance and flexibility.

[Link] WITH C# LANGUAGE:

[Link] with C# is the most widely used combination for building powerful, dynamic,
and scalable web application. C# is a modern, object oriented programming language that makes
it easy to develop applications with clean and maintainable code. The combination of [Link]
and C# allows developers to leverage the rich .NET libraries, tools, and security features while
using a language known or its ease of use and efficiency.

[Link] with C# provides support for various architectures, including MVC (Model-
View Controller), web APIs, and Razor pages which offers flexibility and organization for both
small and large projects.

KEY FEATURES OF [Link]:

 MVC Architecture: [Link] supports the MVC patterns, which separates the
application logic, UI, and data model, improving maintainability and scalability. This
allows developers to work more efficiently by dividing concerns into different layer.
 Cross-platform development: With [Link] core, applications can be developed
and run on multiple platforms, including Windows, MacOS, and LINUX, making it a
versatile choice for modern, cloud-based web applications.
 Razor pages: Razor is a lightweight syntax for embedding C# into HTML markup,
making it easier to write dynamic web pages with cleaner code.
 Integrated development with Visual studio: [Link] integrates seamlessly with
visual studio, providing developers with advanced debugging, testing, and deployment
tools. The powerful IDE speeds up the development process with features like
Intelligence, real-time errors checking, and built-in Git support.

7
 Security features: [Link] comes with built-in security features, including
authentication and authorization mechanisms like window authentication, form
authentication, and the identity framework. These ensure that web applications are
secure from common vulnerabilities.
 High performance and scalability: [Link] core is optimized for performance,
delivering faster response time and better resources management. It supports
asynchronous programming using async/await, enabling better scalability and handling
of multiple request concurrently.
 State management: [Link] offers multiple options for managing the state of an
application, such as view state, session, application objects, and cache, ensuring smooth
user experiences across multiple requests.
 Entity framework: [Link] supports Entity Framework (EF), an ORM (Object-
Relational Mapper), which makes database interactions easier by allowing developers
to work with data using C# objects rather than SQL queries.
 Web ASP development: [Link] makes it easy to develop RESTFUL web APIs,
which can be used for client-server communication, building micro services, and
creating mobile-friendly services.
 Cloud-ready and containerization: [Link] core is cloud-ready, with built-in
support for Docker containers and kubernetes making it easy to deploy, scale, and
manage applications cloud environments like Microsoft Azures.

4.2 SQL SERVER:

Microsoft SQL Server is a relational database management system (RDBMS) designed to store,
retrieve, and manage data efficiently. It is widely used in enterprise applications, web platforms,
and business intelligence solutions. With robust security, high availability, and scalability, SQL
Server ensures reliable data management for businesses of all sizes. It supports Transact-SQL (T-
SQL), an extension of SQL, allowing developers to write complex queries, stored procedures, and
triggers to optimize data processing. SQL Server also integrates with cloud services and modern
analytics tools, making it a versatile solution for data-driven applications.

KEY FEATURES OF SQL SERVER :

8
1. Relational Database Management: Organizes data into structured tables with
relationships for efficient querying.
2. T-SQL (Transact-SQL): Enhances SQL with procedural programming features like
loops and conditions.
3. High Availability & Disaster Recovery: Supports Always On Availability Groups and
Failover Clustering.
4. Security & Compliance: Offers encryption, data masking, and role-based access control.
5. Stored Procedures & Triggers: Enables automation and performance optimization in
database operations.
6. Indexing & Query Optimization: Uses clustered and non-clustered indexes for faster
data retrieval.
7. Backup & Restore: Supports full, differential, and transaction log backups for data
protection.
8. Replication: Synchronizes data across multiple servers using snapshot, transactional, or
merge replication.
9. Scalability & Partitioning: Handles large datasets efficiently with horizontal and
vertical partitioning.
10. Data Warehousing & BI: Integrates with SSIS, SSAS, and Power BI for business
intelligence solutions.
11. Advanced Query Processing: Supports full-text search, JSON, XML, and graph
database functions.
12. Cloud & Big Data Integration: Works with Azure SQL Database and PolyBase for big
data processing.
13. Machine Learning Support: Runs R and Python scripts for AI-driven analytics and
insights.
14. Logging & Auditing: Tracks database activities using SQL Audit and Change Data
Capture (CDC).
15. Multi-Version Concurrency Control (MVCC): Improves performance by reducing
locking conflicts.

9
5. PROBLEM DESCRIPTION

DESIGN OF MODULES

The proposed system comprises of six modules:

 User Authentication Module


 Inventory Management Module
 Shopkeeper Management Module
 Cardholder Management Module
 Report and Analytics Module
 Shop Timing Management Module

1. USER AUTHENTICATION MODULE:


 Implement a secure login and registration system for both workers and clients using
email and password authentication.
 Use hashed passwords to enhance security and prevent unauthorized access.

2. WORKER PROFILE MANAGEMENT MODULE:


 Workers can create and manage their profiles with details like name, profession,
experience, skills, and portfolio images.
 Provide an option for workers to update their availability status (Available/Busy).
 Enable clients to view worker profiles before making a booking decision.
 Workers can upload certifications or previous work samples to build credibility.

3. SERVICE SEARCH AND BOOKING MODULE:


 Implement an advanced search and filtering system where clients can find workers
based on location, profession, ratings, and availability.
 Clients can send service requests to workers directly through the platform.

10
 Workers will receive job notifications and can accept or reject requests. Booking
history will be stored, allowing both clients and workers to track past services.

4. ADMIN PANEL MODULE:


 Develop a centralized admin dashboard to manage worker profiles, client accounts, and
service requests.
 Implement a worker verification system to approve genuine professionals and maintain
platform credibility.
 Admins can monitor activity logs to detect fraud or misconduct.
 Provide tools to handle disputes or complaints between clients and workers.

5. FEEDBACK AND REVIEW MODULE:


 Clients can rate and review workers based on their service experience.
 Workers with higher ratings will be displayed at the top of search results.
 Implement review moderation to prevent spam or fake reviews.
 Workers can respond to feedback, allowing better interaction with clients.

6. NOTIFICATION & COMMUNICATION SYSTEM MODULE:


 Implement a real-time notification system where workers receive job alerts instantly.
 Clients get confirmation notifications when a worker accepts or declines a request.
 Offer a live chat or email support system for real-time problem-solving.

11
6. SYSTEM DESIGN

6.1 USE CASE DIAGRAM:

CLIENT:

LOGIN

REGISTER

CLIENT DASHBOARD

MANAGE PROFILE

SEARCH WORKERS

BOOK REQUEST FOR WORKERS

VIEW MY REQUEST

GIVE RATING/REVIEW

12
CHAT WITH WORKERS

VIEW RATING/REVIEW

LOGOUT

13
WORKER:

LOGIN

. REGISTER

WORKER DASHBOARD

MANAGE PROFILE

ACCEPT/REJECT JOB REQUESTS

VIEW ALL JOBS

CHAT WITH CLIENTS

VIEW REVIEW & RATING

LOGOUT

14
ADMIN:

LOGIN

ADMIN DASHBOARD
.

MANAGE WORKERS

MANAGE CLIENTS

VIEW BOOKINGS

VIEW FEEDBACKS

LOGOUT

15
6.2 ACTIVITY DIAGRAM:

CLIENT:

START

CLIENT REGISTRATION

CLIENT LOGIN
YES NO

IS LOGIN
SUCCESSFUL?

CLIENT DASHBOARD

VIEW/UPDATE PROFILE

SEARCH/FILTER WORKERS
NO
VIEW WORKERS DETAILS

BOOK REQUEST TO WORKERS

VIEW MY REQUEST

WORKER
ACCEPT?

CHAT WITH WORKER

RATING/REVIEW TO WORKERS

LOGOUT

16
END
WORKER:

START

WORKER LOGIN

NO
WORKER REGISTRATION

YES

IS LOGIN
SUCCESSFUL?

WORKER DASHBORD

VIEW/UPDATE PROFILE

VIEW JOB REQUESTS

ACCEPT/REJECT JOB REQUEST

VIEW ALL JOBS

CHAT WITH CLIENTS

VIEW REVIEW/RATINGS

LOGOUT

17
END
ADMIN:

START

CLIENT LOGIN

NO
IS LOGIN
SUCCESSFUL?

ADMIN DASHBOARD

MANAGE WORKERS

APPROVE/REMOVE WORKERS

MANAGE CLIENTS

APPROVE/REMOVE CLIENTS

VIEW BOOKINGS

VIEW FEEDBACKS

LOGOUT

END

18
TABLE DESIGN:

USERS:

Field Name Data type

UserID Int
Role Nvarchar(50)
FullName Nvarchar(50)
Email Nvarchar(50)
Password Nvarchar(50)
Phone int
Gender Nvarchar(50)
DOB date
AadharNo int
City Nvarchar(50)
State Nvarchar(50)
Pincode Nvarchar(50)
Profession Nvarchar(50)
Experience int
WorskStatus Nvarchar(50)
AboutMe Nvarchar(500)
AvailableTime Nvarchar(500)
ProfilePic Nvarchar(MAX)
PreviousServiceImages Nvarchar(MAX)
ApprovalStatus bit

19
REVIEWS:

Field Name Data type

ReviewID int
Int int
ClientID int
WorkerID int
Rating int
ReviewText Nvarchar(50)
DatePosted datetime

MESSAGES:

Field Name Data type

ID int
SenderID int
RecieverID int
MessageText Nvarchar(500)
TimeStamp datetime
IsRead bit

20
BOOKINGS:

Field Name Data type

ID int
UserID int
PreferredDate date
PreferredTime Time(7)
Message Nvarchar(1000)
Status Nvarchar(50)
ClientID int
WorkerID Int

ADMINS:

Field Name Data type

AdminID int
Username Nvarchar(50)
Password Nvarchar(50)

21
7. TESTING AND IMPLEMENTATION

The goal of testing is to demonstrate that the program under constrain bugs. Software testing
is the process by which one detects the defects in the software. Testing is the process of trying to
discover every conceivable fault or weakness in a work.

If testing is conducted successfully, it will uncover errors in the software. Nothing is complete
without testing, as it is vital success of the system. Testing is the process of executing the program
with intent of the finding errors. Testing cannot show the absence of the defects, it can only show
that software error is present.

UNIT TESTING:

Unit testing is carried out screen-wise, each being identified as an object. Attention is diverted
to individual modules, independently to one another to locate errors. This has enabled the
detection of errors inn coding. This is the first level of unit testing. In these codes are written such
that from one module, we can move on to the next module according to the choice we enter.

When invalid application number is entered the message is not displayed to the user that the
entered application number is invalid. After conducting the unit testing discover the above error
and corrected by displaying the message “Please enter the valid application number in message
box”.

INTEGRATION TESTING:

This testing strategy combines all the modules involved in the system. After the independent
modules are tested, dependent modules are dependent modules that use the independent modules
are tested. This sequence of testing layers of dependent modules continues until the entire system
is constructed. Though each module individually, they should work after linking them together.
Data may be lost access interface and one module can have adverse effect another.

22
SYSTEM TESTING:

System Testing is a level of testing that validates the complete and fully integrated software
product. The purpose of a system test is to evaluate the end-to-end system specifications. Usually,
the software is only one element of a larger computer-based system. Ultimately, the software is
interfaced with other software/hardware systems. System Testing is defined as a series of different
tests whose sole purpose is to exercise the full computer-based system.

VALIDATION TESTING:

At the culmination of integration testing, software is completely assembled as a package,


interfacing errors have been uncovered and corrected and the final series of software tests begin-
validation test begins. Validation testing can be defined in many ways.

OUTPUT TESTING:

After performing the validation testing, the next step is output testing of the proposed system,
since no system could be useful if it does not produce the require output in the specified format.
Asking the users about the format required by them, tests the outputs generated are displayed by
this system under consideration. The output format is considered in two ways. One is on screen
and another is printed format. The output format on this screen is found to be correct as the format
was designed in the system design phase according to the user needs.

IMPLEMENTATION:

Implementation is the execution or practice of a plan, a method or any design, idea, model,
specification, standard or policy for doing something. As such, implementation is the action that
must follow any preliminary thinking for something to actually happen.

8. SAMPLE SOURCE CODE

CLIENT & ADMIN LOGIN PAGE:

using System;

23
using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

namespace skillhive

public partial class Login : [Link]

protected void btnLogin_Click(object sender, EventArgs e)

string connString =
[Link]["constr"].ConnectionString;

using (SqlConnection conn = new SqlConnection(connString))

[Link]();

24
string query = "SELECT UserID, Role FROM Users WHERE Email=@Email AND
Password=@Password";

using (SqlCommand cmd = new SqlCommand(query, conn))

[Link]("@Email", [Link]);

[Link]("@Password", [Link]);

using (SqlDataReader reader = [Link]())

if ([Link]())

int userID = reader.GetInt32(0); // Fetch User ID

string userRole = [Link](1); // Fetch Role (Client/Worker)

// Store in Session

Session["UserID"] = userID;

Session["Role"] = userRole;

// Redirect based on role

if (userRole == "Client")

25
[Link]("[Link]");

else if (userRole == "Worker")

[Link]("[Link]");

else

[Link]("<script>alert('Invalid credentials. Please try


again.');</script>");

CLIENT & ADMIN REGISTRATION PAGE:

using System;

using [Link];

26
using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

namespace skillhive

public partial class Register : [Link]

protected void btnRegister_Click(object sender, EventArgs e)

string role = [Link];

string fullName = [Link];

string email = [Link];

string phone = [Link];

string password = [Link];

string confirmPassword = [Link];

27
// Validation

if (role == "" || fullName == "" || email == "" || phone == "" || password == "" ||
confirmPassword == "")

[Link]("<script>alert('All fields are required');</script>");

return;

if (password != confirmPassword)

[Link]("<script>alert('Passwords do not match');</script>");

return;

string connString =
[Link]["constr"].ConnectionString;

using (SqlConnection conn = new SqlConnection(connString))

[Link]();

// Check if the email is already registered

28
string checkQuery = "SELECT COUNT(*) FROM Users WHERE Email=@Email";

using (SqlCommand checkCmd = new SqlCommand(checkQuery, conn))

[Link]("@Email", [Link]);

if ((int)[Link]() > 0)

[Link]("<script>alert('Email already registered');</script>");

return;

// Insert new user

string insertQuery = "INSERT INTO Users (Role, FullName, Email, Phone,


Password) OUTPUT [Link] VALUES (@Role, @FullName, @Email, @Phone,
@Password)";

using (SqlCommand cmd = new SqlCommand(insertQuery, conn))

[Link]("@Role", [Link]);

[Link]("@FullName", [Link]);

[Link]("@Email", [Link]);

[Link]("@Phone", [Link]);

29
[Link]("@Password", [Link]);

// Get the newly inserted User ID

int userID = (int)[Link]();

// Store User ID and Role in Session

Session["UserID"] = userID;

Session["Role"] = [Link]; // Client or Worker

// Redirect based on role

if ([Link] == "Client")

[Link]("[Link]");

else if ([Link] == "Worker")

[Link]("[Link]");

30
}

CLIENT DASHBOARD:

using System;

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

namespace skillhive

public partial class ClientDashboard : [Link]

protected void Page_Load(object sender, EventArgs e)

if (Session["UserID"] == null || Session["Role"].ToString() != "Client")

[Link]("[Link]"); // Not logged in or not a client

31
return;

int userID = Convert.ToInt32(Session["UserID"]);

string connString =
[Link]["constr"].ConnectionString;

using (SqlConnection conn = new SqlConnection(connString))

[Link]();

string query = "SELECT FullName, Email, ProfilePic, ApprovalStatus FROM Users


WHERE UserID = @UserID";

using (SqlCommand cmd = new SqlCommand(query, conn))

[Link]("@UserID", userID);

using (SqlDataReader reader = [Link]())

if ([Link]())

// Check if client is approved

string status = reader["ApprovalStatus"].ToString();

if (status == "Removed")

32
{

[Link]("[Link]?reason=removed");

return;

else if (status == "Pending")

[Link]("[Link]?reason=pending");

return;

// Populate dashboard with client details

[Link] = reader["FullName"].ToString();

[Link] = reader["Email"].ToString();

[Link] = reader["ProfilePic"].ToString();

else

// If user not found in DB

[Link]("[Link]");

33
}

SEARCH WORKERS:

using System;

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

namespace skillhive

public partial class SearchWorkers : [Link]

string connStr = [Link]["constr"].ConnectionString;

34
protected void Page_Load(object sender, EventArgs e)

if (!IsPostBack)

[Link] = "high";

protected void btnSearch_Click(object sender, EventArgs e)

string sortOption = [Link];

string orderBy = sortOption == "low" ? "ORDER BY AvgRating ASC" : "ORDER BY


AvgRating DESC";

string query = $@"

SELECT

[Link], [Link], [Link], [Link], [Link], [Link],

[Link], [Link], [Link],

ISNULL(AVG(CAST([Link] AS FLOAT)), 0) AS AvgRating,

COUNT([Link]) AS TotalReviews

35
FROM Users U

LEFT JOIN Reviews R ON [Link] = [Link]

LEFT JOIN Bookings B ON [Link] = [Link]

WHERE [Link] LIKE @profession AND

([Link] LIKE @location OR [Link] LIKE @location)

AND ([Link] = 'Completed' OR [Link] = 'Accepted' OR [Link] IS NULL)

GROUP BY

[Link], [Link], [Link], [Link], [Link],

[Link], [Link], [Link], [Link]

{orderBy}";

using (SqlConnection con = new SqlConnection(connStr))

SqlCommand cmd = new SqlCommand(query, con);

[Link]("@profession", "%" + [Link]


+ "%");

[Link]("@location", "%" + [Link]() +


"%");

[Link]();

SqlDataReader dr = [Link]();

[Link] = dr;

36
[Link]();

[Link]();

protected void btnDetails_Command(object sender, CommandEventArgs e)

string userId = [Link]();

[Link]("[Link]?UserID=" + userId);

public string GetStarHtml(double rating)

int fullStars = (int)[Link](rating);

bool halfStar = (rating - fullStars) >= 0.5;

int emptyStars = 5 - fullStars - (halfStar ? 1 : 0);

string html = "";

for (int i = 0; i < fullStars; i++)

html += "<i class='fas fa-star text-warning'></i>";

37
if (halfStar)

html += "<i class='fas fa-star-half-alt text-warning'></i>";

for (int i = 0; i < emptyStars; i++)

html += "<i class='far fa-star text-warning'></i>";

return html;

VIEW WORKER DETAILS:

using System;

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

38
namespace skillhive

public partial class WorkerDetails : [Link]

string connStr = [Link]["constr"].ConnectionString;

protected void Page_Load(object sender, EventArgs e)

if (!IsPostBack)

string userId = [Link]["UserID"];

if (![Link](userId))

LoadWorkerDetails(userId);

LoadWorkerReviews(userId);

39
private void LoadWorkerDetails(string userId)

using (SqlConnection con = new SqlConnection(connStr))

string query = @"SELECT FullName, Profession, Phone, Email, City, State,


Pincode, WorkStatus,

Experience, Gender, DOB, AvailableTime, AboutMe, ProfilePic,


PreviousServiceImages

FROM Users WHERE UserID = @UserID";

SqlCommand cmd = new SqlCommand(query, con);

[Link]("@UserID", userId);

[Link]();

SqlDataReader dr = [Link]();

if ([Link]())

[Link] = dr["FullName"].ToString();

[Link] = dr["Profession"].ToString();

[Link] = dr["Phone"].ToString();

[Link] = dr["Email"].ToString();

[Link] = dr["City"] + ", " + dr["State"] + " - " + dr["Pincode"];

40
[Link] = dr["WorkStatus"].ToString();

[Link] = dr["Gender"].ToString();

[Link] = [Link](dr["DOB"]).ToString("dd MMM yyyy");

[Link] = dr["AvailableTime"].ToString();

[Link] = dr["Experience"].ToString();

[Link] = dr["AboutMe"].ToString();

[Link] = dr["ProfilePic"].ToString();

if (dr["PreviousServiceImages"] != [Link] &&


![Link](dr["PreviousServiceImages"].ToString()))

string[] images = dr["PreviousServiceImages"].ToString().Split(',');

foreach (string img in images)

if (![Link](img))

Image imgControl = new Image();

[Link] = img;

[Link] = "me-2 mb-2";

[Link]["width"] = "120px";

[Link]["height"] = "100px";

41
[Link]["object-fit"] = "cover";

[Link](imgControl);

[Link]();

protected void btnBook_Click(object sender, EventArgs e)

string userId = [Link]["UserID"];

[Link]("[Link]?UserID=" + userId);

private void LoadWorkerReviews(string workerId)

using (SqlConnection con = new SqlConnection(connStr))

string query = @"

42
SELECT [Link], [Link], [Link] AS ClientName

FROM Reviews R

INNER JOIN Users U ON [Link] = [Link]

INNER JOIN Bookings B ON [Link] = [Link]

WHERE [Link] = @WorkerID AND ([Link] = 'Completed' OR [Link] =


'Accepted')";

SqlCommand cmd = new SqlCommand(query, con);

[Link]("@WorkerID", workerId);

SqlDataAdapter da = new SqlDataAdapter(cmd);

DataTable dt = new DataTable();

[Link](dt);

[Link] = dt;

[Link]();

if ([Link] > 0)

double avg = [Link]().Average(r => [Link](r["Rating"]));

[Link] = [Link]("0.0") + " / 5";

43
[Link] = GetStarsHtml(avg);

[Link] = [Link]();

else

[Link] = "No reviews yet";

[Link] = "0";

[Link] = "";

public string GetStarsHtml(object ratingObj)

double rating = [Link](ratingObj);

int fullStars = (int)[Link](rating);

bool hasHalf = rating - fullStars >= 0.5;

int emptyStars = 5 - fullStars - (hasHalf ? 1 : 0);

string html = "";

for (int i = 0; i < fullStars; i++)

44
html += "<i class='fas fa-star text-warning'></i>";

if (hasHalf)

html += "<i class='fas fa-star-half-alt text-warning'></i>";

for (int i = 0; i < emptyStars; i++)

html += "<i class='far fa-star text-warning'></i>";

return html;

BOOK WORKERS:

using System;

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

using [Link];

45
namespace skillhive

public partial class BookingRequest : [Link]

string connStr = [Link]["constr"].ConnectionString;

protected void Page_Load(object sender, EventArgs e)

if (!IsPostBack)

if (Session["UserID"] == null || Session["Role"]?.ToString() != "Client")

[Link]("[Link]");

return;

string workerId = [Link]["UserID"];

if (![Link](workerId))

LoadWorkerDetails(workerId);

46
}

else

[Link]("<script>alert('Worker not specified.');</script>");

private void LoadWorkerDetails(string userId)

using (SqlConnection con = new SqlConnection(connStr))

string query = @"SELECT FullName, Profession, Phone, Email, ProfilePic

FROM Users WHERE UserID = @UserID";

SqlCommand cmd = new SqlCommand(query, con);

[Link]("@UserID", userId);

[Link]();

SqlDataReader dr = [Link]();

if ([Link]())

47
[Link] = dr["FullName"].ToString();

[Link] = dr["Profession"].ToString();

[Link] = dr["FullName"].ToString();

[Link] = dr["ProfilePic"].ToString();

[Link]();

protected void btnSubmitRequest_Click(object sender, EventArgs e)

string clientId = Session["UserID"]?.ToString();

string workerId = [Link]["UserID"];

string preferredDate = [Link];

string preferredTime = [Link];

string message = [Link];

if ([Link](clientId) || [Link](workerId))

[Link]("<script>alert('Client or worker information is


missing.');</script>");

48
return;

if ([Link](preferredDate) ||
[Link](preferredTime))

[Link]("<script>alert('Please fill in all required fields.');</script>");

return;

using (SqlConnection con = new SqlConnection(connStr))

string query = @"INSERT INTO Bookings (ClientID, WorkerID, PreferredDate,


PreferredTime, Message, Status)

VALUES (@ClientID, @WorkerID, @PreferredDate, @PreferredTime,


@Message, @Status)";

SqlCommand cmd = new SqlCommand(query, con);

[Link]("@ClientID", clientId);

[Link]("@WorkerID", workerId);

[Link]("@PreferredDate", preferredDate);

[Link]("@PreferredTime", preferredTime);

49
[Link]("@Message", message);

[Link]("@Status", "Pending");

[Link]();

[Link]();

[Link]();

[Link] = true;

[Link] = false;

9. SAMPLE SCREENSHOTS

HOME:

50
CLIENT/WORKER LOGIN:

51
CLIENT/WORKER REGISTER:

52
ADMIN LOGIN:

53
CLIENT DASHBOARD:

54
VIEW/EDIT CLIENT PROFILE:

55
SEARCH WORKERS:

56
VIEW WORKER DETAILS:

57
BOOK REQUEST TO WORKER:

58
VIEW MY REQUEST:

59
RATING WORKER:

60
VIEW ALL PAST REVIEWS:

61
CHAT WITH WORKERS:

62
WORKER DASHBOARD:

63
UPDATE PROFILE:

64
VIEW JOB REQUESTS:

65
VIEW ALL JOBS:

66
CHAT WITH CLIENTS:

VIEW REVIEWS FROM CLIENTS:

67
ADMIN DASHBOARD:

68
MANAGE WORKERS:

69
MANAGE CLIENTS:

70
10. CONCLUSION

The SkillHive project is a useful platform that connects skilled workers with clients who need
their services. It makes the process of finding, booking, and working with skilled people much
easier through an online system. With features like job posting, worker profiles, booking, and
feedback, it helps both clients and workers.

Overall, SkillHive is a helpful system that supports local workers and makes service booking
faster and easier for everyone.

FUTURE ENHANCEMENTS:

71
1. Mobile Application Integration: Developing a mobile app version of SkillHive will make it
easier for both clients and workers to access services on the go. This increases convenience and
helps reach users who prefer mobile usage over desktop.

2. Multi-Language Support: Adding regional language options will make the platform more user-
friendly and inclusive, especially for workers and clients in rural or non-English-speaking areas.

3. Automated Notification System: Implementing SMS or app-based push notifications for


booking confirmations, job updates, payments, and feedback requests can improve user
engagement and timely communication.

4. Data Analytics and Reporting: Introducing analytics tools to track service demand, job
completion rates, and user activity can help the admin make informed decisions, predict trends,
and improve platform performance.

6. Cloud-Based Hosting: Hosting the SkillHive platform on a cloud service can provide better
performance, centralized data access, easier updates, and scalability to expand across multiple
cities or regions.

7. Enhanced Security Features: Implementing strong authentication (e.g., OTP, Two-Factor


Authentication) and encryption techniques will ensure data privacy and secure transactions for
both clients and workers.

8. Rating and Feedback Moderation: Introducing smart moderation tools for reviews can ensure
feedback remains fair and constructive, avoiding misuse or bias.

72
BIBLIOGRAPHY

REFERENCE BOOKS

1. "[Link] Core in Action" by Andrew Lock, 2021

2. "Programming [Link]" by Dino Esposito, 2003

3. "Pro C# 10 and the .NET 6 Platform" by Andrew Troelsen and Philip Japikse, 2022

4. "Beginning Database Design: From Novice to Professional" by Clare Churcher, 2012

5. "Microsoft SQL Server 2019: A Beginner’s Guide" by Dusan Petkovic, 2020

6. "Front-End Web Development: The Big Nerd Ranch Guide" by Chris Aquino and Todd
Gandee, 2016

73
WEBSITES REFERRED

1. Microsoft Learn ([Link] & C#) – [Link]

2. W3Schools (HTML, CSS, JavaScript, SQL) – [Link]

3. C# Corner – [Link]

4. Stack Overflow – [Link]

5. ConnectionStrings – [Link]

6. GeeksforGeeks – [Link]

7. MDN Web Docs – [Link]

74

You might also like