Mini Project Eocs
Mini Project Eocs
Mini Project Eocs
Submitted by
of
BACHELOR OF ENGINEERING
IN
COMPUTER SCIENCE AND ENGINEERING
K.L.N.COLLEGE OF ENGINEERING
1
BONAFIDE CERTIFICATE
SIGNATURE SIGNATURE
Dr.P.R.VIJAYALAKSHMI Mrs.R.KIRUBAHARI
HEAD OF THE DEPARTMENT PROJECT COORDINATOR
ASSISTANT PROFESSOR
Computer science and engineering Computer science and engineering
K.L.N. College of Engineering, K.L.N. College of Engineering,
Pottapalayam, Pottapalayam,
Sivagangai-630 611. Sivagangai-630 611.
INTERNAL EXAMINAR
ACKNOWLEDGEMENT
2
We extend our gratitude to the Founder, Late.Thiru. K.L.N. KRISHNAN,
K.L.N College of Engineeringand Management Members for making us march
towards the glory of success. We express our sincere thanks to our respected
PrincipalDr.A.V.RAM PRASAD, M.E, Ph.D., MISTE.FIE, for all the facilities
offered.
We would like to express our deep gratitude and heartfelt thanks to Dr.P.R.
VIJAYALAKSHMI,M.E., PH.D., Head of the Department of Computer Science
and Engineering, K.L.N College of Engineering, who motivated and encouraged
us to do this outrival project for this academic year.
We thank our teaching staffs for sharing their knowledge and view to
enhance our project. We also thank our non-teaching staff for extending their
technical support to us. I thank my parents for giving me such a wonderful life and
my friends for their friendly encouragement throughout the project.
Finally, we thank the Almighty for giving the full health to finish the
mini-project successfully.
ABSTRACT
This project is developed for the college, to create an more enhanced online
classroom experience for both the teachers and the students . Our solution is a
3
combination of web frameworks and independent machine learning solutions that
work together in a loosely bound manner to deliver more useful features like
control to the users and Organisation using it. Solution also takes into account
its feasibility among the users as most of its users for students for teachers who
use it almost immediately without any prior experience. This Solution is meant to
and co-operate with their classmates and teachers on a single platform without
TABLE OF CONTENTS
CHAPTER TITLE PAGE
NO. NO.
ABSTRACT Iv
TABLE OF CONTENTS V
LIST OF FIGURES Viii
LIST OF ABBREVIATIONS Ix
1 INTRODUCTION 1
2 SYSTEM ANALYSIS
2. Existing System 10
1
2.1.1 Disadvantages 10
2. Proposed System 11
2
2.2.1 Advantages 11
3 SYSTEM SPECIFICATION 12
4
3. Hardware and Software Specification 12
1
3.1.1 Hardware Specification 12
3.1.2 Software Specification 12
3. Software Description 13
2
3.2.1 13
3.2.2 14
4 SYSTEM DESIGN 16
4. System Architecture 16
1
4. Use case Diagram 17
2
5 SYSTEM IMPLEMENTATION 21
5. Modules 21
1
5. Module Description 21
2
6 SYSTEM TESTING 40
7. Unit Testing 40
1
7. Integration Testing 41
2
7. Output Testing 44
3
7 Sample Code 47
8 CONCLUSION 85
9 FUTURE ENHANCEMENT 86
10 REFERENCES 90
5
LIST OF FIGURES
FIGURE NO. TITLE PAGE NO.
4.1 System Architecture 16
4.2 Use case Diagram 17
9.1 Login page 23
9.2 Selection page 24
9.3 Branch selection 25
9.4 Branch wise Data 25
9.5 Class Wise Data 26
9.6 Individual Data 26
9.7 Admin Page 27
9.8 Hall Allocation 27
6
LIST OF ABBREVIATIONS
7
CHAPTER 1
INTRODUCTION
1. 1 PURPOSE
The Purpose of this project is to create an environment of online learning
where the teachers and students can collaborate in real time with ease and to
provide mechanisms that will encourage more student participation.
1.2 SCOPE
The project can be used as a standalone classroom application , as it has all
the capabilities built within it. When used as a standalone system for a particular
organisation the software can be customised to various specific need of that
organisation. However this project’s implementation can also be used as a simple
1
browser extension module to easily get it integrated into the currently-in-use
systems.
The major modules in this application are:
● Online Test module
● Assignment grading based on ML
● PDF sharing with context search using ML
● Auto-Monitoring student activities
1.3 ADVANTAGES
The Enhanced Online classroom system has the following advantages they
are stated below
1. USER FRIENDLY
This system is user friendly for the retrieval and storing of data. And it is
fast to store the data. It is maintained efficiently. The graphical user interface is
implemented in this proposed system. It is more efficient than existing system.
2.ACCURATE AND FOOL-PROOF:
Online clas systems always have a very tedious process of verification
on the side of the teacher, But by using ML systems to automate the work for
them, the online class experience becomes much more accurate and fool-
proof
3. VERY LESS PAPER WORK
The proposed system requires very less paper work. All the data is entered
into the computer immediately and reports can be generated by the help of
computers. So that work will become very easy because there is no need to keep
data on more papers.
4. EASE OF ACCESS
2
All the features which are a part of the project are easily accessible to the staff as well as
the students through a well created web application which has a very smooth UI for all its
features.
CHAPTER 2
SYSTEM ANALYSIS
3
2.1 EXISTING SYSTEMS:
System for online classes is Google classroom or zoom teams software. the
softwares are being managed by the staff members of the organisation. students or
are added or joined into the teams or classrooms by using links or various kinds of
group codes.
2.1.1 DISADVANTAGES
The drawbacks that are present in the existing system are listed below
● no smooth workflow : the existing systems workflow is very rigid and not
flexible due to these reasons the staff and students find it hard to collaborate.
● no checking for validation: various kinds of assignments and task created
and given to the students can't be validated if the numbers are large ( over
hundred). tab have to rely only on the number of submission count to allot
marks to each student.
● no motivation for participation : the current online classroom systems
August more oriented towards task and submission workflow hence the
students do not learn actual content and just replicate the work given by the
teachers
4
2.2. PROPOSED SYSTEMS
2.2.1 ADVANTAGES
System is based upon ml algorithms for performing various activities and hence is
more automated and accurate when given tasks
the system gives the organisation or staff a full monitoring view of the progress of
each and every class they take and thereby reducing hassles
system has inbuilt resource sharing portals which allow the students to upload and
share materials that can be commonly viewed and bookmarked etc
system also has ml based online test portal which allows the students to write
descriptive answers and also grades them accurately
SYSTEM IMPLEMENTATION
The implementation plan includes a description of all the activities that must
occur to implement the new system and to put into operation. It identifies the
personnel responsible for the activities and prepares a time chart for
5
implementation the system .the implementation plan consists of the following
steps:
● List all the specifications, location details, user profiles.
● Activate and deactivated records based on time intervals.
SPECIFICATION OF MODEL
6
During this time the user department should concentrate on training user
staff. When the staff in user department have been trained a full system test can be
carried out, involving both implementation planning is the first task in system
compute and clerical procedure it is the stage of implementation, which is aimed at
the system works accurately before live operation commences.
CHAPTER 3
7
SYSTEM SPECIFICATION
Database : SQlite
RAM : 2GB
Monitor : SVGA
8
CHAPTER 4
SYSTEM IMPLEMENTATION
LOGIN PAGE:
● The login pages where the user step or student logs into the the system and
is redirected to the homepage .
● The login step is is achieved using a very common OAuth authorisation
technique to improve security of the system.
● This consists of all the necessary core functions to to display and render a
interactive and Secure test portal to the uses
9
● The portal is connected to many other standard modules either by direct
import or inherited import
OTHER MODULES:
● all the other module of helper models for the online test portal and online
classroom system
● these models provide the independent backend API that response to JSON
based request from a java backend
10
CHAPTER 5
SYSTEM DESIGN
12
process, the data used by the process, an external entity that interacts with
the system and the information flows in the system.
● DFD shows how the information moves through the system and how it is
modified by a series of transformations. It is a graphical technique that
depicts information flow and the transformations that are applied as data
moves from input to output.
● DFD is also known as bubble chart. A DFD may be used to represent a
system at any level of abstraction.
● All processes must have at least one data flow in and one data flow out.
● All processes should modify the incoming data, producing new forms of
outgoing data.
● Each data store must be involved with at least one data flow.
● Each external entity must be involved with at least one data flow.
13
CHAPTER 6
SOFTWARE DESCRIPTION
SPECIFICATION
14
Python was conceived in the late 1980s as a successor to the ABC
language. Python 2.0, released in 2000, introduced features like list
comprehensions and a garbage collection system capable of collecting
reference cycles. Python 3.0, released in 2008, was a major revision of
the language that is not completely backward-compatible, and much
Python 2 code does not run unmodified on Python 3.
15
Features of python
16
CHAPTER 7
SYSTEM TESTING
● System testing
● Black box testing
● Integration testing
17
7.2.1SYSTEM TESTING
Black box testing, also called behavioral testing, focuses on the functional
requirements of the software. That is, black testing enables the software engineer
to derive sets of input conditions that will fully Exercise all functional
requirements fora program. Black box testing is not alternative to white box
techniques. Rather it is a complementary approachthat is likely to uncover a
different class from errors than white box methods. Black box testing attempts to
find errors which focuses on inputs, outputs, and principle function of a software
module. The starting point of the black box testing is either a specification or code.
18
7.2.4 VERIFICATION AND VALIDATION
Verification
Verification is the process to make sure the product satisfies the conditions
imposed at the start of the development phase. In other words, to make sure the
product behaves the way we want it.
Validation
Validation is the process to make sure the product satisfies the specified
requirements at the end of the development phase. In other words, to make sure the
product is built as per customer requirements.
19
● Finding defects which may get created by the programmer while developing
the software.
● Gaining confidence in and providing information about the level of quality.
● To prevent defects.
● To make sure that the end result meets the business and user requirements.
● To ensure that it satisfies the BRS that is Business Requirement
Specification and SRS that is System Requirement Specifications.
● To gain the confidence of the customers by providing them a quality
product.
All the above system testing strategies are carried out in as the development,
Documentation and institutionalization of the proposed goals and related policies is
essential.
20
CHAPTER 8
SAMPLE CODING
# class Ui_Dialog(object):
# def setupUi(self, Dialog):
# Dialog.setObjectName("Dialog")
# Dialog.resize(1799, 819)
# Dialog.setStyleSheet("background-color: rgb(34, 63,
116);")
# self.FaceFrame = QtWidgets.QFrame(Dialog)
# self.FaceFrame.setGeometry(QtCore.QRect(30, 130, 311,
371))
#
self.FaceFrame.setFrameShape(QtWidgets.QFrame.StyledPanel
)
#
self.FaceFrame.setFrameShadow(QtWidgets.QFrame.Raised)
# self.FaceFrame.setObjectName("FaceFrame")
# self.textEdit = QtWidgets.QTextEdit(self.FaceFrame)
# self.textEdit.setGeometry(QtCore.QRect(10, 70, 291,
251))
22
# self.textEdit.setStyleSheet("background-color: rgb(255,
255, 255);")
# self.textEdit.setObjectName("textEdit")
# self.label = QtWidgets.QLabel(self.FaceFrame)
# self.label.setGeometry(QtCore.QRect(10, 20, 231, 41))
# font = QtGui.QFont()
# font.setPointSize(15)
# self.label.setFont(font)
# self.label.setStyleSheet("color: rgb(172, 196, 252);")
# self.label.setObjectName("label")
# self.facelaunch =
QtWidgets.QPushButton(self.FaceFrame)
# self.facelaunch.setGeometry(QtCore.QRect(170, 330,
131, 28))
# self.facelaunch.setStyleSheet("background-color:
rgb(189, 192, 234);")
# self.facelaunch.setObjectName("facelaunch")
# self.VoiceFrame = QtWidgets.QFrame(Dialog)
# self.VoiceFrame.setGeometry(QtCore.QRect(380, 130,
331, 371))
#
self.VoiceFrame.setFrameShape(QtWidgets.QFrame.StyledPane
l)
#
self.VoiceFrame.setFrameShadow(QtWidgets.QFrame.Raised)
# self.VoiceFrame.setObjectName("VoiceFrame")
# self.textEdit_2 = QtWidgets.QTextEdit(self.VoiceFrame)
# self.textEdit_2.setGeometry(QtCore.QRect(20, 70, 291,
251))
# self.textEdit_2.setStyleSheet("background-color:
rgb(255, 255, 255);")
23
# self.textEdit_2.setObjectName("textEdit_2")
# self.voicetonelaunch =
QtWidgets.QPushButton(self.VoiceFrame)
# self.voicetonelaunch.setGeometry(QtCore.QRect(182,
330, 131, 28))
# self.voicetonelaunch.setStyleSheet("background-color:
rgb(189, 192, 234);")
# self.voicetonelaunch.setObjectName("voicetonelaunch")
# self.radioButton =
QtWidgets.QRadioButton(self.VoiceFrame)
# self.radioButton.setGeometry(QtCore.QRect(20, 330, 95,
20))
# self.radioButton.setStyleSheet("color: rgb(172, 196,
252);")
# self.radioButton.setObjectName("radioButton")
# self.label_2 = QtWidgets.QLabel(self.VoiceFrame)
# self.label_2.setGeometry(QtCore.QRect(20, 20, 241, 41))
# font = QtGui.QFont()
# font.setPointSize(15)
# self.label_2.setFont(font)
# self.label_2.setStyleSheet("color: rgb(172, 196, 252);")
# self.label_2.setObjectName("label_2")
# self.SentiFrame = QtWidgets.QFrame(Dialog)
# self.SentiFrame.setGeometry(QtCore.QRect(750, 130,
311, 371))
#
self.SentiFrame.setFrameShape(QtWidgets.QFrame.StyledPanel
)
#
self.SentiFrame.setFrameShadow(QtWidgets.QFrame.Raised)
# self.SentiFrame.setObjectName("SentiFrame")
24
# self.textEdit_3 = QtWidgets.QTextEdit(self.SentiFrame)
# self.textEdit_3.setGeometry(QtCore.QRect(10, 70, 291,
251))
# self.textEdit_3.setAutoFillBackground(False)
# self.textEdit_3.setStyleSheet("background-color:
rgb(255, 255, 255);")
#
self.textEdit_3.setFrameShadow(QtWidgets.QFrame.Sunken)
# self.textEdit_3.setLineWidth(5)
# self.textEdit_3.setObjectName("textEdit_3")
# self.linguisticlaunch =
QtWidgets.QPushButton(self.SentiFrame)
# self.linguisticlaunch.setGeometry(QtCore.QRect(172,
330, 131, 28))
# self.linguisticlaunch.setStyleSheet("background-color:
rgb(189, 192, 234);")
# self.linguisticlaunch.setObjectName("linguisticlaunch")
# self.radioButton_2 =
QtWidgets.QRadioButton(self.SentiFrame)
# self.radioButton_2.setGeometry(QtCore.QRect(10, 330,
95, 20))
# self.radioButton_2.setStyleSheet("color: rgb(172, 196,
252);")
# self.radioButton_2.setObjectName("radioButton_2")
# self.label_3 = QtWidgets.QLabel(self.SentiFrame)
# self.label_3.setGeometry(QtCore.QRect(10, 20, 211, 41))
# font = QtGui.QFont()
# font.setPointSize(15)
# self.label_3.setFont(font)
# self.label_3.setStyleSheet("color: rgb(172, 196, 252);")
# self.label_3.setObjectName("label_3")
25
# self.tableframe = QtWidgets.QFrame(Dialog)
# self.tableframe.setGeometry(QtCore.QRect(30, 570, 651,
231))
#
self.tableframe.setFrameShape(QtWidgets.QFrame.StyledPanel)
#
self.tableframe.setFrameShadow(QtWidgets.QFrame.Raised)
# self.tableframe.setLineWidth(5)
# self.tableframe.setObjectName("tableframe")
# self.label_4 = QtWidgets.QLabel(Dialog)
# self.label_4.setGeometry(QtCore.QRect(20, 10, 231, 41))
# font = QtGui.QFont()
# font.setPointSize(15)
# self.label_4.setFont(font)
# self.label_4.setStyleSheet("color: rgb(172, 196, 252);")
# self.label_4.setObjectName("label_4")
# self.label_5 = QtWidgets.QLabel(Dialog)
# self.label_5.setGeometry(QtCore.QRect(20, 60, 231, 41))
# font = QtGui.QFont()
# font.setPointSize(15)
# self.label_5.setFont(font)
# self.label_5.setStyleSheet("color: rgb(172, 196, 252);")
# self.label_5.setObjectName("label_5")
# self.candiname = QtWidgets.QLineEdit(Dialog)
# self.candiname.setGeometry(QtCore.QRect(220, 21, 551,
31))
# self.candiname.setStyleSheet("background-color:
rgb(255, 255, 255);")
# self.candiname.setObjectName("candiname")
# self.candiid = QtWidgets.QLineEdit(Dialog)
26
# self.candiid.setGeometry(QtCore.QRect(220, 70, 551,
31))
# self.candiid.setStyleSheet("background-color: rgb(255,
255, 255);")
# self.candiid.setObjectName("candiid")
# self.startbutton = QtWidgets.QPushButton(Dialog)
# self.startbutton.setGeometry(QtCore.QRect(840, 20, 93,
28))
# self.startbutton.setStyleSheet("background-color:
rgb(189, 192, 234);")
# self.startbutton.setObjectName("startbutton")
# self.reportbutton = QtWidgets.QPushButton(Dialog)
# self.reportbutton.setGeometry(QtCore.QRect(840, 70, 93,
28))
# self.reportbutton.setStyleSheet("background-color:
rgb(189, 192, 234);")
# self.reportbutton.setObjectName("reportbutton")
# self.label_6 = QtWidgets.QLabel(Dialog)
# self.label_6.setGeometry(QtCore.QRect(30, 520, 371,
41))
# font = QtGui.QFont()
# font.setPointSize(15)
# self.label_6.setFont(font)
# self.label_6.setStyleSheet("color: rgb(172, 196, 252);")
# self.label_6.setObjectName("label_6")
# self.label_7 = QtWidgets.QLabel(Dialog)
# self.label_7.setGeometry(QtCore.QRect(710, 520, 371,
41))
# font = QtGui.QFont()
# font.setPointSize(15)
# self.label_7.setFont(font)
27
# self.label_7.setStyleSheet("color: rgb(172, 196, 252);")
# self.label_7.setObjectName("label_7")
# self.currentscoreframe = QtWidgets.QFrame(Dialog)
# self.currentscoreframe.setGeometry(QtCore.QRect(710,
570, 371, 231))
# font = QtGui.QFont()
# font.setPointSize(8)
# self.currentscoreframe.setFont(font)
#
self.currentscoreframe.setFrameShape(QtWidgets.QFrame.Style
dPanel)
#
self.currentscoreframe.setFrameShadow(QtWidgets.QFrame.Rai
sed)
#
self.currentscoreframe.setObjectName("currentscoreframe")
# self.curscore =
QtWidgets.QLabel(self.currentscoreframe)
# self.curscore.setGeometry(QtCore.QRect(40, 60, 301,
101))
# font = QtGui.QFont()
# font.setPointSize(50)
# self.curscore.setFont(font)
# self.curscore.setStyleSheet("color: rgb(31, 226, 194);")
# self.curscore.setObjectName("curscore")
# self.resetdb = QtWidgets.QPushButton(Dialog)
# self.resetdb.setGeometry(QtCore.QRect(960, 20, 101,
28))
# self.resetdb.setStyleSheet("background-color: rgb(189,
192, 234);")
# self.resetdb.setObjectName("resetdb")
28
# self.savereport = QtWidgets.QPushButton(Dialog)
# self.savereport.setGeometry(QtCore.QRect(960, 70, 101,
28))
# self.savereport.setStyleSheet("background-color:
rgb(189, 192, 234);")
# self.savereport.setObjectName("savereport")
# self.label_8 = QtWidgets.QLabel(Dialog)
# self.label_8.setGeometry(QtCore.QRect(1110, 150, 211,
41))
# font = QtGui.QFont()
# font.setPointSize(15)
# self.label_8.setFont(font)
# self.label_8.setStyleSheet("color: rgb(172, 196, 252);")
# self.label_8.setObjectName("label_8")
# self.qbox = QtWidgets.QTextEdit(Dialog)
# self.qbox.setGeometry(QtCore.QRect(1110, 200, 671,
171))
# font = QtGui.QFont()
# font.setPointSize(24)
# self.qbox.setFont(font)
# self.qbox.setAutoFillBackground(False)
# self.qbox.setStyleSheet("background-color: rgb(255, 255,
255);")
# self.qbox.setFrameShadow(QtWidgets.QFrame.Sunken)
# self.qbox.setLineWidth(5)
# self.qbox.setObjectName("qbox")
# self.label_9 = QtWidgets.QLabel(Dialog)
# self.label_9.setGeometry(QtCore.QRect(1110, 390, 211,
41))
# font = QtGui.QFont()
# font.setPointSize(15)
29
# self.label_9.setFont(font)
# self.label_9.setStyleSheet("color: rgb(172, 196, 252);")
# self.label_9.setObjectName("label_9")
# self.rbox = QtWidgets.QTextEdit(Dialog)
# self.rbox.setGeometry(QtCore.QRect(1110, 440, 671,
171))
# font = QtGui.QFont()
# font.setPointSize(24)
# self.rbox.setFont(font)
# self.rbox.setAutoFillBackground(False)
# self.rbox.setStyleSheet("background-color: rgb(255, 255,
255);")
# self.rbox.setFrameShadow(QtWidgets.QFrame.Sunken)
# self.rbox.setLineWidth(5)
# self.rbox.setObjectName("rbox")
# self.label_10 = QtWidgets.QLabel(Dialog)
# self.label_10.setGeometry(QtCore.QRect(1340, 40, 261,
51))
# font = QtGui.QFont()
# font.setPointSize(26)
# self.label_10.setFont(font)
# self.label_10.setStyleSheet("color: rgb(172, 196, 252);")
# self.label_10.setObjectName("label_10")
# self.label_11 = QtWidgets.QLabel(Dialog)
# self.label_11.setGeometry(QtCore.QRect(1110, 630, 371,
41))
# font = QtGui.QFont()
# font.setPointSize(15)
# self.label_11.setFont(font)
# self.label_11.setStyleSheet("color: rgb(172, 196, 252);")
# self.label_11.setObjectName("label_11")
30
# self.resumeselect = QtWidgets.QPushButton(Dialog)
# self.resumeselect.setGeometry(QtCore.QRect(1280, 700,
301, 91))
# font = QtGui.QFont()
# font.setPointSize(15)
# self.resumeselect.setFont(font)
# self.resumeselect.setStyleSheet("background-color:
rgb(189, 192, 234);")
# self.resumeselect.setObjectName("resumeselect")
# self.table=QtWidgets.QTableWidget(self.tableframe)
# self.table.setFixedWidth(650)
# self.table.setFixedHeight(300)
# self.table.setAlternatingRowColors(True)
#
# self.retranslateUi(Dialog)
# QtCore.QMetaObject.connectSlotsByName(Dialog)
#
# def retranslateUi(self, Dialog):
# _translate = QtCore.QCoreApplication.translate
# Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
# self.label.setText(_translate("Dialog", "Face Analysis
Status:"))
# self.facelaunch.setText(_translate("Dialog", "launch
seprately"))
# self.voicetonelaunch.setText(_translate("Dialog", "launch
seprately"))
# self.radioButton.setText(_translate("Dialog", "selected"))
# self.label_2.setText(_translate("Dialog", "Voice Tone
Analysis:"))
# self.linguisticlaunch.setText(_translate("Dialog", "launch
seperately"))
31
# self.radioButton_2.setText(_translate("Dialog",
"selected"))
# self.label_3.setText(_translate("Dialog", "Linguistic
Analysis:"))
# self.label_4.setText(_translate("Dialog", "Candidate
name:"))
# self.label_5.setText(_translate("Dialog", "Candidate
ID:"))
# self.startbutton.setText(_translate("Dialog", "Start
Session"))
# self.reportbutton.setText(_translate("Dialog", "Get
Report"))
# self.label_6.setText(_translate("Dialog", "Previous
Candidates Score Table:"))
# self.label_7.setText(_translate("Dialog", "Current
Candidate Score:"))
# self.curscore.setText(_translate("Dialog", "0.00%"))
# self.resetdb.setText(_translate("Dialog", "Reset
Database"))
# self.savereport.setText(_translate("Dialog", "Save
Report"))
# self.label_8.setText(_translate("Dialog", "Question:"))
# self.label_9.setText(_translate("Dialog", "Response:"))
# self.label_10.setText(_translate("Dialog",
"Questionaire"))
# self.label_11.setText(_translate("Dialog", "Upload
Candidate Resume:"))
# self.resumeselect.setText(_translate("Dialog", "Select
Resume file"))
# ++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++
32
++++++++++++++++++++++++++++++++++++++++++++++
++++++
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(1803, 848)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(".designer/backup/Downloads/
1076441.jpg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
Dialog.setWindowIcon(icon)
Dialog.setStyleSheet("background-color: rgb(34, 63,
116);")
self.tabWidget = QtWidgets.QTabWidget(Dialog)
self.tabWidget.setGeometry(QtCore.QRect(0, 0, 1811,
851))
font = QtGui.QFont()
font.setPointSize(10)
self.tabWidget.setFont(font)
self.tabWidget.setObjectName("tabWidget")
self.mainview = QtWidgets.QWidget()
self.mainview.setObjectName("mainview")
self.reportbutton = QtWidgets.QPushButton(self.mainview)
self.reportbutton.setGeometry(QtCore.QRect(830, 69, 93,
28))
self.reportbutton.setStyleSheet("background-color: rgb(189,
192, 234);")
self.reportbutton.setObjectName("reportbutton")
self.label_7 = QtWidgets.QLabel(self.mainview)
self.label_7.setGeometry(QtCore.QRect(700, 519, 371, 41))
33
font = QtGui.QFont()
font.setPointSize(15)
self.label_7.setFont(font)
self.label_7.setStyleSheet("color: rgb(172, 196, 252);")
self.label_7.setObjectName("label_7")
self.label_8 = QtWidgets.QLabel(self.mainview)
self.label_8.setGeometry(QtCore.QRect(1100, 149, 211,
41))
font = QtGui.QFont()
font.setPointSize(15)
self.label_8.setFont(font)
self.label_8.setStyleSheet("color: rgb(172, 196, 252);")
self.label_8.setObjectName("label_8")
self.label_10 = QtWidgets.QLabel(self.mainview)
self.label_10.setGeometry(QtCore.QRect(1330, 39, 261,
51))
font = QtGui.QFont()
font.setPointSize(26)
self.label_10.setFont(font)
self.label_10.setStyleSheet("color: rgb(172, 196, 252);")
self.label_10.setObjectName("label_10")
self.label_6 = QtWidgets.QLabel(self.mainview)
self.label_6.setGeometry(QtCore.QRect(20, 519, 371, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.label_6.setFont(font)
self.label_6.setStyleSheet("color: rgb(172, 196, 252);")
self.label_6.setObjectName("label_6")
self.label_11 = QtWidgets.QLabel(self.mainview)
self.label_11.setGeometry(QtCore.QRect(1100, 629, 371,
41))
34
font = QtGui.QFont()
font.setPointSize(15)
self.label_11.setFont(font)
self.label_11.setStyleSheet("color: rgb(172, 196, 252);")
self.label_11.setObjectName("label_11")
self.resetdb = QtWidgets.QPushButton(self.mainview)
self.resetdb.setGeometry(QtCore.QRect(950, 19, 101, 28))
self.resetdb.setStyleSheet("background-color: rgb(189, 192,
234);")
self.resetdb.setObjectName("resetdb")
self.candiid = QtWidgets.QLineEdit(self.mainview)
self.candiid.setGeometry(QtCore.QRect(210, 69, 551, 31))
font = QtGui.QFont()
font.setPointSize(12)
self.candiid.setFont(font)
self.candiid.setStyleSheet("background-color: rgb(255, 255,
255);")
self.candiid.setObjectName("candiid")
self.label_5 = QtWidgets.QLabel(self.mainview)
self.label_5.setGeometry(QtCore.QRect(10, 59, 191, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.label_5.setFont(font)
self.label_5.setStyleSheet("color: rgb(172, 196, 252);")
self.label_5.setObjectName("label_5")
self.FaceFrame = QtWidgets.QFrame(self.mainview)
self.FaceFrame.setGeometry(QtCore.QRect(20, 129, 311,
371))
self.FaceFrame.setFrameShape(QtWidgets.QFrame.StyledPanel
)
35
self.FaceFrame.setFrameShadow(QtWidgets.QFrame.Raised)
self.FaceFrame.setObjectName("FaceFrame")
self.textEdit_4 = QtWidgets.QTextEdit(self.FaceFrame)
self.textEdit_4.setGeometry(QtCore.QRect(10, 70, 291,
251))
font = QtGui.QFont()
font.setPointSize(12)
self.textEdit_4.setFont(font)
self.textEdit_4.setStyleSheet("background-color: rgb(255,
255, 255);")
self.textEdit_4.setObjectName("textEdit_4")
self.label_4 = QtWidgets.QLabel(self.FaceFrame)
self.label_4.setGeometry(QtCore.QRect(10, 20, 231, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.label_4.setFont(font)
self.label_4.setStyleSheet("color: rgb(172, 196, 252);")
self.label_4.setObjectName("label_4")
self.facelaunch = QtWidgets.QPushButton(self.FaceFrame)
self.facelaunch.setGeometry(QtCore.QRect(170, 330, 131,
28))
self.facelaunch.setStyleSheet("background-color: rgb(189,
192, 234);")
self.facelaunch.setObjectName("facelaunch_2")
self.rbox = QtWidgets.QTextEdit(self.mainview)
self.rbox.setGeometry(QtCore.QRect(1100, 439, 671, 171))
font = QtGui.QFont()
font.setPointSize(20)
self.rbox.setFont(font)
self.rbox.setAutoFillBackground(False)
36
self.rbox.setStyleSheet("background-color: rgb(255, 255,
255);")
self.rbox.setFrameShadow(QtWidgets.QFrame.Sunken)
self.rbox.setLineWidth(5)
self.rbox.setObjectName("rbox")
self.label_9 = QtWidgets.QLabel(self.mainview)
self.label_9.setGeometry(QtCore.QRect(1100, 389, 211,
41))
font = QtGui.QFont()
font.setPointSize(15)
self.label_9.setFont(font)
self.label_9.setStyleSheet("color: rgb(172, 196, 252);")
self.label_9.setObjectName("label_9")
self.savereport = QtWidgets.QPushButton(self.mainview)
self.savereport.setGeometry(QtCore.QRect(950, 69, 101,
28))
self.savereport.setStyleSheet("background-color: rgb(189,
192, 234);")
self.savereport.setObjectName("savereport")
self.resumeselect = QtWidgets.QPushButton(self.mainview)
self.resumeselect.setGeometry(QtCore.QRect(1270, 699,
301, 91))
font = QtGui.QFont()
font.setPointSize(15)
self.resumeselect.setFont(font)
self.resumeselect.setStyleSheet("background-color:
rgb(189, 192, 234);")
self.resumeselect.setObjectName("resumeselect")
self.currentscoreframe = QtWidgets.QFrame(self.mainview)
self.currentscoreframe.setGeometry(QtCore.QRect(700,
569, 371, 231))
37
font = QtGui.QFont()
font.setPointSize(8)
self.currentscoreframe.setFont(font)
self.currentscoreframe.setFrameShape(QtWidgets.QFrame.Style
dPanel)
self.currentscoreframe.setFrameShadow(QtWidgets.QFrame.Rai
sed)
self.currentscoreframe.setObjectName("currentscoreframe")
self.curscore = QtWidgets.QLabel(self.currentscoreframe)
self.curscore.setGeometry(QtCore.QRect(40, 60, 301, 101))
font = QtGui.QFont()
font.setPointSize(50)
self.curscore.setFont(font)
self.curscore.setStyleSheet("color: rgb(31, 226, 194);")
self.curscore.setObjectName("curscore_2")
self.VoiceFrame = QtWidgets.QFrame(self.mainview)
self.VoiceFrame.setGeometry(QtCore.QRect(370, 129, 331,
371))
self.VoiceFrame.setFrameShape(QtWidgets.QFrame.StyledPane
l)
self.VoiceFrame.setFrameShadow(QtWidgets.QFrame.Raised)
self.VoiceFrame.setObjectName("VoiceFrame")
self.textEdit_5 = QtWidgets.QTextEdit(self.VoiceFrame)
self.textEdit_5.setGeometry(QtCore.QRect(20, 70, 291,
251))
font = QtGui.QFont()
font.setPointSize(12)
self.textEdit_5.setFont(font)
38
self.textEdit_5.setStyleSheet("background-color: rgb(255,
255, 255);")
self.textEdit_5.setObjectName("textEdit_5")
self.voicetonelaunch =
QtWidgets.QPushButton(self.VoiceFrame)
self.voicetonelaunch.setGeometry(QtCore.QRect(182, 330,
131, 28))
self.voicetonelaunch.setStyleSheet("background-color:
rgb(189, 192, 234);")
self.voicetonelaunch.setObjectName("voicetonelaunch_2")
self.radioButton_3 =
QtWidgets.QRadioButton(self.VoiceFrame)
self.radioButton_3.setGeometry(QtCore.QRect(20, 330, 95,
20))
self.radioButton_3.setStyleSheet("color: rgb(172, 196,
252);")
self.radioButton_3.setObjectName("radioButton_3")
self.label_12 = QtWidgets.QLabel(self.VoiceFrame)
self.label_12.setGeometry(QtCore.QRect(20, 20, 241, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.label_12.setFont(font)
self.label_12.setStyleSheet("color: rgb(172, 196, 252);")
self.label_12.setObjectName("label_12")
self.SentiFrame = QtWidgets.QFrame(self.mainview)
self.SentiFrame.setGeometry(QtCore.QRect(740, 129, 311,
371))
self.SentiFrame.setFrameShape(QtWidgets.QFrame.StyledPanel
)
self.SentiFrame.setFrameShadow(QtWidgets.QFrame.Raised)
39
self.SentiFrame.setObjectName("SentiFrame")
self.textEdit_6 = QtWidgets.QTextEdit(self.SentiFrame)
self.textEdit_6.setGeometry(QtCore.QRect(10, 70, 291,
251))
font = QtGui.QFont()
font.setPointSize(12)
self.textEdit_6.setFont(font)
self.textEdit_6.setAutoFillBackground(False)
self.textEdit_6.setStyleSheet("background-color: rgb(255,
255, 255);")
self.textEdit_6.setFrameShadow(QtWidgets.QFrame.Sunken)
self.textEdit_6.setLineWidth(5)
self.textEdit_6.setObjectName("textEdit_6")
self.linguisticlaunch_2 =
QtWidgets.QPushButton(self.SentiFrame)
self.linguisticlaunch_2.setGeometry(QtCore.QRect(172,
330, 131, 28))
self.linguisticlaunch_2.setStyleSheet("background-color:
rgb(189, 192, 234);")
self.linguisticlaunch_2.setObjectName("linguisticlaunch_2")
self.radioButton_4 =
QtWidgets.QRadioButton(self.SentiFrame)
self.radioButton_4.setGeometry(QtCore.QRect(10, 330, 95,
20))
self.radioButton_4.setStyleSheet("color: rgb(172, 196,
252);")
self.radioButton_4.setObjectName("radioButton_4")
self.label_13 = QtWidgets.QLabel(self.SentiFrame)
self.label_13.setGeometry(QtCore.QRect(10, 20, 211, 41))
font = QtGui.QFont()
40
font.setPointSize(15)
self.label_13.setFont(font)
self.label_13.setStyleSheet("color: rgb(172, 196, 252);")
self.label_13.setObjectName("label_13")
self.label_14 = QtWidgets.QLabel(self.mainview)
self.label_14.setGeometry(QtCore.QRect(10, 9, 231, 41))
font = QtGui.QFont()
font.setPointSize(15)
self.label_14.setFont(font)
self.label_14.setStyleSheet("color: rgb(172, 196, 252);")
self.label_14.setObjectName("label_14")
self.tableframe = QtWidgets.QFrame(self.mainview)
self.tableframe.setGeometry(QtCore.QRect(20, 569, 651,
231))
self.tableframe.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.tableframe.setFrameShadow(QtWidgets.QFrame.Raised)
self.tableframe.setLineWidth(5)
self.tableframe.setObjectName("tableframe")
self.startbutton = QtWidgets.QPushButton(self.mainview)
self.startbutton.setGeometry(QtCore.QRect(830, 19, 93,
28))
self.startbutton.setStyleSheet("background-color: rgb(189,
192, 234);")
self.startbutton.setObjectName("startbutton")
self.qbox = QtWidgets.QTextEdit(self.mainview)
self.qbox.setGeometry(QtCore.QRect(1100, 199, 671, 171))
font = QtGui.QFont()
font.setPointSize(20)
self.qbox.setFont(font)
self.qbox.setAutoFillBackground(False)
41
self.qbox.setStyleSheet("background-color: rgb(255, 255,
255);")
self.qbox.setFrameShadow(QtWidgets.QFrame.Sunken)
self.qbox.setLineWidth(5)
self.qbox.setObjectName("qbox")
self.candiname = QtWidgets.QLineEdit(self.mainview)
self.candiname.setGeometry(QtCore.QRect(210, 20, 551,
31))
font = QtGui.QFont()
font.setPointSize(12)
self.candiname.setFont(font)
self.candiname.setStyleSheet("background-color: rgb(255,
255, 255);")
self.candiname.setObjectName("candiname")
self.tabWidget.addTab(self.mainview, "")
self.personalitytab = QtWidgets.QWidget()
self.personalitytab.setObjectName("personalitytab")
self.label_23 = QtWidgets.QLabel(self.personalitytab)
self.label_23.setGeometry(QtCore.QRect(40 - 25, 360 +
232, 391, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.label_23.setFont(font)
self.label_23.setStyleSheet("color: rgb(172, 196, 252);")
self.label_23.setObjectName("label_23")
self.label_22 = QtWidgets.QLabel(self.personalitytab)
self.label_22.setGeometry(QtCore.QRect(40 - 25, 280 +
232, 391, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.label_22.setFont(font)
42
self.label_22.setStyleSheet("color: rgb(172, 196, 252);")
self.label_22.setObjectName("label_22")
self.label_21 = QtWidgets.QLabel(self.personalitytab)
self.label_21.setGeometry(QtCore.QRect(40, 80, 221, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.label_21.setFont(font)
self.label_21.setStyleSheet("color: rgb(172, 196, 252);")
self.label_21.setObjectName("label_21")
self.characterlabel = QtWidgets.QLabel(self.personalitytab)
# self.characterlabel.setGeometry(QtCore.QRect(80 - 60,
140, 671 + 1100,
# 111 + 250))
self.characterlabel.setGeometry(QtCore.QRect(80, 140,
671,
111 )) # create a new dataset to
be resized to this dimesions 1771x361
font = QtGui.QFont()
font.setPointSize(15)
self.characterlabel.setFont(font)
self.characterlabel.setStyleSheet("color: rgb(172, 196,
252);")
self.characterlabel.setObjectName("characterlabel")
# self.webviewinsert =
QtWidgets.QGraphicsView(self.personalitytab)
# self.webviewinsert.setGeometry(QtCore.QRect(860, 110,
911, 691))
# self.webviewinsert.setObjectName("webviewinsert")
self.label_24 = QtWidgets.QLabel(self.personalitytab)
self.label_24.setGeometry(QtCore.QRect(1020 - 450, 30 -
20, 661, 61)) # 1020
43
font = QtGui.QFont()
font.setPointSize(22)
self.label_24.setFont(font)
self.label_24.setStyleSheet("color: rgb(172, 196, 252);")
self.label_24.setObjectName("label_24")
self.label_25 = QtWidgets.QLabel(self.personalitytab)
self.label_25.setGeometry(QtCore.QRect(40 + 850 + 20,
520, 391, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.label_25.setFont(font)
self.label_25.setStyleSheet("color: rgb(172, 196, 252);")
self.label_25.setObjectName("label_25")
self.label_26 = QtWidgets.QLabel(self.personalitytab)
self.label_26.setGeometry(QtCore.QRect(40 - 25, 440 +
232, 391, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.label_26.setFont(font)
self.label_26.setStyleSheet("color: rgb(172, 196, 252);")
self.label_26.setObjectName("label_26")
# self.label_27 = QtWidgets.QLabel(self.personalitytab)
# self.label_27.setGeometry(QtCore.QRect(230+850+20,
10, 450, 51))
font = QtGui.QFont()
font.setPointSize(20)
# self.label_27.setFont(font)
# self.label_27.setStyleSheet("color: rgb(172, 196, 252);")
# self.label_27.setObjectName("label_27")
self.label_28 = QtWidgets.QLabel(self.personalitytab)
44
self.label_28.setGeometry(QtCore.QRect(40 + 850 + 20,
600, 391, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.label_28.setFont(font)
self.label_28.setStyleSheet("color: rgb(172, 196, 252);")
self.label_28.setObjectName("label_28")
self.label_29 = QtWidgets.QLabel(self.personalitytab)
self.label_29.setGeometry(QtCore.QRect(40 + 850 + 20,
680, 391, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.label_29.setFont(font)
self.label_29.setStyleSheet("color: rgb(172, 196, 252);")
self.label_29.setObjectName("label_29")
self.interaction = QtWidgets.QLabel(self.personalitytab)
self.interaction.setGeometry(QtCore.QRect(480 - 25, 280 +
232, 450, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.interaction.setFont(font)
self.interaction.setStyleSheet("color: rgb(172, 196, 252);")
self.interaction.setObjectName("interaction")
self.intelligence = QtWidgets.QLabel(self.personalitytab)
self.intelligence.setGeometry(QtCore.QRect(480 - 25, 360
+ 232, 450, 31)) # 221
font = QtGui.QFont()
font.setPointSize(15)
self.intelligence.setFont(font)
self.intelligence.setStyleSheet("color: rgb(172, 196, 252);")
self.intelligence.setObjectName("intelligence")
45
self.strength = QtWidgets.QLabel(self.personalitytab)
self.strength.setGeometry(QtCore.QRect(480 - 25, 440 +
232, 450, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.strength.setFont(font)
self.strength.setStyleSheet("color: rgb(172, 196, 252);")
self.strength.setObjectName("strength")
self.weakness = QtWidgets.QLabel(self.personalitytab)
self.weakness.setGeometry(QtCore.QRect(480 + 850 + 20,
520, 450, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.weakness.setFont(font)
self.weakness.setStyleSheet("color: rgb(172, 196, 252);")
self.weakness.setObjectName("weakness")
self.career = QtWidgets.QLabel(self.personalitytab)
self.career.setGeometry(QtCore.QRect(480 + 850 + 20,
600, 450, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.career.setFont(font)
self.career.setStyleSheet("color: rgb(172, 196, 252);")
self.career.setObjectName("career")
self.famous = QtWidgets.QLabel(self.personalitytab)
self.famous.setGeometry(QtCore.QRect(480 + 850 + 20,
680, 450, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.famous.setFont(font)
self.famous.setStyleSheet("color: rgb(172, 196, 252);")
46
self.famous.setObjectName("famous")
self.tabWidget.addTab(self.personalitytab, "")
self.questioneditview = QtWidgets.QWidget()
self.questioneditview.setObjectName("questioneditview")
self.quesprev = QtWidgets.QTableWidget(
self.questioneditview) # self.quesprev =
QtWidgets.QFrame(self.questioneditview)
self.quesprev.setGeometry(QtCore.QRect(1050, 120, 711,
671))
# self.quesprev.setStyleSheet("background-color: rgb(255,
255, 255);") 3 commmenting to try to get default style sheet
self.quesprev.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.quesprev.setFrameShadow(QtWidgets.QFrame.Raised)
self.quesprev.setLineWidth(5)
self.quesprev.setObjectName("quesprev")
self.quesprev.setAlternatingRowColors(True) # manually
added
self.label_15 = QtWidgets.QLabel(self.questioneditview)
self.label_15.setGeometry(QtCore.QRect(1240, 40, 491,
61))
font = QtGui.QFont()
font.setPointSize(25)
self.label_15.setFont(font)
self.label_15.setStyleSheet("color: rgb(172, 196, 252);")
self.label_15.setObjectName("label_15")
self.label_16 = QtWidgets.QLabel(self.questioneditview)
self.label_16.setGeometry(QtCore.QRect(60, 80, 221, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.label_16.setFont(font)
47
self.label_16.setStyleSheet("color: rgb(172, 196, 252);")
self.label_16.setObjectName("label_16")
self.questionadd =
QtWidgets.QLineEdit(self.questioneditview)
self.questionadd.setGeometry(QtCore.QRect(420, 80, 551,
31))
font = QtGui.QFont()
font.setPointSize(13)
self.questionadd.setFont(font)
self.questionadd.setStyleSheet("background-color: rgb(255,
255, 255);")
self.questionadd.setObjectName("questionadd")
self.label_17 = QtWidgets.QLabel(self.questioneditview)
self.label_17.setGeometry(QtCore.QRect(330, 20, 311, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.label_17.setFont(font)
self.label_17.setStyleSheet("color: rgb(172, 196, 252);")
self.label_17.setObjectName("label_17")
self.desc = QtWidgets.QTextEdit(self.questioneditview)
self.desc.setGeometry(QtCore.QRect(420, 140, 551, 111))
self.desc.setStyleSheet("background-color: rgb(255, 255,
255);")
self.desc.setObjectName("desc")
self.label_19 = QtWidgets.QLabel(self.questioneditview)
self.label_19.setGeometry(QtCore.QRect(60, 150, 271, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.label_19.setFont(font)
self.label_19.setStyleSheet("color: rgb(172, 196, 252);")
self.label_19.setObjectName("label_19")
48
self.label_20 = QtWidgets.QLabel(self.questioneditview)
self.label_20.setGeometry(QtCore.QRect(60, 300, 271, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.label_20.setFont(font)
self.label_20.setStyleSheet("color: rgb(172, 196, 252);")
self.label_20.setObjectName("label_20")
self.comboBox =
QtWidgets.QComboBox(self.questioneditview)
self.comboBox.setGeometry(QtCore.QRect(420, 310, 111,
22))
self.comboBox.setStyleSheet("background-color: rgb(255,
255, 255);")
self.comboBox.setObjectName("comboBox")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.preloadbtn =
QtWidgets.QPushButton(self.questioneditview)
self.preloadbtn.setGeometry(QtCore.QRect(580, 300, 171,
41))
self.preloadbtn.setStyleSheet("background-color: rgb(189,
192, 234);")
self.preloadbtn.setObjectName("preloadbtn")
49
self.tabWidget.addTab(self.questioneditview, "")
self.settings = QtWidgets.QWidget()
self.settings.setObjectName("settings")
self.plainTextEdit =
QtWidgets.QPlainTextEdit(self.settings)
self.plainTextEdit.setEnabled(False)
self.plainTextEdit.setGeometry(QtCore.QRect(1000, 90,
781, 711))
font = QtGui.QFont()
font.setPointSize(15)
self.plainTextEdit.setFont(font)
self.plainTextEdit.setStyleSheet("color: rgb(172, 196,
252);")
self.plainTextEdit.setObjectName("plainTextEdit")
self.horizontalSlider = QtWidgets.QSlider(self.settings)
self.horizontalSlider.setGeometry(QtCore.QRect(380, 330,
361, 21))
self.horizontalSlider.setMinimum(1000)
self.horizontalSlider.setMaximum(5000)
self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
self.horizontalSlider.setObjectName("horizontalSlider")
self.noisethreshold = QtWidgets.QSpinBox(self.settings)
self.noisethreshold.setGeometry(QtCore.QRect(760, 330,
111, 31))
font = QtGui.QFont()
font.setPointSize(12)
self.noisethreshold.setFont(font)
self.noisethreshold.setStyleSheet("color: rgb(172, 196,
252);")
self.noisethreshold.setMinimum(1000)
self.noisethreshold.setMaximum(5000)
50
self.noisethreshold.setObjectName("noisethreshold")
self.label_36 = QtWidgets.QLabel(self.settings)
self.label_36.setGeometry(QtCore.QRect(90, 320, 271, 31))
font = QtGui.QFont()
font.setPointSize(15)
self.label_36.setFont(font)
self.label_36.setStyleSheet("color: rgb(172, 196, 252);")
self.label_36.setObjectName("label_36")
self.label_37 = QtWidgets.QLabel(self.settings)
self.label_37.setGeometry(QtCore.QRect(410, 30, 121, 51))
font = QtGui.QFont()
font.setPointSize(20)
self.label_37.setFont(font)
self.label_37.setStyleSheet("color: rgb(172, 196, 252);")
self.label_37.setObjectName("label_37")
self.label_38 = QtWidgets.QLabel(self.settings)
self.label_38.setGeometry(QtCore.QRect(1000, 20, 181,
51))
font = QtGui.QFont()
font.setPointSize(20)
self.label_38.setFont(font)
self.label_38.setStyleSheet("color: rgb(172, 196, 252);")
self.label_38.setObjectName("label_38")
self.testmicbtn = QtWidgets.QPushButton(self.settings)
self.testmicbtn.setGeometry(QtCore.QRect(380, 390, 251,
41))
font = QtGui.QFont()
font.setPointSize(10)
self.testmicbtn.setFont(font)
self.testmicbtn.setStyleSheet("background-color: rgb(189,
192, 234);")
51
self.testmicbtn.setObjectName("pushButton")
self.tabWidget.addTab(self.settings, "")
self.table = QtWidgets.QTableWidget(self.tableframe)
self.table.setFixedWidth(650)
self.table.setFixedHeight(300)
self.table.setAlternatingRowColors(True)
#
self.table.setHorizontalHeaderLabels("Id;Name;Fscore;Vscore;
Lscore;Tscore".split(";"))
#
self.table.horizontalHeaderItem().setTextAlignment(PyQt5.QtC
ore.Qt.AlignHCenter) # not working
# self.quesprev.setFixedHeight(1000)
# self.quesprev.setFixedSize(4000,4000)
# self.quesprev.setFixedWidth(2000)
# none of them seem to adjustt the frame
# im shit scared to edit the UI again
# try to fix thee stuff in this same UI
self.retranslateUi(Dialog)
self.tabWidget.setCurrentIndex(0)
self.noisethreshold.valueChanged['int'].connect(self.horizontalSl
ider.setValue)
self.horizontalSlider.valueChanged['int'].connect(self.noisethres
hold.setValue)
QtCore.QMetaObject.connectSlotsByName(Dialog)
52
Dialog.setWindowTitle(_translate("Dialog", "AI Hiring
System"))
self.reportbutton.setText(_translate("Dialog", "Get
Report"))
self.label_7.setText(_translate("Dialog", "Current Candidate
Score:"))
self.label_8.setText(_translate("Dialog", "Question:"))
self.label_10.setText(_translate("Dialog", "Questionaire"))
self.label_6.setText(_translate("Dialog", "Previous
Candidates Score Table:"))
self.label_11.setText(_translate("Dialog", "Upload
Candidate Resume:"))
self.resetdb.setText(_translate("Dialog", "Reset Database"))
self.label_5.setText(_translate("Dialog", "Candidate ID:"))
self.label_4.setText(_translate("Dialog", "Face Analysis
Status:"))
self.facelaunch.setText(_translate("Dialog", "launch
seprately"))
self.label_9.setText(_translate("Dialog", "Response:"))
self.savereport.setText(_translate("Dialog", "Save Report"))
self.resumeselect.setText(_translate("Dialog", "Select
Resume file"))
self.curscore.setText(_translate("Dialog", "0.00%"))
self.voicetonelaunch.setText(_translate("Dialog", "launch
seprately"))
self.radioButton_3.setText(_translate("Dialog", "selected"))
self.label_12.setText(_translate("Dialog", "Voice Tone
Analysis:"))
self.linguisticlaunch_2.setText(_translate("Dialog", "launch
seperately"))
self.radioButton_4.setText(_translate("Dialog", "selected"))
53
self.label_13.setText(_translate("Dialog", "Linguistic
Analysis:"))
self.label_14.setText(_translate("Dialog", "Candidate
name:"))
self.startbutton.setText(_translate("Dialog", "Start
Session"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.mainvie
w), _translate("Dialog", "Candidate testing"))
self.label_23.setText(_translate("Dialog", "Intelligence type
:"))
self.label_22.setText(_translate("Dialog", "Interaction type
:"))
self.label_21.setText(_translate("Dialog", "Character
Code:"))
self.characterlabel.setText(_translate("Dialog",
"<--------------------No Image loaded----------------->"))
self.label_24.setText(_translate("Dialog", "Detailed
Personality Insight"))
self.label_25.setText(_translate("Dialog", "Weakness
:"))
self.label_26.setText(_translate("Dialog", "Strength
:"))
# self.label_27.setText(_translate("Dialog", "Quick
Summary of Personality"))
self.label_28.setText(_translate("Dialog", "Ideal Careers
:"))
self.label_29.setText(_translate("Dialog", "Famous
personalities :"))
self.interaction.setText(_translate("Dialog", "None"))
self.intelligence.setText(_translate("Dialog", "None"))
54
self.strength.setText(_translate("Dialog", "None"))
self.weakness.setText(_translate("Dialog", "None"))
self.career.setText(_translate("Dialog", "None"))
self.famous.setText(_translate("Dialog", "None"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.personal
itytab),
_translate("Dialog", "Personality
Analysis"))
self.label_15.setText(_translate("Dialog", "Question
preview"))
self.label_16.setText(_translate("Dialog", "Question to
add:"))
self.label_17.setText(_translate("Dialog", "Edit Questions
In database"))
self.label_19.setText(_translate("Dialog", "Description of
Question:"))
self.label_20.setText(_translate("Dialog", "Weightage of
Question:"))
self.comboBox.setItemText(0, _translate("Dialog", "1"))
self.comboBox.setItemText(1, _translate("Dialog", "2"))
self.comboBox.setItemText(2, _translate("Dialog", "3"))
self.comboBox.setItemText(3, _translate("Dialog", "4"))
self.comboBox.setItemText(4, _translate("Dialog", "5"))
self.comboBox.setItemText(5, _translate("Dialog", "6"))
self.comboBox.setItemText(6, _translate("Dialog", "7"))
self.comboBox.setItemText(7, _translate("Dialog", "8"))
self.comboBox.setItemText(8, _translate("Dialog", "9"))
self.comboBox.setItemText(9, _translate("Dialog", "10"))
self.preloadbtn.setText(_translate("Dialog", "Pre-Load
Questions"))
55
self.tabWidget.setTabText(self.tabWidget.indexOf(self.question
editview),
_translate("Dialog", "Question edit view"))
self.plainTextEdit.setPlainText(_translate("Dialog", "About
The App:\n"
"\n"
"1) This app is developed
to create a new way of hiring process\n"
"2) This application is
targeted to hirers with candidate count greater than 1000\n"
"3) Bulk Filtering method
is applied in this application. Bulk Filtering is a process of
cutting down ineligible candidates where the postings to
applicants ratio is about 0.01 to 0.1\n"
"\n"
"Procedure for Usage:\n"
"\n"
"1) The Candidate must
produce a E-Resume for the interview\n"
"2) The candidate is
required to sit before the computer with face facing the
camera\n"
"3) As soon as the
candidate uploads his/her resume the session starts\n"
"4) The Session is a series
of conversation between the canndidate and the E-Intervier \n"
"5) The candidate is
required to answer to the E-Interviewer\'s Questions as
accurately as possibble\n"
56
"6) At the end of the
session the caandidate may take leave and the candidate\'s result
will be evaluated*\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"*->result Evaluated might
be inaccurate as the software is not completely finished\n"
""))
self.label_36.setText(_translate("Dialog", "Noise
Threshold:"))
self.label_37.setText(_translate("Dialog", "Settings"))
self.label_38.setText(_translate("Dialog", "Instructions:"))
self.testmicbtn.setText(_translate("Dialog", "Test
Microphone"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.settings),
_translate("Dialog", "Settings and About"))
# ++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++
++++++
57
# new ui end
####################################################
####################################################
#######
import sys
from PyQt5.QtWidgets import QDialog, QApplication,
QMessageBox as QM, QPushButton, QInputDialog,
QFileDialog
# mixer.init()
@pyqtSlot()
def load_character_img(self, img="INTP"):
try:
self.characterlabel.setPixmap(QtGui.QPixmap(f"character_code
_images/{img}.jpg"))
except:
print('error occured : ' + traceback.print_exc())
59
def test_mic(self):
self.noise_threshold_adjust()
sample_check()
print('Checking was over and current threshold value is',
dtV.THRESHOLD)
def set_personality_analysis(self):
try:
guess_code = ""
chck = self.response_array[2:]
print("Used respose array is", chck)
# slices the response of the first question as they are
causal questions and not needed
# chck=["no","yes","no","yes",,"yes","no","yes","yes"] #
just for checking purposes
if chck[:2] == ["yes", "yes"]:
guess_code += "I"
else:
guess_code += "E"
if chck[2:4] == ["yes", "yes"]:
guess_code += "N"
else:
guess_code += "S"
if chck[4:6] == ["yes", "yes"]:
guess_code += "T"
else:
guess_code += "F"
if chck[6:8] == ["yes", "yes"]:
guess_code += "P"
else:
guess_code += "J"
60
# print(guess_code)
# the code is working I checked it in the terminal
self.character_code = guess_code
det = fetch_character_details(guess_code)
self.intelligence.setText(det[1])
self.interaction.setText(det[2])
self.strength.setText(det[3])
self.weakness.setText(det[4])
self.career.setText(det[5])
self.famous.setText(det[6])
self.load_character_img(guess_code)
except(Exception) as e:
print("ERROR personality analysis", e)
# self.load_character_img("ENFJB")
def add_questions_to_base(self):
# writing the questions to the base
ques = self.questionadd.text()
wt = int(self.comboBox.currentText())
des = self.desc.toPlainText()
if None in (ques, wt, des):
self.msg.setWindowTitle("All values not filled")
self.msg.setText("Please fill in all the values to add
question to the database")
self.msg.exec()
return
else:
write_question_to_base(ques, wt, des)
# preloading the questions
# not working as expected $CHECK
preload_questions()
61
self.msg.setWindowTitle("Write and Preload done")
self.msg.setText("The question was written and
preloading was done!")
self.msg.exec()
def load_web_view(self):
pass
def show_question_preview(self):
#
self.response_array=["no","yes","yes","yes","no","no","no","no"
] # the testing was a success and cool almost done for the day
# self.set_personality_analysis() # dont call this before
calling the launch all function call only for test purposes
ques = get_all_ques_values()
self.quesprev.setColumnCount(3)
self.quesprev.setRowCount(0)
rowpos = self.quesprev.rowCount()
# add the title code here
# self.table.insertRow(rowpos)
for x in range(len(ques)):
self.quesprev.insertRow(rowpos)
for y in range(len(ques[x])):
self.quesprev.setItem(rowpos, y,
QtWidgets.QTableWidgetItem(f'{ques[x][y]}'))
rowpos += 1
def noise_threshold_adjust(self):
thresh = self.horizontalSlider.value()
print(thresh)
change_threshold(int(thresh))
62
# updating the last threshold value
try:
f = open('last_threshold.txt', 'w')
f.write(str(thresh))
except:
print('Some error occured setting threshold to 2500')
f.write(f'{2500}')
finally:
f.close()
def clear_database(self):
clear_db()
print('database has been reset')
def get_resume_extract(self):
return (self.resume_extract)
def analyse_resume(self):
self.res_file.readline() # omitting the title line of the resume
for x in self.res_file.readlines(): # reading all the otheer
lines in the resume
lis1 = x.split(':') # I think this syntax is unneccssary
if len(lis1) == 2:
self.resume_extract[lis1[0]] = lis1[1]
# the lis1[1] is a mapped value of strings can be like
# reading,writing,swimming etc so write code to manage
that functionality
# preloads the resume questions audio
print("please wait a few secs to load and analyse the given
resume", f"\n{self.resume_extract}")
63
# preload_resume_questions(self.resume_extract) #
expected to inpput as dicct but input is a lisyt? how uncomment
this line
print(self.resume_extract)
def select_resume_file(self):
file_name, j = QFileDialog.getOpenFileName(self, 'Open
File',
'/home') # a tuple is returned
hence the value of j is self value which is not needed
if file_name.endswith('txt') or file_name.endswith('docx') or
file_name.endswith('doc'):
self.file_set = True
print('File read okay')
self.res_file = open(file_name, 'r')
print(self.res_file.readlines())
self.res_file.seek(
0) # readlines functions places the file pointer at the
end of the file so a seek operatio
self.analyse_resume()
else:
self.msg.setWindowTitle('Unsupported format error')
self.msg.setText('The file format is not supported please
upload supported format')
self.msg.exec()
self.file_set = False
val2 = 1
chk_array = ["yeah", "yea", "yes", "yep", "i do"] # try to
add more positive response
for x in read:
self.qbox.append(x[0])
# find how to add a syncrounous wait in here
# sound=MP3(f'sentences_folder\\sentence-{val2}.mp3')
# v1=sound.info
# wait_time=int(v1.length)
playsound(f'sentences_folder\\sentence-{val2}.mp3')
print("After ques sound!")
val2 += 1
time.sleep(2)
# time.sleep(wait_time)
fg = 0
try:
user_reply = recog_save()
self.rbox.append(user_reply)
perform_analysis(user_reply) # this works
for x in chk_array:
if x in user_reply:
self.response_array.append("yes")
fg = 1
break
if fg != 1:
self.response_array.append("no")
# self.qbox.append(self.bot_reply(user_reply))
65
# try to add the chat response to this area or add some
random messages here sounds good?
# fetching all question names from the
resume_questions folder
#
resumeques=os.listdir("sentences_folder\\resume_questions") #
this piece of shit is uneccssarry
66
perform_analysis(user_reply)
except(Exception) as e:
# recog save returns None and hence the Error
print("Error at TRY->Quesser->Resume:", e, "Usr reply",
user_reply)
print("Outt of try block")
self.qbox.append("Thank you , We'll get Back to you later")
try:
playsound('sentences_folder\\sentence-end.mp3')
self.set_personality_analysis()
except:
print('Playing sound was not succesfull')
finally:
self.writedata = ''
self.writedata += '\t\tConversation Log of interview \n'
bottalk = self.qbox.toPlainText().split('\n')
cantalk = self.rbox.toPlainText().split('\n')
try:
for x in range(len(bottalk)):
self.writedata += (f'Bot:\t{bottalk[x]}\n')
self.writedata +=
(f'Candidate({self.Cname}):\t{cantalk[x]}\n')
except:
print('Error while trying to write the data to file')
finally:
self.writedata += '-' * 20
print("Quesser thread has Finsihed it's work")
def generate_report_file(self):
self.writedata += "\n\t\tPersonality Analysis"
for x in self.characterExtract:
67
self.writedata += (x + "\n")
print(self.writedata + "\n\nJust before the write operation")
write_report(self.Cname, self.writedata)
self.msg.setText("Report Generated and saved to local
drive")
self.msg.exec()
# def bot_reply(self,instring):
# val=chatgui.chatbot_response(instring)
# return val
def launchall(self):
self.writedata = None
self.Cname = self.candiname.text()
self.Cid = self.candiid.text()
print(f"Cname is |{self.Cname}| and Cid is |{self.Cid}|")
if self.Cname == None or len(self.Cname) <= 0 or self.Cid
== None or len(self.Cid) <= 0:
self.msg.setWindowTitle("No name Error")
self.msg.setText("Please Enter a Candidate Name and ID
to Start Session")
self.msg.exec()
return None
if self.file_set == False:
self.msg.setWindowTitle("No Resume uploaded")
self.msg.setText("Please Upload Resume to start
Session")
self.msg.exec()
return None
68
self.msg.setWindowTitle('Please Wait')
self.msg.setText('Starting the session please wait a few
seconds')
self.msg.exec()
def Start_Tone_Detect(self):
t = threading.Thread(target=rsdt)
69
t.start()
t.join()
# using t.join doesn't make the main thread wait for this
thread
# it just makes any other child thread....to join along with
this thread!
# so everytime detResult is ""
detResult = dtV.get_detected()
detResult = 'Confident'
# self.textEdit_5.setText(f'The analysed voice Tone
{detResult}')
self.textEdit_5.setText(f'The analysed voice Tone
{detResult}')
# self.textEdit_3.setText(f'{detectedResult}'))
def Start_Ligui_Detect(self):
t1 = threading.Thread(target=rsvs)
t1.start()
# print(chatgui.chatbot_response('hello'))
# self.textEdit.setText(f'positive={pos} and
negative={neg}')
def Start_Face_Detect(self):
t = threading.Thread(target=rsfe)
t.start()
# @DEBUG
def get_values(self):
s = sum(emote_map.values())
if (s == 0):
s=1
70
# sometimes faces aren't detected when candidate doesnt
show his face
for x in emote_map.keys():
self.textEdit_4.append(f'{x}={round((emote_map[x] / s *
100), 2)}%')
# check if this works without an error
def side_load_resume_ques(self):
clear_resume_ques()
print("Side load called")
preload_resume_questions(self.resume_extract)
print("resume questions have been loaded as audio")
app = QApplication(sys.argv)
# app.setStyle('Fusion')
w = AppWindow()
w.show()
def gresume_extract():
return (w.get_resume_extract())
sys.exit(app.exec_())
73
CHAPTER 11
CONCLUSION
A web based interface for implementing all the above mentioned features
has been deployed. A web based interface for analyzing the student academic
details is developed. Username and password is created for unique user by
register their details in register module. And they can change it by the
permission of admin only.The software developed has fulfilled the necessary
requirements as required by the user. It is ensured that all the programs are
working properly in “ENHANCED ONLINE CLASSROOM SYSTEM ”. The
system is used to design to operate in a user friendly manner. Proper
documentation done from different areas, without difficulty and provides
smooth running of all the operations. The system that has been developed in
Python is to improve and provide more user friendly interactions. This project
avoids errors. The system has achieved the objective to provide information
during the Auctioning. This project has been implemented and tested
successfully.
74
CHAPTER 12
FUTURE ENHANCEMENT
CHAPTER 13
75
REFERENCES
[1] http://www.python-learn-it.com/
[2] http://www.tizag.com/pythonDjango/
[3]http://www.javatemplatebuilder.com/
[4]http://www.w3schools.com/python/default.asp
[5]http://www.webmonkey.com/2010/02/php_tutorial_for_beginners/
[6]http://www.learnpythononline.com/
[7]'Python Crash Course' by Eric Matthews
[8] Learning Python, 5th Edition Mark Lutz
76