1. IPS - On Demand Service
Booking (e-Jobs)
Under The Guidance Of
Proff. Vivek Dave
Submitted To:
Department of MCA
Faculty of IT & Computer Science,
PARUL University
Developed By
Amit Sinha (190511201750)
2. 2
Index
1. Project Profile
2. Requirement Analysis
3. Design
4. Implementation
5. Testing
6. Future Enhancement
7. Bibliography
PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS))
4/19/2023
3. 4/19/2023
PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-
JOBS))
3
IPS - On Demand Service Booking (e-Jobs) for Home or Office.
1. Project Profile
1.2. Project Description:
1.1. Project Definition
This eJobs application is an android based application and its
purpose is to provide the users with efficient services online. The
application will allow the user to log in and look for the related
service section to hire help. The application will also allow the
service providers to register and make a profile so that they are
easy to find and contacted accordingly.
PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS))
4/19/2023
4. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 4
This application is beneficial for both customers and service
providers because it will efficiently get the job done and is a
better marketplace for the service providers.
The application will help in services that are as small as an
electrician job and as big as a housing project planner etc.
This application will have a user-friendly interface so that it is
easy to understand and people with very less mobile
knowledge can also use it easily. The main purpose of this
application is to erase the need to physically go somewhere
to get some help, why go somewhere to hire someone when
it’s all just one click away.
5. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 5
A. Front End
Visual Studio Code
React Native
React JS
A. Front End
.Net MVC Web API
1.3. Tools and Technology
6. 4/19/2023
PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 6
2. Requirement Analysis
2.1. Feasibility Studies
• Technical Feasibility
• Economic Feasibility
• Operational Feasibility
• Admin
• Vendor(Service Provider)
• Consumer(Customer)
2.2. Users of the System
4/19/2023
8. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 8
2.4. Hardware & Software Requirements
Hardware requirement
1. Server Side
A. Hardware Requirements
● Processor : i3 or higher
● RAM : 4 GB or more
● Memory : 250 GB or higher
● System Type : 64-bit Operating System, x64-based
Processor
9. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 9
B. Software Requirements
● Tools : Visual Studio Code
● Web API : .Net MVC Web API
● Reports : Dialog Flow by Google
● Web Browser : Google Chrome, Mozilla Firefox
C. Documentation Software
MS Office 2019
10. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 10
2. Client Side
A. Hardware Requirements
● RAM : 4 GB or more
● Memory : 100 GB or higher
● System Type : 64-bit Operating System, x64-based
Processor
B. Software Requirements
● Web Browser : Google Chrome, Mozilla Firefox,
Android, iOS
11. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 11
2.5. Use Case Diagram
Admin
14. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 14
3. Design
3.1. Use Case Scenario
Use Case Description
Id 1
Name Login/Registration
Actor Admin/Service Provider/Customer
Pre-Condition Admin / Service Provider / Customer a Login and
Service Provider/Customer Signup in the system
Success End
Condition
Email for Successful Signup/ Homepage for Login
Failed End Condition Error Message for Failure with Reason
1. Registration/Login
15. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 15
Use Case Description
Id 2
Name Profile Update
Actor Admin/Service Provider/Customer
Pre-Condition Admin/Service Provider/Customer makes changes to
their profile
Success End
Condition
Profile Page with update message
Failed End Condition Profile Page with failure message
2. Profile Update
16. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 16
Use Case Description
Id 3
Name Services
Actor Admin/Service Provider/Customer
Pre-Condition Admin can Add Services into the system
Customer can Book Services
Service Provider Provide Services
Success End
Condition
Services Add & Book successfully
Failed End Condition Fail to Book & Add Services
3. Services
17. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 17
Use Case Description
Id 4
Name Feedback
Actor Admin/Service Provider/Customer
Pre-Condition Admin & Service Provider Can view the Feedback.
Customer give feedback
Success End
Condition
Feedback sends successfully
Failed End Condition Feedback not send
4. Feedback
18. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 18
Use Case Description
Id 5
Name Payment
Actor Admin/Service Provider/Customer
Pre-Condition Admin & Service Provider Track the Payment details.
Customer do the Payment
Success End
Condition
Payment Successfully
Failed End Condition Payment Failed
5. Payment
19. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 19
3.2 UML Diagram
3.2.1. Class Diagram
29. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 29
3.2. Entity Relationship Diagram
30. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 30
3.2. Entity Relationship Diagram
admin
Column Type Constraints Description
id int Primary Key,
Not NULL
Id
username Nvarchar
(20)
NULL Admin Name
Email Nvarchar
(30)
NULL Admin Email
password Nvarchar
(10)
NULL Password
31. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 31
Payment
Column Type Constraints Description
PId int (11) Primary Key,
Not NULL
Id
BkId Int (11) Foreign key, Not
NULL
Booking ID
Status Nvarchar
(50)
NULL Status
32. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 32
Column Type Constraints Description
Cid int Primary Key,
Not NULL
Consumer Id
UserName Nvarchar (20) NULL Consumer User Name
Email Nvarchar (30) NULL Consumer Email
Password Nvarchar (20) NULL Consumer Password
Contact Nvarchar (10) NULL Contact No. of Consumer
City Nvarchar (20) NULL City name of Consumer
Address Nvarchar (20) NULL Address of Consumer
Image Nvarchar (100) NULL Profile Photo of Customer
Consumer
33. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 33
Services
Column Type Constraints Description
Svid int Primary Key, Not
NULL
Id
Category Nvarchar (10) NULL Service Name
Title Nvarchar (20) NULL Title of Service
Price Money NULL Service Price
Time Time (7) NULL Condition of Services
Serviceimg Nvarchar
(100)
NULL Services image
34. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 34
Vendor
Column Type Constraints Description
vid Int Primary Key, Not NULL Vendor Id
UserName Nvarchar (10) NULL Vendor User Name
Email Nvarchar (20) NULL Vendor Email
Contact Nvarchar (10) NULL Vendor Contact
Number
Degree Nvarchar (10) NULL Vendor Degree
Experience Nvarchar (10) NULL Working Experience
Address Nvarchar (50) NULL Vendor Address
City Nvarchar (20) NULL Vendor City
UserImg Nvarchar (100) NULL Vendor Profile Image
DegreeImg Nvarchar (100) NULL Vendor Degree Image
Password Nvarchar (50) NULL Vendor Password
35. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 35
Banner
Column Type Constraints Description
Id Int Primary Key, Not NULL Banner Id
Title Nvarchar (10) NULL Banner Title
Type Nvarchar (10) NULL Banner Type
Category Nvarchar (20) NULL Banner Category
Image Nvarchar (500) NULL Image Of banner
36. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 36
Category
Column Type Constraints Description
cgid int Primary Key, Not
NULL
Category Id
Title Nvarchar (10) NULL Title of the Category
Description Nvarchar (50) NULL Description of Category
Image Nvarchar (100) NULL Photos of Image
Category
37. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 37
Booking
Column Type Constraints Description
Bkid int Primary Key, Not NULL Booking Id
Cid Int Foreign key, Not NULL Customer Id
Vid int Foreign key, Not NULL Vendor Id
Status Nvarchar (10) NULL Booking Status
38. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 38
4. Implementation
4.1. Form Layouts
1.Splash Screen Page
60. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 60
4.3. Coding Convention (Business Logic)
using Dapper;
using HelpExpert.comman.Models.Auth;
using HelpExpert.comman.Models.Consumer.User;
using HelpExpert.comman.Models.Vendor;
using HelpExpert.comman.Repositories.Interface;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
61. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 61
namespace HelpExpert.comman.Repositories
{
public class AuthRepo : IAuthRepo
{
private readonly IDbConnection _dbConnection;
public AuthRepo(IDbConnection dbConnection)
{
_dbConnection = dbConnection;
}
public async Task<ConsumerInfo> Login(Login login)
{var Query = LoginQuery(login.UserType);
var UserData = await _dbConnection.QueryFirstOrDefaultAsync<ConsumerInfo>(Query,
new { @email = login.Email, @password = login.Password });
return UserData;}
62. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 62
public async Task<Guid> CreateToken(int id, int Usertype, string tokenType)
{var token = Convert.ToInt32(ConfigurationManager.AppSettings["TokenExpires"]);
DateTime expiresOn = DateTime.UtcNow.AddMinutes(token);
var sqlQuery = CreateTokenQuery();
var guid = Guid.NewGuid();
await _dbConnection.ExecuteAsync(sqlQuery, new
{@accessToken = guid,
@userID = id,
@userType = Usertype,
@expired = false,
@tokenType = tokenType,
@expiresOn = expiresOn,
});
return guid;}
63. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 63
private static string LoginQuery(int type)
{
var sqlQuery = new StringBuilder();
if (type == 1)
{
sqlQuery.Append(@"Select * from dbo.Consumer where Email=@Email and
Password =@Password");
}
else if (type == 2)
{
sqlQuery.Append(@"Select * from dbo.Vendor where Email=@Email and Password
=@Password");
}
return sqlQuery.ToString();
}
64. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 64
private static string CreateTokenQuery()
{
var sqlQuery = new StringBuilder();
sqlQuery.Append(@"INSERT INTO
AuthToken(AccessToken,UserID,UserType,Expired,TokenType,ExpiresOn)
VALUES(@accessToken,@userID,@userType,@expired,@tokenType,@expiresOn);");
return sqlQuery.ToString();}
public async Task<String> CheckUserExist(VerifyContect contact)
{
var Query = UserExistQuery(contact.Usertype);
var Exist = await _dbConnection.QueryFirstOrDefaultAsync<String>(Query, new {
@email = contact.Email });
return Exist;
}
65. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 65
private static string UserExistQuery(int usertype)
{
var sqlQuery = new StringBuilder();
if (usertype == 1)
{
sqlQuery.Append(@"Select Id,Email from dbo.Consumer where Email=@Email");
}
else if (usertype == 2)
{
sqlQuery.Append(@"Select Id, Email from Vendor where Email=@Email");
}
return sqlQuery.ToString();
}
66. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 66
public async Task<int> CreateConsumerUser(ConsumerInfo coninfo)
{ try
{ var Query = CreateConsumerUserQuery();
int user = await _dbConnection.ExecuteScalarAsync<int>(Query, new
{ @name = coninfo.UserName,
@email = coninfo.Email,
@phoneno = coninfo.Contact,
@address = coninfo.Address,
@city = coninfo.City,
@password = coninfo.Password,
@image = coninfo.Image, });
return user;}
catch (Exception e)
{throw e;}}
67. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 67
private static string CreateConsumerUserQuery()
{
var sqlQuery = new StringBuilder();
sqlQuery.Append(@"INSERT INTO Consumer
values(@name,@email,@phoneno,@address,@city,@password,@image);SELECT Id from
Consumer where Email=@email;");
return sqlQuery.ToString();
}
public async Task<String> CheckConsumerUserExist(string email)
{
var Query = UserConsumerExistQuery();
var Exist = await _dbConnection.QueryFirstOrDefaultAsync<String>(Query, new {
@email = email });
return Exist;
}
68. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 68
private static string UserConsumerExistQuery()
{var sqlQuery = new StringBuilder();
sqlQuery.Append(@"Select Email from dbo.Consumer where Email=@Email");
return sqlQuery.ToString();
}
public async Task<ConsumerInfo> GetConsumerUserdata(int conId)
{ var Query = GetConsumerUserDataQuery();
ConsumerInfo Exist = await
_dbConnection.QueryFirstOrDefaultAsync<ConsumerInfo>(Query, new { @c_id = conId });
return Exist;
}private static string GetConsumerUserDataQuery()
{var sqlQuery = new StringBuilder();
sqlQuery.Append(@"Select * from dbo.Consumer where Id=@c_id");
return sqlQuery.ToString();}
70. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 70
return user;
}
catch (Exception e)
{ throw e; }
}
{
var sqlQuery = new StringBuilder();
sqlQuery.Append(@"INSERT INTO
Vendor(UserName,Email,Contact,City,Address,Password,Image,Status,AdharNumber,AdharIm
age,AdharVerifyStatus)
values(@name,@email,@phoneno,@city,@address,@password,@image,@status,@adharnu
m, @adharimage,@adharstatus);SELECT Id from Vendor where Email=@email;");
return sqlQuery.ToString();
}
71. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 71
public async Task<string> CheckVendortUserExist(string email)
{
var Query = UserVendorExistQuery();
var Exist = await _dbConnection.QueryFirstOrDefaultAsync<String>(Query, new {
@email = email });
return Exist;
}
private static string UserVendorExistQuery()
{
var sqlQuery = new StringBuilder();
sqlQuery.Append(@"Select Email from dbo.Vendor where Email=@Email");
return sqlQuery.ToString();
}
72. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 72
public async Task<VendorInfo> GetVendorUserdata(int deliveryId)
{
var Query = GetVendorUserDataQuery();
VendorInfo Exist = await _dbConnection.QueryFirstOrDefaultAsync<VendorInfo>(Query,
new { @d_id = deliveryId });
return Exist;
}private static string GetVendorUserDataQuery()
{
var sqlQuery = new StringBuilder();
sqlQuery.Append(@"Select * from dbo.Vendor where Id=@d_id");
return sqlQuery.ToString();
}
}
}
73. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 73
public async Task<VendorInfo> GetVendorUserdata(int deliveryId)
{
var Query = GetVendorUserDataQuery();
VendorInfo Exist = await _dbConnection.QueryFirstOrDefaultAsync<VendorInfo>(Query,
new { @d_id = deliveryId });
return Exist;
}private static string GetVendorUserDataQuery()
{
var sqlQuery = new StringBuilder();
sqlQuery.Append(@"Select * from dbo.Vendor where Id=@d_id");
return sqlQuery.ToString();
}
}
}
74. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 74
5. Testing
Test Case ID TC001
Test Case Summary This test case was conducted for checking Admin login.
Related Requirement RS001
Prerequisite Admin must be registered in system.
Test Procedure 1. Enter the Email and password.
2. Check the Email & Password correct ornot.
3. Click on loginbutton.
Test Data Email: admin@gmail.com
Password: ********
Expected Result Admin enters into the system.
Actual Result Admin can view the home page.
Status Pass
Remarks This test case is for login into the system.
Created By Amit Sinha
Date of Creation 05/02/2021
Executed By Amit Sinha
Date of Execution 05/03/2021
Test Environment Android Emulator
1. Admin Login
75. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 75
Test Case ID TC002
Test Case Summary This test case was conducted for checking User login.
Related Requirement RS002
Prerequisite User must have to register into the system.
Test Procedure 1. Enter the Email and password.
2. Check the Email & Password correct ornot.
3. Click on loginbutton.
Test Data Email: amit@gmail.com
Password: ********
Expected Result Users enter into the system.
Actual Result Users can view the home page.
Status Pass
Remarks This test case is for login into the system.
Created By Amit Sinha
Date of Creation 05/01/2021
Executed By Amit Sinha
Date of Execution 05/03/2021
Test Environment Android Emulator
2. User Login
76. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 76
Test Case ID TC003
Test Case Summary This test case was conducted for Registration of User.
Related Requirement RS003
Prerequisite User must have to register into the system.
Test Procedure 1. Enter First Name, Last Name, Email, Phone No. and Password.
2. Click on add button.
Test Data Username: Amit, Email: amit@gmail.com , Phone: 9998316492
Address: Ognaj, Gota Vasant Nagar
City: Ahmedabad
Password: ********
Expected Result Add expert in system.
Actual Result Users registered into System successfully.
Status Pass
Remarks This test case for Registration of user.
Created By Amit Sinha,
Date of Creation 05/01/2021
Executed By Amit Sinha
Date of Execution 05/03/2021
Test Environment Android Emulator
3. User Registration
77. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 77
4. Booking Services
Test Case ID TC004
Test Case Summary This test case was conducted for Services Booking.
Related Requirement RS004
Prerequisite User must have to register into the system.
Test Procedure 1. Enter Username, Mobile, Email, Address Phone No.
2. Click on Booking button.
Test Data UserName: Amit
Email: amit@gmail.com
Phone: 9998316492
Address: Ognaj, Gota Vasant Nagar
City: Ahmedabad
Vid: 102
SvId: 2
Expected Result Booking Service Successfully
Actual Result Booking Services into System successfully.
Status Pass
Remarks This test case for Booking Service.
Created By Amit Sinha,
Date of Creation 05/03/2021
Executed By Amit Sinha
Date of Execution 05/01/2021
Test Environment Android Emulator
78. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 78
In future I will improve the Message functionality.
In Future I Will be adding Sharing Information functionality.
In Future I will be going to Live Tracking in Future. On the Basis
Consumer can track the vendors
As well a I will provider Proper Update to Customer for great UI
and new Functionality Experience
6. Future Enhancement
79. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 79
7. Bibliography
Web Links:
o https://reactjs.org/
o https://www.w3schools.com/REACT/react_intro.asp
o https://reactnative.dev/docs/getting-started
o https://github.com/facebook/react-native
o https://www.tutorialspoint.com/react_native/index.htm
o https://www.javatpoint.com/react-native-tutorial
80. 4/19/2023 PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS)) 80
Videos Links:
o https://www.youtube.com/channel/UC80PWRj_ZU8Zu
0HSMNVwKWw
o https://www.youtube.com/channel/UCWv7vMbMWH4
-V0ZXdmDpPBA
Documentation Links:
o https://app.creately.com/diagram/
o https://app.genmymodel.com/
o https://app.diagrams.net/
81. 4/19/2023 81
Thank You!
A Presentation By
Amit Sinha
PIET-MCA (IPS - ON DEMAND SERVICE BOOKING (E-JOBS))