Uni-Placer Insight Project Report
Uni-Placer Insight Project Report
BY
DEVPRIYA NALIN
[Link]. RA2131241010045
ARINDAM BHATTACHARJEE
[Link]. RA2131241010041
SUBHAYAN MAJUMDER
[Link]. RA2131241010056
i
BONAFIDE CERTIFICATE
This is to certify that the project report titled “UNI-PLACER INSIGHT” is a bonafide
work carried out by Arindam Bhattacharjee (Regno:RA2131241010041), Devpriya
Nalin (Reg no: RA2131241010045) and Subhayan Majumder (Reg no:
RA2131241010056) under my supervision for the award of the Degree of Bachelor of
Computer Applications. To my knowledge, the work reported herein is the original
work done by this student.
ii
ACKNOWLEDGEMENT
With profound gratitude to the ALMIGHTY, I take this chance to thank the people
who helped me to complete this project.
We take this as the right opportunity to say THANKS to my Parents who are there to
stand with me always with the words “YOU CAN”.
We are thankful to Dr. T. R. Paarivendhar, Chancellor, SRM Institute of Science &
Technology who gave us the platform to establish myself to reach greater heights.
We earnestly thank Dr. A. Vinay Kumar Pro-Vice Chancellor, Dr. A. Duraisamy Dean,
Dr. S. Albert Antony Raj Head and Deputy Dean, Faculty of Science and Humanities,
SRM Institute of Science & Technology who always encourage us to do novel things.
We express our sincere thanks to Dr. S. Albert Antony Raj [Link]., [Link]., Ph.D.,
Head, Department of Computer Applications, for his valuable guidance and support
in executing all incline in learning.
It is our delight to thank our project guide Dr. Sudha MR , [Link]., [Link]., PhD,
Assistant Professor, Department of Computer Applications for her help, support,
encouragement, suggestions, and guidance throughout the development phases of
the project.
We convey our gratitude to all the faculty members of the department who extended
their support through valuable comments and suggestions during the reviews.
A great note of gratitude to friends and people who are known and unknown to me
who helped in carrying out this project work successfully.
Subhayan Majumder
Devpriya Nalin
Arindam Bhattacharjee
iii
Table of Contents
iv
List of Figures
1 Sequence Diagram 8
2 Work-Flow Diagram 9
3 Class Diagram 10
4 ER Diagram 11
5 Use-case Diagram 12
8 Landing Page 44
12 Database Credentials 47
13 Login Modal 48
14 File Manager 49
v
ABSTRACT
vi
1. Introduction
With its extensive feature set, UniPlacer Insight is a smart platform designed to
extract significant insights from placement data. Through the utilization of
sophisticated analytics and adaptable reporting features, UniPlacer Insight
enables stakeholders to interpret patterns, assess performance indicators, and
precisely tailor placement plans.
1
Optimized Resource Allocation: By having a thorough grasp of student
preferences and placement trends, educational institutions may allocate resources
optimally, focusing their efforts on areas that have the greatest chance of success.
Improved Student Outcomes: UniPlacer Insight gives institutions the tools they
need to improve student results and create an environment that values success by
providing tailored interventions and focused support.
1.3 In Conclusion:
In the field of placement management, UniPlacer Insight is a paradigm
shift that offers a revolutionary method of data analysis and decision-
making. The platform is a driving force behind institutional success
because of its extensive feature set, user-friendly design, and practical
insights. It also gives stakeholders the ability to negotiate the complex
placement landscape confidently and clearly. With UniPlacer Insight, you
can unleash the potential of data-driven decision-making and set off on a
path to placement management success never before seen.
2
[Link] Requirement Analysis
3
meaningful analytics, whether assessing recruiter engagement, monitoring
student performance, or reviewing placement trends.
Trend Analysis: Stakeholders can anticipate future trends, spot patterns, and
modify placement plans with UniPlacer Insight's extensive trend analysis
functionalities. Users can explore the data landscape in detail and find
possibilities and issues that are concealed thanks to interactive visualizations and
user-friendly dashboards.
User-Friendly Interface: Understanding the value of a positive user experience,
UniPlacer Insight has an easy-to-use interface that makes navigating around
easier and improves usability.
Enhanced Decision-Making: UniPlacer Insight facilitates informed decision-
making processes by giving stakeholders access to timely and useful insights,
boosting the effectiveness and efficiency of placement management tactics.
Strategic Partnerships: Institutions can establish mutually beneficial ties and
improve collaboration with recruiters and industry stakeholders by utilizing the
information obtained from UniPlacer Insight to form strategic collaborations.
Improved Student Outcomes: UniPlacer Insight gives institutions the tools they
need to improve student results and create an environment that values success by
providing tailored interventions and focused support.
4
3. System Analysis
6
technique. Beside it is very much modern and user friendly. It also works as
middleware i.e. only in between the user and the file. So, it is completely a state
of art project.
7
4. System Design
Fig 4.1
8
4.2 Work-Flow Diagram
Fig. 4.2
9
4.3 Class Diagram
The class diagram provided represents a software system using the Model-View-
Controller (MVC) architecture, specifically for visualizing student placement
statistics. Here is a brief explanation:
This MVC structure helps in separating concerns within the application, making
it easier to manage and maintain.
Fig 4.3
10
4.4 ER-Diagram
The ER diagram provided shows a user interaction flow with three distinct
modules. Here is a concise explanation:
User Interaction: A user interacts with three separate modules within the
system.
Module 1/2/3: This module is responsible for filtering data specifically
related to “Placement.”
Data Representation: The filtered data leads to two outcomes: a
comparison among all modules and a graphical representation of the data..
Fig 4.4
11
4.5 Use-Case Diagram
In this simplified Use Case Diagram:
The User can filter data within each module based on course, gender, batch, and
department. These filters allow for more specific and customized views of
placement and hiring data.
Fig 4.5
12
4.6 Data-Flow Diagram
In this DFD:
The User (depicted in orange) logs in and chooses a module (either “View
Student Placement Data” or “View Company Hiring Data”).
The chosen module retrieves data from the respective data storage
(Students Data or Company Data).
The user can apply filters to further refine the data displayed.
Fig 4.6
13
4.7 System Architecture
Fig 4.7.1
14
4.7.2 MVVM (Model-View-ViewModel):
Fig 4.7.2
15
5. Code Templates
5.1 [Link]
Code function: These set of codes contains the SQL queries and data retrieving
functionalities.
Code:
class DataManager():
def__init__(self,app=None,appstorage=None,loadinganimationdialog=None):
[Link] = app
[Link] = appstorage
username,password,host,dbname =
[Link]()
self._dbUsername = username
self._dbPassword = password
self._dbName = dbname
self._dbHost = host
self._coeFilePath = ""
self._placementFilePath = ""
self._companyFilePath = ""
16
[Link] = ""
[Link] = loadinganimationdialog
[Link] = QThreadPool()
def setDbConfig(self,username,password,name,host):
self._dbUsername = username
self._dbPassword = password
self._dbName = name
self._dbHost = host
def setFolderPath(self,path):
[Link] = path
[Link]()
barChartYaxisRange =
max(max(categoriesNotEnrolled),max(categoriesEnrolled))+20
return
(categoriesEnrolled,categoriesNotEnrolled,categories,barChartYaxisRange)
except Exception as e:
pass
def getCompanyStatBarChartData(self,batchFilter):
lpaRangesDict = {"2LPA-5LPA":0,"5LPA-10LPA":0,"10LPA-
15LPA":0,"15LPA-20LPA":0,"20LPA-25LPA":0,"25LPA-30LPA":0,"30LPA-
35LPA":0,"35LPA-40LPA":0}
17
try:
connection =
connect(host=self._dbHost,user=self._dbUsername,password=self._dbPassword,
database=self._dbName)
cursor = [Link]()
minimum_ctc,maximum_ctc = [Link]("-")
minimum_ctc = int(minimum_ctc.split("L")[0]) *
100000
maximum_ctc = int(maximum_ctc.split("L")[0]) *
100000
[Link]("select count(distinct
Company_Name) from profiles_{} where Number_of_Select_Students > 0 and
CTC_Minimum >= {} and (case when CTC_Maximum is null then
CTC_Maximum is null else CTC_Maximum <={}
end)".format(batchFilter,minimum_ctc,maximum_ctc))
count = [Link]()[0][0]
lpaRangesDict[lpaRange] = count
lpaRanges = list([Link]())[0:3]
companiesInRanges = list([Link]())[0:3]
18
return(lpaRanges,companiesInRanges)
except Exception as e:
print(e,"datamanager")
def
getStudentPlacementStatAggregates(self,campusFilter=None,batchFilter=None,d
epartmentFilter=None,courseFilter=None,genderFilter=None):
totalStudents = 0
totalEnrolled = 0
totalNotEnrolled = 0
totalPlaced = 0
totalNotPlaced = 0
totalDisqualified = 0
try:
connection =
connect(host=self._dbHost,user=self._dbUsername,password=self._dbPassword,
database=self._dbName)
cursor = [Link]()
19
departmentFilter,"%" if courseFilter==None else courseFilter,"%" if
genderFilter==None else genderFilter)
totalNotEnrolledQuery = "select count(*) from students_{}
where (Enrolled_in_SS like 'Not Enrolled' or Enrolled_in_SS is null) and
Office_Name like '{}' and Branch like '{}' and Course_Name like '{}' and
Gender like '{}';".format(batchFilter,"%" if campusFilter==None else
campusFilter,"%" if departmentFilter==None else departmentFilter,"%" if
courseFilter==None else courseFilter,"%" if genderFilter==None else
genderFilter)
totalPlacedQuery = "select count(*) from students_{} where
Placed is not null and Office_Name like '{}' and Branch like '{}' and
Course_Name like '{}' and Gender like '{}';".format(batchFilter,"%" if
campusFilter==None else campusFilter,"%" if departmentFilter==None else
departmentFilter,"%" if courseFilter==None else courseFilter,"%" if
genderFilter==None else genderFilter)
totalNotPlacedQuery = "select count(*) from students_{}
where Placed is null and Enrolled_in_SS='Enrolled' and Office_Name like '{}'
and Branch like '{}' and Course_Name like '{}' and Gender like
'{}';".format(batchFilter,"%" if campusFilter==None else campusFilter,"%" if
departmentFilter==None else departmentFilter,"%" if courseFilter==None else
courseFilter,"%" if genderFilter==None else genderFilter)
totalDisqualifiedQuery = "select count(*) from students_{}
where Enrolled_in_SS like 'Not Blocked' or Enrolled_in_SS like 'Removed' and
Office_Name like '{}' and Branch like '{}' and Course_Name like '{}' and
Gender like '{}';".format(batchFilter,"%" if campusFilter==None else
campusFilter,"%" if departmentFilter==None else departmentFilter,"%" if
courseFilter==None else courseFilter,"%" if genderFilter==None else
genderFilter)
[Link](totalQuery)
totalStudents = [Link]()[0][0]
[Link]()
[Link](totalEnrolledQuery)
totalEnrolled = [Link]()[0][0]
[Link]()
20
[Link](totalNotEnrolledQuery)
totalNotEnrolled = [Link]()[0][0]
[Link]()
[Link](totalPlacedQuery)
totalPlaced = [Link]()[0][0]
[Link]()
[Link](totalNotPlacedQuery)
totalNotPlaced = [Link]()[0][0]
[Link]()
[Link](totalDisqualifiedQuery)
totalDisqualified = [Link]()[0][0]
[Link]()
return
(totalStudents,totalEnrolled,totalNotEnrolled,totalPlaced,totalNotPlaced,totalDis
qualified)
except Error as e:
if "uniplacer_insight.students_2024" in str([Link]):
# print("table does not exist")
pass
print(e)
21
def
getCompanyAggregates(self,jobTypeFilter,jobSectorFilter,ctcFilter,companyLev
elFilter, batchFilter):
#getting company aggregates for second module according to the
filters
totalCompanies = 0
totalVisited = 0
totalNotVisited = 0
companiesHired = 0
companiesNotHired = 0
if jobSectorFilter != None:
jobSectorFilter = "_".join([Link](" "))
try:
minimum_ctc = ""
maximum_ctc = ""
minimum_ctc,maximum_ctc = [Link]("-")
connection =
connect(host=self._dbHost,user=self._dbUsername,password=self._dbPassword,
database=self._dbName)
22
cursor = [Link]()
#same as above
intersectionBetweenHiredNotHiredQuery = "select count(*)
from (({}) intersect ({}))
I".format(companiesHiredQuery_0,companiesNotHiredQuery_0)
[Link](intersectionBetweenHiredNotHiredQuery)
intersectionBetweenHiredNotHired = [Link]()[0][0]
[Link]()
totalNotVisitedQuery = "select count(distinct Company_Name) from
profiles_{} where Date_of_Visit is null and Position_Type like '{}' and
Job_sector like '{}' and Placement_category like '{}' and CTC_Minimum >= {}
and (case when CTC_Maximum is null then CTC_Maximum is null else
CTC_Maximum <={} end);".format(batchFilter,"%" if jobTypeFilter==None
else jobTypeFilter, "%" if jobSectorFilter==None else jobSectorFilter, "%" if
companyLevelFilter==None else companyLevelFilter, "%" if
minimum_ctc==None else minimum_ctc, "%" if maximum_ctc==None else
maximum_ctc)
companiesHiredQuery = "select count(distinct
Company_Name) from profiles_{} where Number_of_Select_Students > 0 and
Position_Type like '{}' and Job_sector like '{}' and Placement_category like '{}'
and CTC_Minimum >= {} and (case when CTC_Maximum is null then
CTC_Maximum is null else CTC_Maximum <={} end);".format(batchFilter,"%"
if jobTypeFilter==None else jobTypeFilter, "%" if jobSectorFilter==None else
jobSectorFilter, "%" if companyLevelFilter==None else companyLevelFilter,
24
"%" if minimum_ctc==None else minimum_ctc, "%" if maximum_ctc==None
else maximum_ctc)
[Link](totalCompaniesQuery)
totalCompanies = [Link]()[0][0]
[Link]()
[Link](totalVisitedQuery)
totalVisited = [Link]()[0][0]
[Link]()
[Link](totalNotVisitedQuery)
totalNotVisited = [Link]()[0][0]
[Link]()
[Link](companiesHiredQuery)
companiesHired = [Link]()[0][0]
[Link]()
[Link](companiesNotHiredQuery)
companiesNotHired = [Link]()[0][0]
[Link]()
except Error as e:
print(e)
try:
25
connection =
connect(host=self._dbHost,user=self._dbUsername,password=self._dbPassword,
database=self._dbName)
cursor = [Link]()
intersectCompanies = []
intersectHired = []
26
if intersectHired == "Company_Name not in ()":
intersectHired="Company_Name like '%'"
if intersectCompanies == "Company_Name not in ()":
intersectCompanies = "Company_Name like '%'"
notVisitedCompanies0 = [Link]()
[Link]()
notHiredCompanies0 = [Link]()
[Link]()
notVisitedCompanies = []
notHiredCompanies = []
for c in notVisitedCompanies0:
[Link](c[0])
for cm in notHiredCompanies0:
[Link](cm[0])
if len(notVisitedCompanies)>len(notHiredCompanies):
toAdd = len(notVisitedCompanies)-
len(notHiredCompanies)
for _ in range(0,toAdd):
[Link]("-----")
else:
toAdd = len(notHiredCompanies) -
len(notVisitedCompanies)
for _ in range(0,toAdd):
[Link]("-----")
27
data = {'Not Visited': notVisitedCompanies,
'Not Hired': notHiredCompanies}
df = [Link](data)
return df
except Exception as e:
print(e,"datamanager")
def getHiredTableData(self,
jobTypeFilter,jobSectorFilter,ctcFilter,companyLevelFilter, batchFilter):
if jobSectorFilter != None:
jobSectorFilter = "_".join([Link](" "))
try:
minimum_ctc = ""
maximum_ctc = ""
minimum_ctc,maximum_ctc = [Link]("-")
28
connection =
connect(host=self._dbHost,user=self._dbUsername,password=self._dbPassword,
database=self._dbName)
cursor = [Link]()
[Link](hiredTableData)
finalHiredTableData = [Link]()
[Link]()
hiredCompanies = []
hiredCompanySector = []
hiredStudentsNumber = []
[Link](cmp[0])
[Link](cmp[1])
[Link](int(cmp[2]))
df1 = [Link](hiredData)
29
return df1
except Exception as e:
print(e,"datamanager")
def checkDb(self):
try:
connection =
connect(host=self._dbHost,user=self._dbUsername,password=self._dbPassword,
database=self._dbName)
cursor = [Link]()
[Link]("select * from students_2024")
return 0
except Exception as e:
print(e)
if "No localization support for" in str(e):
return 5
elif "not allowed to connect" in str(e):
return 4
elif "Can't connect to MySQL server on" in str(e):
return 3
elif "refused" in str(e):
return 2
elif "uniplacer_insight.students" in str([Link]):
30
5.2 companyPlacementStatView
Code function: These set of code will accept the filter choices of the user and
retrieve the necessary data and show it in the Ui for company placement statistics
module.
Code:
class CompanyPlacementStatPageViewModel():
def __init__(self,datamanager):
[Link] = datamanager
[Link] = 0
[Link] = 0
[Link] = 0
[Link] = 0
[Link] = 0
[Link] = []
[Link] = []
[Link] = []
[Link] = []
[Link] = None
[Link] = None
def getTableData(self):
31
return [Link]
def
setTableData(self,jobTypeFilter,jobSectorFilter,ctcFilter,companyLevelFilter,batc
hFilter):
try:
tableData =
[Link](jobTypeFilter,jobSectorFilter,ctcFilter,companyL
evelFilter,batchFilter)
[Link] = TableModel(tableData)
except Exception as e:
print(e)
if "cannot unpack non-iterable NoneType" in str(e):
[Link] = None
def getHiredTableData(self):
return [Link]
def
setHiredTableData(self,jobTypeFilter,jobSectorFilter,ctcFilter,companyLevelFilte
r,batchFilter):
try:
hiredTableData =
[Link](jobTypeFilter,jobSectorFilter,ctcFilter,comp
anyLevelFilter,batchFilter)
[Link] = TableModel(hiredTableData)
32
except Exception as e:
print(e)
if "cannot unpack non-iterable NoneType" in str(e):
[Link] = None
def getCompanyAggregates(self):
return
([Link],[Link],[Link],[Link],se
[Link])
def
setCompanyAggregates(self,jobTypeFilter,jobSectorFilter,ctcFilter,companyLeve
lFilter, batchFilter):
try:
(totalCompanies,totalVisited,totalNotVisited,companiesHired,companiesNotHire
d) =
[Link](jobTypeFilter,jobSectorFilter,ctcFilter,
companyLevelFilter, batchFilter)
[Link] = totalCompanies
[Link] = totalVisited
[Link] = totalNotVisited
[Link] = companiesHired
[Link] = companiesNotHired
except Exception as e:
if "cannot unpack non-iterable NoneType" in str(e):
33
[Link] = 0
[Link] = 0
[Link] = 0
[Link] = 0
[Link] = 0
def getBarChartData(self):
return ([Link],[Link])
def setBarChartData(self,batchFilter):
try:
(lpaRanges,companiesInRange) =
[Link](batchFilter)
[Link] = lpaRanges
[Link] = companiesInRange
except Exception as e:
if "cannot unpack non-iterable NoneType" in str(e):
[Link] = []
[Link] = []
def getLineChartData(self):
return ([Link],[Link])
def setLineChartData(self,batchFilter):
try:
(months,companiesArriving) =
[Link](batchFilter)
34
[Link] = months
[Link] = companiesArriving
except Exception as e:
if "cannot unpack non-iterable NoneType" in str(e):
[Link] = []
[Link] = []
5.3 studentPlacementStatPageView
Code function: These set of code will accept the filter choices of the user and
retrieve the necessary data and show it in the Ui for student placement statistics
module.
Code:
class StudentPlacementStatPageViewModel():
def __init__(self,datamanager):
[Link] = datamanager
[Link] = 0
[Link] = 0
[Link] = 0
[Link] = 0
[Link] = 0
[Link] = 0
[Link] = []
[Link] = []
35
[Link] = []
[Link] = 0
def getStudentAggregates(self):
#getting aggregate code
return
([Link],[Link],[Link],[Link]
talPlacedStudents,[Link],[Link])
def
setStudentAggregates(self,campusFilter,batchFilter,departmentFilter,courseFilter,
genderFilter):
#setting aggregate code
try:
(totalStudents,totalEnrolled,totalNotEnrolled,totalPlaced,totalNotPlaced,totalDis
qualified) =
[Link](campusFilter,batchFilter,d
epartmentFilter,courseFilter,genderFilter)
[Link] = totalStudents
[Link] = totalEnrolled
[Link] = totalNotEnrolled
[Link] = totalPlaced
[Link] = totalNotPlaced
[Link] = totalDisqualified
except Exception as e:
if "cannot unpack non-iterable NoneType" in str(e):
[Link] = 0
36
[Link] = 0
[Link] = 0
[Link] = 0
[Link] = 0
[Link] = 0
[Link] = []
[Link] = []
[Link] = []
[Link] = 0
print(e,"StudentPlacementStatPageViewModel")
def getBarChartValues(self):
return
([Link],[Link],[Link],[Link])
def setBarChartValues(self,campusFilter,batchFilter):
placedList = []
notPlacedList = []
categories = []
barChartYaxisRange = 0
try:
placedList,notPlacedList,categories,barChartYaxisRange =
[Link](campusFilter,batchFilter
)
37
except Exception as e:
# print(e.__class__.__name__)
pass
[Link] = placedList
[Link] = notPlacedList
[Link] = categories
[Link] = barChartYaxisRange
class CompanyPlacementStatPageController():
def __init__(self,app,viewmodel):
[Link] = app
[Link] = viewmodel
def updateBarAndLineChartValues(self,batchFilter):
[Link](batchFilter)
[Link](batchFilter)
def
changeFilter(self,jobTypeFilter,jobSectorFilter,ctcFilter,companyLevelFilter,
batchFilter):
[Link](jobTypeFilter,jobSectorFilter,ctcFilter,co
mpanyLevelFilter,batchFilter)
38
[Link](jobTypeFilter,jobSectorFilter,ctcFilter,companyLev
elFilter,batchFilter)
[Link](jobTypeFilter,jobSectorFilter,ctcFilter,compa
nyLevelFilter,batchFilter)
def returnToLanding(self):
[Link](-1)
class LandingPageController():
_currentCardIndex = 0
def __init__(self,app,datamanager):
[Link] = app
[Link] = datamanager
def showModuleWindow(self,event):
#contains code to show the module that has been clicked
#this function can't change show or hide views by itself and has to
call an application function to do so
# [Link]([Link])
[Link](self._currentCardIndex)
39
self._currentCardIndex = index
def setDirPath(self,path):
[Link](path)
def getCurrentCardIndex(self):
return self._currentCardIndex
def updateDbAuth(self,username,password,name,host):
[Link](username,password,name,host)
def checkDb(self):
return [Link]()
def showErrorModal(self,code):
[Link](code)
def closeApp(self):
[Link]()
class StudentPlacementStatPageController():
40
def __init__(self,app,viewmodel):
[Link] = app
[Link] = viewmodel
def
changeFilter(self,campusFilter,batchFilter,departmentFilter,courseFilter,genderFil
ter):
[Link](campusFilter,batchFilter,departmentFilter,
courseFilter,genderFilter)
def updateBarChartValues(self,campusFilter,batchFilter):
[Link](campusFilter,batchFilter)
def returnToLanding(self):
[Link](-1)
41
Updating Records: Use UPDATE statements to modify existing entries
as new placement data becomes available or when corrections are needed.
Querying Data: Implement SELECT queries to retrieve and display data,
possibly with JOIN clauses if your database has multiple related tables.
Data Integrity: Enforce data integrity with PRIMARY KEY, FOREIGN
KEY, UNIQUE, NOT NULL, and CHECK constraints to ensure the
database holds accurate and valid data.
Indexing: Create indexes using CREATE INDEX to improve the
performance of the database, especially for complex queries involving
sorting and searching operations.
These steps are part of routine database management and are crucial for
maintaining a robust and efficient system for tracking student placements.
42
Table name: Student_Year
43
[Link] Screens
44
6.3 Company Placement Statistics
The company placement statistics module, as shown in the image, is a dynamic
and informative dashboard that tracks and visualizes the university’s placement
activities. It features a line graph illustrating the trend of company visits over
time, bar graphs detailing the number of hires across various sectors, and a
summary section that provides a quick overview of total companies involved in
the placement process. The pie chart offers an intuitive breakdown of the
companies visited and hired, enhancing the module’s utility for strategic planning
and performance evaluation. This module is a valuable asset for assessing the
effectiveness of the university’s placement initiatives.
45
6.4 List of Companies Table (Company Placement Statistics)
The table is referring to lists companies under two categories: “Not Visited” and
“Not Hired.” For the “Not Visited” category, it includes companies that have not
engaged with the university for placement activities. This could be for various
reasons such as lack of awareness, mismatch in recruitment needs, or other
priorities. The “Not Hired” category lists companies that may have visited but
did not end up hiring any students. This information is crucial for the university’s
placement cell to analyze and strategize future engagement with the corporate
sector to improve placement opportunities for students.
46
6.5 Database Credentials Modal (Landing Page)
The “DB-CREDENTIALS” modal shown in the image is a user interface
element designed for users to enter their database connection details. It typically
includes fields for:
Once the credentials are entered, the user would click the “SUBMIT” button to
establish a connection to the database. This modal is essential for applications
that require database access and ensures that sensitive information like passwords
is entered securely.
47
6.6 Login Modal (On Click)
The user will use this to log into any module.
Every time the user exits he has to re-login for security reasons.
48
6.7 File Manager (Landing Page)
The file manager is the modal where the user can upload the required files.
49
[Link]
Test case 3 - To check If the queries are fetching the correct data
Result:
All the queries are fetching the correct data.
51
[Link]
[Link] Enhancement
52
Linking UniPlacer Insight with current LMS platforms will enable the collection
of extensive student performance data, enabling a more in-depth examination of
academic performance and skill development in addition to placement results.
Through integration, student progress might be seen holistically and academic
goals could be more closely aligned with placement techniques.
[Link]
53
[Link] Forum
[Link]
[Link] Documnetation
54
[Link]
[Link] user will download the exe file through that installer.
55