Sunteți pe pagina 1din 14

HireME: A JOB PORTAL FOR INFORMATION

SYSTEMS MAJORS
TEAM: Intel Inside; Query it outside!

Team members:
Chaitra Shivarame Gowda
Praneetha Yalamanchi
Shruthi Velpula
Varshasri Raghavan

GUIDED BY: Prof Dr. Shailesh Agarwal

TABLE OF CONTENTS

DATABASE DICTIONARY
1.ANALYST
Attribute Name

Data Type

USER_ID

VARCHAR(255)

JOINING_DATE
ENDING_DATE

DATETIME
DATETIME

Constrain
t
PRIMARY
KEY
NOT NULL
NULL

Description

Constrain
t
NULL

Description

The attribute can accept null


values when the person is
currently working at HireMe

2.APPLICATION
Attribute Name

Data Type

JOB_POSTING_DAT
E
DATE_APPLIED
STUDENT_SCU_ID

DATETIME

JOB_POSTING_ID

VARCHAR(50)

STATUS

VARCHAR(255)

DATETIME
VARCHAR(50)

NULL
PRIMARY
KEY
PRIMARY
KEY
NULL

It should be an enum data


type as it accepts a fixed
number of inputs only.
However since SQL server
doesnt have an equivalent to
the enum data type, it has
been imported as a varchar.

3. CSR
Attribute Name

Data Type

USER_ID

VARCHAR(255)

JOINING_DATE
ENDING_DATE

DATETIME
DATETIME

Constrain
t
PRIMARY
KEY
NOT NULL
NULL

Description

Ending Date can take a NULL


value when the person is
currently employed at HireMe

4.CSR COMPLAINT LOG


Attribute Name
COMPLAINT_ID

Data Type
VARCHAR(255)

Constraint
PRIMARY KEY

Description

USER_ID
COMPLAINT_STATU
S
COMPLAINT_TIME
CUSTOMER_RATIN
G
CUSTOMER_CHAN
NEL
CSR_ID

VARCHAR(255)
VARCHAR(255)

NOT NULL
NOT NULL

VARCHAR(255)
FLOAT

NULL
NULL

VARCHAR(255)

NULL

VARCHAR(255)

NOT NULL

5.EMPLOYER TABLE
Attribute Name
USER_ID
CONTACT_PERSON_NA
ME
CONTACT_PERSON_NU
MBER
CONTACT_PERSON_EM
AIL

Data Type
VARCHAR(255
)
VARCHAR(255
)
VARCHAR(255
)
VARCHAR(255
)

Constraint
PRIMARY KEY

Description

Data Type
VARCHAR(50)
DATETIME
VARCHAR(255)
VARCHAR(255)
VARCHAR(50)
VARCHAR(255)

Constraint
PRIMARY KEY
NOT NULL
NULL
NOT NULL
NOT NULL
NULL

VARCHAR(255)

NULL

Data Type
VARCHAR(50)
VARCHAR(255)
VARCHAR(255)
VARCHAR(255)

Constraint
PRIMARY KEY
NULL
NULL
NULL

Description

Data Type
VARCHAR(50)
VARCHAR(255)

Constraint
PRIMARY KEY
NULL

Description

NOT NULL
NULL
NULL

6.JOB POSTING
Attribute Name
JOB_POSTING_ID
JOB_POSTING_DATE
JOB_TITLE
USER_ID
ORGANIZATION_ID
JOB_POSTING_LOCATIO
N
JOB_DESCRIPTION

Description

7.ORGANIZATION
Attribute Name
ORGANIZATION_ID
ORGANIZATION_NAME
USER_ID
ORGANIZATION_CITY
8.SKILL COURSE DATA
Attribute Name
SKILL_ID
SKILL_NAME

COURSE_ID
COURSE_NAME

VARCHAR(255)
VARCHAR(255)

NULL
NULL

Data Type
VARCHAR(50)
VARCHAR(50)
VARCHAR(50)

Constraint
PRIMARY KEY
PRIMARY KEY
NULL

9.SKILL RATING
Attribute Name
STUDENT_SCU_ID
SKILL_ID
RATING

Description

10.STUDENT PERSONAL DATA


Attribute Name
STUDENT_SCU_ID
STUDENT_NAME
STUDENT_CONTACT_NU
MBER
STUDENT_ENROLLMENT_
DATE
STUDENT_EMAIL_ID
STUDENT_VISA_STATUS
USER_ID

Data Type
VARCHAR(50)
VARCHAR(255)
VARCHAR(255)

Constraint
PRIMARY KEY
NOT NULL
NULL

DATETIME

NULL

VARCHAR(255)
VARCHAR(255)
VARCHAR(255)

NULL
NULL
NOT NULL

Description

11.STUDENT PREV WORK EXPERIENCE


Attribute Name
STUDENT_SCU_ID
JOB_TITLE
ORGANIZATION_NAME
ORGANIZATION_ID
LOCATION
START_DATE
END_DATE

Data Type
VARCHAR(255)
VARCHAR(255)
VARCHAR(255)
FLOAT
VARCHAR(255)
DATE TIME
DATETIME

Constraint
PRIMARY KEY
NULL
NULL
NULL
NULL
PRIMARY KEY
NULL

Description

Constraint
PRIMARY KEY
PRIMARY KEY
NULL
NULL
NULL
NULL

Description

12. UNIVERSITY HELD STUDENT DATA


Attribute Name
STUDENT_SCU_ID
COURSE_ID
COURSE_GRADE
PROJECT_NAME
PROJECT_DESCRIPTION
TERM/YEAR

Data Type
FLOAT
VARCHAR(255)
VARCHAR(255)
VARCHAR(255)
VARCHAR(255)
VARCHAR(255)

13.USER
Attribute Name
USER_ID
USER_NAME
USER_TYPE

Data Type
VARCHAR(255)
VARCHAR(255)
VARCHAR(255)

Constraint
PRIMARY KEY
NULL
NULL

QUERIES
STUDENT

Description

EMPLOYER :
1.Post new job openings that arise for students majoring in Information
systems
User 1234156 wants to post a new job opening for the position- analyst in his
organization (organization number-1234512345) at San Francisco
INSERT INTO JOB_POSTING (JOB_POSTING_ID, JOB_POSTING_DATE, JOB_TITLE, USER_ID,
ORGANIZATION_ID, JOB_POSTING_LOCATION, JOB_DESCRIPTION)
SELECT MAX(CONVERT(BIGINT, JOB_POSTING_ID))+1,
GETDATE(),'ANALYST','1234156','1234512345','SAN FRANCISCO', 'PERFORMS QUANTITATIVE
ANALYSIS OF DATA AND PROVIDES INPUTS TO THE LEADERSHIP TEAM' FROM JOB_POSTING

After addition of the job to the list


SELECT * FROM JOB_POSTING ORDER BY JOB_POSTING_ID DESC

2. Receives a list of student profiles from the analyst if there is a preexisting match to the required skillset
When the company is actively on the lookout for eligible candidates, the employee
can give the analyst a list of the requirements that are needed for the job while the
analyst provides them with the following list of pre-enrolled students who match the
criterion
CREATE VIEW ELIGIBLE_STUDENTS AS
SELECT P.STUDENT_SCU_ID, P.STUDENT_NAME, P.STUDENT_CONTACT_NUMBER,
P.STUDENT_EMAIL_ID FROM (SELECT A.STUDENT_SCU_ID, A.STUDENT_NAME,
A.STUDENT_CONTACT_NUMBER, A.STUDENT_EMAIL_ID,
DATEDIFF(MONTH,START_DATE,END_DATE) AS 'WORK_EXPERIENCE' FROM
STUDENT_PERSONAL_DATA A, (SELECT * FROM STUDENT_PREV_WORK_EXPERIENCE B WHERE
DATEDIFF(MONTH,START_DATE,END_DATE)>=24) C WHERE
A.STUDENT_SCU_ID=C.STUDENT_SCU_ID) P,(SELECT Y.STUDENT_SCU_ID FROM

SKILL_COURSE_DATA X, SKILL_RATING Y WHERE X.SKILL_ID=Y.SKILL_ID AND SKILL_NAME LIKE


'%XML%' AND Y.RATING>=2) Q WHERE P.STUDENT_SCU_ID=Q.STUDENT_SCU_ID

Obtain details of candidates who are eligible


SELECT * FROM ELIGIBLE_STUDENTS

3.Can obtain the list of students who have applied to the jobs that the
employer has posted
If the employer - HME57072 has posted a job (job posting id- 7559221940), the list
of students who have applied will appear

SELECT * FROM STUDENT_PERSONAL_DATA A, (SELECT A.STUDENT_SCU_ID,


B.JOB_POSTING_ID FROM APPLICATION A, JOB_POSTING B WHERE
A.JOB_POSTING_ID=B.JOB_POSTING_ID AND B.JOB_POSTING_ID LIKE '%7559221940%' AND
A.STATUS LIKE '%APPLIED%') C
WHERE A.STUDENT_SCU_ID= C.STUDENT_SCU_ID

CUSTOMER SERVICE REPRESENTATIVE

1. Obtain the status of the different complaints that have been lodged
and resolve the complaints that are in progress

SELECT COMPLAINT_STATUS AS "COMPLAINT STATUS",COUNT (COMPLAINT_ID) AS


"TOTAL_NO_OF_COMPLAINTS"
FROM CSR_COMPLAINT_LOG GROUP BY COMPLAINT_STATUS

2. Obtain the channels through which customers reach out regarding


problems faced and accordingly increase human resources in the
respective channels

SELECT CUSTOMER_CHANNEL AS "COMPLAINT_CHANNEL" ,COUNT(COMPLAINT_ID) AS "NUMBER


OF COMPLAINTS" FROM CSR_COMPLAINT_LOG GROUP BY CUSTOMER_CHANNEL

3. Query periodically to identify and catalogue the average


performance rating given by customers

select CSR_ID, AVG(CUSTOMER_RATING) AS 'AVG RATING', MIN(CUSTOMER_RATING) AS


'MIN_RATING', MAX(CUSTOMER_RATING) AS 'MAX RATING' FROM CSR_COMPLAINT_LOG
GROUP BY CSR_ID

Identify the cause for the minimum rating and try to fix it
/* IMPLEMENT THIS AS A BUSINESS METRIC*/
SELECT C.USER_NAME AS 'UNHAPPY_USER', D.USER AS 'USER_ID', D.MIN_RATING AS
'RATING_GIVEN' FROM USER C,
(SELECT B.USER_ID AS 'USER', A.MIN_RATING FROM
(SELECT CSR_ID, AVG(CUSTOMER_RATING) AS 'AVG RATING', MIN(CUSTOMER_RATING) AS
'MIN_RATING', MAX(CUSTOMER_RATING) AS 'MAX_RATING' FROM CSR_COMPLAINT_LOG
GROUP BY CSR_ID) A, CSR_COMPLAINT_LOG B WHERE A.MIN_RATING=B.CUSTOMER_RATING AND
A.CSR_ID=B.CSR_ID) D WHERE C.USER_ID=D.USER

4.When an employee leaves HireME, update his ending date to the


corresponding date

INDEXES
create unique index student_locate on STUDENT_PERSONAL_DATA(STUDENT_SCU_ID)

CREATE UNIQUE INDEX STUDENT_RATING_LOCATE ON SKILL_RATING(STUDENT_SCU_ID)

CREATE UNIQUE INDEX RATING_BASED_LOCATE ON SKILL_RATING(STUDENT_SCU_ID)

VIEWS
Receives a list of student profiles from the analyst if there is a preexisting match to the required skillset
When the company is actively on the lookout for eligible candidates, the employee
can give the analyst a list of the requirements that are needed for the job while the
analyst provides them with the following list of pre-enrolled students who match the
criterion
CREATE VIEW ELIGIBLE_STUDENTS AS
SELECT P.STUDENT_SCU_ID, P.STUDENT_NAME, P.STUDENT_CONTACT_NUMBER,
P.STUDENT_EMAIL_ID FROM (SELECT A.STUDENT_SCU_ID, A.STUDENT_NAME,
A.STUDENT_CONTACT_NUMBER, A.STUDENT_EMAIL_ID,
DATEDIFF(MONTH,START_DATE,END_DATE) AS 'WORK_EXPERIENCE' FROM
STUDENT_PERSONAL_DATA A, (SELECT * FROM STUDENT_PREV_WORK_EXPERIENCE B WHERE
DATEDIFF(MONTH,START_DATE,END_DATE)>=24) C WHERE
A.STUDENT_SCU_ID=C.STUDENT_SCU_ID) P,(SELECT Y.STUDENT_SCU_ID FROM
SKILL_COURSE_DATA X, SKILL_RATING Y WHERE X.SKILL_ID=Y.SKILL_ID AND SKILL_NAME LIKE
'%XML%' AND Y.RATING>=2) Q WHERE P.STUDENT_SCU_ID=Q.STUDENT_SCU_ID

Obtain details of candidates who are eligible


SELECT * FROM ELIGIBLE_STUDENTS

Can obtain the list of students who have applied to the jobs that the
employer has posted
If the employer - HME57072 has posted a job (job posting id- 7559221940), the list
of students who have applied will appear

SELECT * FROM STUDENT_PERSONAL_DATA A, (SELECT A.STUDENT_SCU_ID,


B.JOB_POSTING_ID FROM APPLICATION A, JOB_POSTING B WHERE
A.JOB_POSTING_ID=B.JOB_POSTING_ID AND B.JOB_POSTING_ID LIKE '%7559221940%' AND
A.STATUS LIKE '%APPLIED%') C
WHERE A.STUDENT_SCU_ID= C.STUDENT_SCU_ID

TRIGGER
CREATE TRIGGER Update_UsersTable
ON STUDENT_PERSONAL_DATA
AFTER INSERT
AS BEGIN
INSERT INTO [PROJECT ].[dbo].[USER] (USER_ID, USER_NAME, USER_TYPE)
SELECT TOP 1 USER_ID, STUDENT_NAME, 'Student' FROM STUDENT_PERSONAL_DATA ORDER BY
STUDENT_ENROLLMENT_DATE DESC
END
GO
INSERT DATA INTO STUDENT_PERSONAL_DATA
INSERT INTO STUDENT_PERSONAL_DATA (STUDENT_SCU_ID, STUDENT_NAME,
STUDENT_CONTACT_NUMBER, STUDENT_ENROLLMENT_DATE, STUDENT_EMAIL_ID,
STUDENT_VISA_STATUS_,USER_ID )
VALUES('1234567891', 'VARSHA','1234156',GETDATE(),'VA@SCU.EDU', 'H4', 'H12341Y')

AFTER INSERTION
SELECT * FROM [PROJECT ].[dbo].[USER] WHERE USER_NAME LIKE '%VARSHA%'

WHEN A NEW CSR JOINS THE ORGANIZATION, A TRIGGER GENERATES A NEW


USER PROFILE FOR HIM

S-ar putea să vă placă și