You are on page 1of 46

VISVESVARAYA TECHNOLOGICAL UNIVERSITY

“Jnana Sangama”, Belagavi-590018, Karnataka

Phase-1
Project work Report
on
PLACEMENT APPLICATION using MICRO-SERVICES
Submitted in partial fulfillment of the requirements for the award of the degree of
Bachelor of Engineering
in
Computer Science & Engineering

Submitted by

USN Name
1BI18CS093 Narendra V
1BI18CS098 Nikhil H P
1BI18CS099 Nikhil V
1BI18CS117 R Sai Vamshi

Under the Guidance of


Dr. Harish Kumar B T
Assistant Professor
Department of CS&E, BIT
Bengaluru-560004

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING


BANGALORE INSTITUTE OF TECHNOLOGY
K.R. Road, V.V. Puram, Bengaluru-560 004
2021-22
VISVESVARAYA TECHNOLOGICAL UNIVERSITY
“Jnana Sangama”, Belagavi-590018, Karnataka

BANGALORE INSTITUTE OF TECHNOLOGY


Bengaluru-560 004

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Certificate
This is to certify that the project work entitled “PLACEMENT APPLICATION using
MICRO-SERVICES” carried out by

USN Name
1BI18CS093 Narendra v
1BI18CS098 Nikhil H P

1BI18CS099 Nikhil V

1BI18CS117 R Sai Vamshi

a bonafide students of VII semester B.E. for the partial fulfillment of the requirements for the
Bachelor's Degree in Computer Science & Engineering of the VISVESVARAYA
TECHNOLOGICAL UNIVERSITY during the academic year 2021-22. It is certified that all
corrections/suggestions indicated for Internal Assessment have been incorporated in the report
deposited in the departmental library. The project report has been approved as it satisfies the academic
requirements in respect of Project work prescribed for the said degree.

Internal Guide Peer Reviewer HOD, CSE


Dr. Harish Kumar B T Prof. Shruthi B R Dr. Girija J

Assistant Professor Assistance Professor Professor and Head


ACKNOWLEDGEMENT

The knowledge & satisfaction that accompany the successful completion of any task
would be incomplete without mention of people who made it possible, whose guidance
and encouragement crowned my effort with success. We would like to thank all and
acknowledge the help We have received to carry out this Project.
We would like to convey my sincere gratitude to the Principal, Dr. ASWATH M U for
his constant support and ever-motivating vision. I would like to convey my thanks to the
Head of Department Dr. GIRIJA J. for being kind enough to provide the necessary
support to carry out the project.

We would like to extend my thanks to Dr. HARISH KUMAR B T for being a constant
beacon of co-operation and for guiding us extensively throughout the project.

We am most humbled to mention the enthusiastic influence provided by the project


coordinators Prof. MADHURI J and Prof. KANCHAN A PUROHIT, on the project for
their ideas, time to time suggestions for being a constant guide and co-operation showed
during the venture and making this project a great success.

We would also take this opportunity to thank my friends and family for their constant
support and help. I'm very much pleased to express my sincere gratitude to the friendly
co- operation shown by all the staff members of the Computer Science Department,BIT.

Narendra V (1BI18CS093)
Nikhil HP (1BI18CS098)
` Nikhil V (1BI18CS099)
R Sai Vamshi (1BI18CS117)
ABSTRACT

In the modern era it is very much important that the application must be able to handle
any numbers of users. This is not possible just by using a single server and a proxy
server as a result this led to development of the Service Oriented Architecture (SOA)
the disadvantages of the SOA led to the development of Microservices. Microservice
is pattern development of application where the whole functionality is divided into
small parts where each part is developed by the single team which acts as a single
server, which can be scaled since sessions are managed across the services.
Microservices helps in development of the heterogenous development of services
using the required language based on the functionality requirement.
In each and every professional course offering colleges/institutions placement activity
will be going on every year and it’s a bad practice of managing the students
participating along with the offers issued manually since there may be mistakes error
or even data may get lost and it is tough to search and filter out students during the
drive.
This application is the solution to the above proposed problem by using the
concepts the concept of microservice. This application tries to solve some
problems list student data management, offer management, profile management,
resume management and STUDENT LST GENERATION. In this we divide
the total functionality into 3 parts. The 1st part called STUDENT ADMIN
SERVICE which is responsible management of the students along with the data
and admin entity, 2nd part is the PLACEMENT SERVICE which is responsible
for the management of the company their visits, activities, offers issued by them
and student list generation and 3rd MEDIA ROLE SERVICE which is
responsible for dealing with the student profile, resume and the student list
generated of the specific drive.
CONTENTS
SL.NO CONTENT NAME PAGE.NO

1 INTRODUCTION 1
1.1 Overview 1
1.2 Objectives 2
1.3 Purpose, Scope and Applicability 2
1.4 Organization of Report 3

2 LITERATURE SURVEY 4
2.1 Introduction 4
2.2 Summary of papers 5
2.3 Drawbacks of Existing System 13
2.4 Problem Statement 14
2.5 Proposed Solution 14

3 REQUIREMENT ENGINEERING 17
3.1 Software and Hardware Tools Used 17
3.2 Conceptual/ Analysis Modelling 18
3.2.1 Use Case Diagram 18
3.2.2 Sequence Diagram 19
3.2.3 Activity Diagram 22
3.2.4 State Chart Diagram 26
3.2.5 Class Diagram 30
3.2.6 ER diagram 31
3.3 Software Requirements Specification 33

4 PROJECT PLANNING 35
4.1 Project Planning and Scheduling 35

5 APPLICATION & CONCLUSION 36


5.1 Applications 36
5.2 Conclusion 36

REFERENCES 37
LIST OF FIGURES
Figure No. Figure Name Page No.
2.2.1 Spring framework structure 5
2.2.2 Layered Approach of Implementation 6
2.2.3 Microservice Conceptual Design 7
2.2.4 Service platform architecture 10
2.2.5 The high-level architecture of MSstack 11
2.2.6 Deployment of the monolithic architecture on Amazon Web Services 12
2.2.7 Deployment of the microservice architecture on Amazon Web Services 12
2.3.1 Proposed System 16
3.2.1 Use Case Diagram of application 18
3.2.2.1 Student Registration Sequence Diagram 19
3.2.2.2 Company visit and activities sequence diagram 20
3.2.2.3 Placement activity sequence diagram 20
3.2.2.4 Student Details Fill Sequence Diagram 21
3.2.3.1 Student Registration and details filling Activity Diagram 21
3.2.3.2 Admin Operations 1 Activity Diagram 23
3.2.3.3 Admin Operations (Placement Service) 24
3.2.3.4 Student Registration to drive 25
3.2.4.1 Student registration to application state chart diagram 26
3.2.4.2 Company Drive conduction state chart diagram 26
3.2.4.3 Student Registration to drive state chart diagram 27
3.2.4.4 Student List Generation state chart diagram 28
3.2.4.5 Student Full Details Filling state chart diagram 29
3.2.5 Class Diagram of the application 30
3.2.6 ER Diagram of the application 31
4.1 Gantt Chart 35
LIST OF TABLES
Table No. Table Name Page No.
2.2.1 Evolution from monolith application to Microservices 9
2.2.2 Infrastructure Costs of the Monolith Deployment 13
2.2.3 Infrastructure Costs of the Microservice Deployment 13
CHAPTER 1
INTRODUCTION
1.1 Overview
In this section we will talk about the manual placement activity and introduction to the
microservices.
i. Manual Placement Activity by TPO and Coordinators:

○ Data collection: It is a process where the students are to filled a form which
contains the basic details like the USN, Name, Phone etc... each and every
time a company comes to college to conduct the placement drive, because
of this reason students are filling the same values or the same form
whenever companies come to conduct placement drive

○ Data filtration: After the students have filled the form that they are
interested in participating in the drive, The Placement cell and its staff are
involved in removing the details of the students who are not eligible for the
drive based on the company requirements and the restrictions placed by the
placement cell.

○ Resume Management: The Placement Cell at present is asking students


whenever the resumes of the particular students are requirement when
company asks them as a result the placement cell has an extra job of
collection of the students resumes.

○ Company Management: It is a process of keeping track of the company


visiting the college to conduct drives and then scheduling the series of the
activities that need to be performed by company during the conduction of
the drive.

○ Offers Management: It is very important task where it need to keep in track


of the offers issued by the company to the students and the current offers
held by the student, which it need to be considered while filtering the
applicants to the drive

Department of CS&E, BIT 2020-21 1


PLACEMENT APPLICATION using MICRO-SERVICES

ii. Microservices: It is an architectural style that can be formed as a collection of


services that are: Highly maintainable and testable, independently deployable,
organized around business capabilities and Owned by a small team.

1.2 Objectives
• Make all the student credentials to be stored at once
• Act as a centralized place to store the resume and profile of the students

• To solve the problem of generating the list of students eligible to attend the placement
drive of a particular company.

• This application tries to solve the problem of a student not following the placement rules
and regulations

• This application tries to make sure the student list generated also considers the offers the
student is placed, so the rules of the placement are not violated by the students.

1.3 Purpose, Scope and Applicability


1.3.1 Purpose
This project tries to solved the complexity in the tasks that needs to be
performed by the placement cell manually, and also use the advance technology to
solve the single server problem, that arises when the number of users increases.
1.3.2 Scope
This project tries to simplify the tasks performed by the placement cell. The
main aim of this project is to store all details of students at single space, the
company management as we discussed in the introduction section and the
generation of the student list for a particular drive based on the student interest,
company requirements and the placement cell restrictions.

Department of CS&E, BIT 2020-21 2


PLACEMENT APPLICATION using MICRO-SERVICES

1.3.3 Applicability

This project can be mainly used by the course offering and the educations
institutions offering professional courses where placement activities are conducted.
With this project the Placement Cell can store all information at one place serving
for the faster retravel of required information, this project uses microservices
architecture which provides the property scalability, flexibility.

1.4 Organization Of report


The report has been divided into 4 sections, The 1st section which is 2nd chapter has
the literature survey which contains the summary of the papers, drawbacks of the existing
system, problem statement and the proposed solution.
The 2nd section which is 3rd chapter contains the requirement engineering, where we specify
the software and hardware tools used, Conceptual design which contains the use case
diagram, sequence diagram, state chart diagram, class diagram and the er diagram and
software requirements specification
The 3rd section which is 4th chapter contains project planning and schedule, which specifies
the what are the series of the activities performed, what is time required by it and the
estimated completion date of the project.
The 4th section which is 5th chapter contains applications where this project is used and the
final conclusion.
References are present at the end of the report.

Department of CS&E, BIT 2020-21 3


CHAPTER 2
LITERATURE SURVEY
2.1 Introduction
This this section we mainly talk about what is J2EE and what led to the create a
framework called Spring and Spring Boot, how this tries the reduce the complexity in
building the applications using the JAVA language. This section also speaks about the
evolution microservices, what let to use this type of architecture, what are its advantages and
some problems faced during the development and their respective solutions in terms of
conceptual design is represented, and finally talks about the deployment strategy of the
microservices and some performance metrices. This section also tries to answer why the
evolution needs to be done?

2.2 Summary of the papers


John Arthur, Shiva Azadegan in [1] gave introduction about what is J2EE. This paper
focus of how to change to create J2EE-compliant software without using the Enterprise Java
Beans (EJB). The foremost alternative is the Spring Framework, which provides less services
but it is much less intrusive (causing disruption or annoyance through being unwelcome or
uninvited). There are two types of Inversion Of Control (IOC) – Dependency Injection and
Dependency Lookup. In the EJB it is based on the Dependency Lookup where the developer
need to take care of going through the application context and get the type of the object that
he needs which is a tedious job as developer is doing more job, the new introduced framework
called Spring framework follows Dependency Injection where the application takes care of
getting the objects from the application context when it is needed in the program the
developer need not to additional job of getting objects manually thus reduce in complexity
and Spring framework provides the usage of frameworks of frameworks which is of the major
advantage.

Department of CS&E, BIT 2020-21 4


PLACEMENT APPLICATION using MICRO-SERVICES

Michal Gajewski, Wojciech Zabierowski in [2] discusses about the structure of the Spring
framework and why there was a need to introduce and another framework call Spring Boot
framework and the comparison is made between the two popular frameworks play and spring
framework. The analytics say when spring performs well and when should we use that. The
Spring framework Structure is shown is below diagram, where the bottom layer is Test layer
which is responsible for performing the Unit Testing on the application. The next layer is Core
Container has 4 modules that main module is Core which is responsible for the IOC (Inversion of
Control) and DP (Dependency Injection) and the above layer is an abstraction which as sone
programing support like Aspect oriented programing, Messaging etc. The next layer has two
components the Data Access component is responsible of providing database abstraction where of
tries to convert the normal POJO to tables in database. The web component is responsible for
creating of the servlets for given program and serving requests.
The additional Spring Boot Framework was developed because still the developers were facing in
providing xml-based properties to the application which was tedious of management, to overcome
this they introduced where all properties are put in single file called YAML (mostly used) or
properties file. The tests which was performed on the Spring and Play Framework shows that
during the database read and write operation initially play framework was working better but after
a threshold spring works far better than the play framework and in the second test for the
mathematical computations the play framework gave better results all time. So from this we
understood that spring must be used for database intensive application and play framework for
CPU intensive task.

Fig 2.2.1 Spring framework structure

Department of CS&E, BIT 2020-21 5


PLACEMENT APPLICATION using MICRO-SERVICES

Nisha Sharma, P. N. Barwal in [3] discusses about the case study on developing and E project
proposal management system, in this they mention the Layered Approach, working mechanism
and some implementation on how to do use the property Dependency injection in the application
along with how to use Hibernate in the application. The below diagram shows the layered
approach diagram where the base is the database followed by the persistence layer , above Data
Access both are done in Hibernate layer, service layer where the main business logic is present
that will be executed, Application layer which is responsible for receiving the request and based
on the request executing the business logic specified for that request and response back the result
and the last layer is Presentation layer which is implemented the JSP( Java Server pages) which is
User Interface.

Fig 2.2.2 Layered Approach of Implementation

Department of CS&E, BIT 2020-21 6


PLACEMENT APPLICATION using MICRO-SERVICES

Raja Mubashir Munaf, Jawwad Ahmed, Faraz Khakwani and Tauseef Rana in [4] briefly
introduces the microservices, evolution of the microservices, difference between the
microservices and SOA, benefits of the microservice, the set of the problems that may occur
during the design of microservices, and how the problems can be overcome. This paper
proposes a conceptual design of the microservices. The API Gateway acts as a single point of
entry where all the requests get to here first, and then redirected to the specific service it is
related to. The Service Registry is a server where all micro services running must register here,
it acts as a register of the application, where when the request comes to the gateway the
gateway contacts service registry to get the location where the required micro service is
present and then redirect the request. Inter communication between the different services takes
placement takes placement through the rest template where that particular micro service is
addressed by the service registry. The circuit Breaker is one such application which is used for
providing resilient feature to failure of microservices. The Monitoring server is where all the
requests coming to the application are logged here (like the timestamp of the request, where
the request has spanned and the response timestamp).

Fig 2.2.3 Microservice Conceptual Design

Department of CS&E, BIT 2020-21 7


PLACEMENT APPLICATION using MICRO-SERVICES

Xabier Larrucea, Izaskun Santamaria, Ricardo Colomo-Palacios, and Christof Ebert in [5]
explains about the steps to be followed in order to migrate from monolith to microservice
architecture. They gave general steps of migration. They include study the system to identity
dependencies, define the architecture: where we have to define the architecture including tools
framework and so on, prioritize your components for migration, perform design, coding and
testing and integration. They also give a brief explanation of quality attributes of software affected
by microservice architecture. According to the author microservice will increase the quality of the
system with respect to maintainability, testability, reliability and availability.

The basic steps specified are: -

• Be prepared for organizational changes


• Study the system and identify dependencies
• Define the architecture
• Prioritize your components for migration
• Perform design coding testing and integration

Daniel Guamán, Lady Yaguachi, Samanta Cueva C., Danilo Jaramillo H., Fernanda Soto in [6] In
this paper authors converts a monolith application to microservice based application. They will be
using ‘online course registration system’ and converts it into microservice based application. Here
authors the evaluates the performance of all version they made in order to convert it from
monolith to microservice. Apache JMeter tool in which they are configured initial parameters such
as requests that do 10, 100, 1000 concurrent clients on the target application study, which allows
evaluating the behaviour of each prototype version and CPU resource consumption, memory,
network and data access for each request. In all the above aspects microservices performed well
when no of clients’ request was large. Author concludes using design patterns increases the load
on the server applications but this is rewarded by offering a lower response time to applications.
When applying a microservices architecture services must be integrated into all the time to
achieve the expected behaviour of the application. The table in next page specifies the different
technology stacks used for migration from monolith application to microservices application at
each step. Monolith V1 is original application , Monolith V2 is migration of PHP application to
Java Web 8, Rest Implemented is where the tight couple between UI and server is removed and
finally is Microservices which is developed.

Department of CS&E, BIT 2020-21 8


PLACEMENT APPLICATION using MICRO-SERVICES

Monolith Monolith Rest Microservices


V1 V2 Implemented

Technology PHP 5.6 Java Web 8 Java RESTful Java RESTful

Web Server Apache 2.4 GlashFish GlashFish 4.0 Tomcat 8


4.0

DBMS MySQL 5.6 MySQL 5.6 MySQL 5.6 MySQL 5.6

Design None None Singleton Microservice,


pattern Single Service
per Host,
Service
Discovery, API
Gateway

Access None Stored Stored Stored


method to procedures procedures procedures
the Queries
Database

Architecture None 3 Layers REST Microservices


Style

ORM Hibernate Hibernate 4.3.1 Hibernate 4.3.1


mapping 4.3.1

Deployment Native(Bare Native Native Docker


method Metal) Container

Framework Spring Boot

Platform Windows Linux Linux Linux

Table 2.2.1 Evolution from monolith application to Microservices

Department of CS&E, BIT 2020-21 9


PLACEMENT APPLICATION using MICRO-SERVICES

Authors Akhan Akbulut, Harry G. Perros in [7] discuss about the three case studies on
microservice server architecture. where the first one was about API gateway design pattern, the
second was about the chain of responsibility design pattern, the third was about the use of
messaging queues. This case study reveals that designing microservice server architecture with an
API gateway, messaging queue and assigning a single task for each microservice would give
better results.

Omar Al-Debagy, Peter Martinek in [8] compares the performance between the monolithic and
microservice server architecture, the results show that the microservice server architecture has
better performance compared to the monolithic server architecture when the number of users are
more. The microservice server architecture provides easy scalability and testability.

Shaobo He, Lining Zhao,Mingyang Pan in [9] discussed a case study on inland rivership
management where the total functionality has been divided into microservices as explainded. User
data microservice includes user registration, login verification. Channel information microservice
includes real-time channel information, historical channel information query service, location,
navigation dynamic and electronic channel map service, route and scale service. Meteorological
and hydrological information microservice includes meteorological information and hydrological
information. Real-time traffic flow information microservice includes traffic flow service and
special vessel warning service. Port information microservice includes pilot service tugboat
service, import and export port service.

Fig 2.2.4 Service platform architecture

Department of CS&E, BIT 2020-21 10


PLACEMENT APPLICATION using MICRO-SERVICES

Yasith Jayawardana, Randil Fernando, Gavindya Jayawardena, Dileka Weerasooriya, Indika


Perera in [9] to the following API gateway is the single-entry point for all clients. The load
balancer is responsible for distributing requests across microservices to normalize server load. The
service discovery module is responsible for keeping track of available microservices in a cluster.
A microservice consists of command handlers and query handlers, which are responsible for
handling the requests that come in. Data Layer consists of two major components, namely,
Persistence layer and Read layer. The transport layer is responsible for reliably delivering events
generated by services to other services. Every service instance is delegated a single responsibility
through the framework. Unit Test, Contract Test, Integration Test, Load Test, End-To-End Test.

Fig 2.2.5 The high-level architecture of MSstack

Mario Villamizar, Oscar Garces, Harold Castro, Mauricio Verano, Lorena Salamanca, Rubby
Casallas and Santiago Gil in [11] tells about the different types of services offered by the cloud
services, reasons companies must move applications to IaaS/PaaS solutions is to gain efficiency in
their operations, The Service Oriented Architecture (SOA) approach and Microservices. The
authors also presents a case study of comparisons of the monolith and the microservice application
like in efficiency etc. and the deployment on cloud.

Department of CS&E, BIT 2020-21 11


PLACEMENT APPLICATION using MICRO-SERVICES

Here To demonstrate the deployment comparison between the microservice and the monolith
application, authors considered the application of policy provider here for easy understanding
there took two functionalities to demonstrate, the first functionality is given the user custom input
to calculate the policy pricing where more computation is needed, second functionality is where
the user fetches the policy already present from the database. A single monolith application is
developed by combining both functionality in one application, microservice application is
developed with two applications for each functionality discussed as above. The monolith
application is deployed into single EC2 instance as shown in figure 2.2.6, then deployment of
microservice each service is deployed into multiple services as shown, where first micro service is
deployed in EC2 where computation required is more, and send micro service into EC2 where less
ram is needed, and finally an API Gateway into one more EC2 instance which is of basic one
(m3.medium) where it acts as single point of entry, shown in figure 2.2.7. The 2 tables next page
shows the cost analysis.

Fig 2.2.6 Deployment of the monolithic architecture on Amazon Web Services

Fig 2.2.7 Deployment of the microservice architecture on Amazon Web Services

Department of CS&E, BIT 2020-21 12


PLACEMENT APPLICATION using MICRO-SERVICES

Table 2.2.2 Infrastructure Costs of the Monolith Deployment

Table 2.2.3 Infrastructure Costs of the Microservice Deployment

2.3 Drawbacks of existing System


The existing system is the single monolith server

The disadvantages of monolithic architecture

● Harder to understand

Since the whole application is developed as single application when anyone sees the
code it seems to be bulky and tough to understand.

● The Integrated Development Environment can become overloaded, and size may
also slow down startup time:

When we are developing big applications, it takes more time IDE to get loaded and
even time to deploy.

Department of CS&E, BIT 2020-21 13


PLACEMENT APPLICATION using MICRO-SERVICES

● All elements are tightly coupled

The elements in the monolith are tightly coupled means change in one service
causes the change in the other service also.

● Updating can be a challenge as its redeployment of the application

When we are developing big applications, it takes a longer time for the re
deployment as the large program need to be checked for the errors and it takes more
time to re deploy.

● Problems with scalability, because each element has different resource


requirements

In an application each and every functionality requires its own type of resource
requirements it cannot be given the same, since we must effectively utilize the
resources. Monolith application have some issues with scalability since it does not
scale well.

2.4 Problem Statement


Automate the student list generation performed by the placement cell in an institution using
microservices.

2.5 Proposed Solution


The proposed solution is to use our application that we are developing by using microservices.
The module Description
● Config Server: The config server does the job of providing the configurations to the
services running so that deployer need not to give every time he/she deploys the application,
and with this it can store configurations with respect to the different environment in which
the application will be running i.e., during developed, testing, QA and finally in production.
● Eureka Server: This server acts as a naming server which contains where each and every
server is running, this is mainly used for the discovery of locations where a particular
service is running and performs the job of load balancing.

Department of CS&E, BIT 2020-21 14


PLACEMENT APPLICATION using MICRO-SERVICES

● API Gateway: This server acts as a single point of entry to the application, where the
requests from the client application first comes to this server, then based on the request URL
the request is redirected to the server which it is intend for.
● Distributed Tracing Server: This server contains the information like from the
request came and to which microservices the request has spanned along with the
request and response timestamps. This acts as a log where this data can be
analyzed to scale the application in specific timings.
● Student Admin Service: This micro service deals with the storing of the student
information which includes the email, name, USN, phone, Date Of Birth,
Graduation year, SSLC Data (Pass out Year, Start Year, Studies Board,
Percentage Scored) ,PUC DATA (Pass out Year, Start Year, Studies Board,
Percentage Scored), Diploma Data(Pass out Year, Start Year, university studies,
CGPA Scored) , UG DATA (Pass out Year, Start Year, university studies,
CGPA Scored, Degree Studied) and PG DATA (Pass out Year, Start Year,
university studies, CGPA Scored, Degree Studied). This service is also
responsible of storing of the admin information also.
● Placement service: This main focus of the service is just to deal with the placement activity,
this mainly deals with the strong of the entities like company, company visits, the company
visit activities performed, set of the offers issued to the students and also make the student
list generation process easier.
● Media Role Service: The service deals with storing the media information like the Job
Description of the company offered role, profile of student and the Resume of the students.
And some extra functionality like check whether the user logged in is valid and is session
expired or to get the information of user based on his/her logged in session.
● MYSQL database: This is a structured form of the storage, which is used for storing the
above-mentioned entities.
● Firebase Storage: This is one of the services offered by Google where this service is used
for storing of the media information what we have mentioned in the Media Role Service,
since this service provides a pay as you go so that only when the threshold is crossed the
charges are applied based on the usage.
There may be small additional usage of the 3rd party servers may be added to satisfy
the functionality during the development time.

Department of CS&E, BIT 2020-21 15


PLACEMENT APPLICATION using MICRO-SERVICES

Fig 2.3.1 Proposed System

Department of CS&E, BIT 2020-21 16


CHAPTER 3
REQUIREMENT ENGINEERING
3.1 Software and Hardware Tools Used
3.1.1 Software Tools Used
Tools
● STS (Spring Tool Suite): - IDE used for developing the spring and spring boot
applications
● JMeter: - Tool used for performing tests
● Docker: - Software tool for creating the containers so that our application becomes
independently deployable
● JAVA 11: We need java to run since all services are developed using java
● Maven: Along the JAVA we need maven also to run these applications, maven is
present above java, which is responsible for managing all dependencies required for
the application to run.
3.1.2 Hardware Requirements
Disk capacity(free): 150GB
Ram capacity: 8GB
Operating System: Windows or Linux
Graphics card: Basic Graphic card (Intel 720mb Graphic card)

Department of CS&E, BIT 2020-21 17


PLACEMENT APPLICATION using MICRO-SERVICES

3.2 Conceptual/ Analysis Modelling

3.2.1 Use Case Diagram

Fig 3.2.1 use case Diagram of application

There are 3 actors Student, Company and Admin in the above use case diagram, The
students does the job of Registration by providing his/her details like University Seat Number and
other basic details. Then this registration can be either be accepted or rejected by the admin by
seeing his/her identity. After the registration is successful, then the student can login and fill extra
details that the application asks then to fill. The above details entered by the student can be seen
by all actors of the application. Admin has the capabilities to add the companies visiting the
college, the companies need to contact the admin to reserve the dates to conduct the drive and the
respective details will be added to the application. The students can view the drives conducted and
if they are interested then can register, the registration is successful only if the student is eligible
according the company specifies minimum criteria and even pass the restrictions placed by the
placement cell.

Department of CS&E, BIT 2020-21 18


PLACEMENT APPLICATION using MICRO-SERVICES

3.2.2 Sequence Diagram

3.2.2.1 Student Registration

Fig 3.2.2.1 Student Registration Sequence Diagram

The above diagram there are 2 actors Admin and Student and two servers API gateway and
the Student Admin Service, Initially the student will fill the registration form and submits the
request, that request will go to the API Gateway from there it will be redirected to the Student
Admin Service which is intended to server this request, then the request is accepted and added to
the application. After that Admin logins he/she will get the all the student registrations and know
the admin will verify the students registrations and then accept if the student belongs to their
organization or university or college, then if the admin accepts the registration that student will be
added to the application.

3.2.2.2 Company Visit and Activities


From the sequence diagram in next page, we have one actor ADMIN which add the
company which and then the company visit, followed by the minimum criteria specified by the
company, followed by the set of roles offered along with their respective Job description, then
finally after the drive has been completed, the offers issued by the company is add to the
respective students.

Department of CS&E, BIT 2020-21 19


PLACEMENT APPLICATION using MICRO-SERVICES

Fig 3.2.2.2 Company visit and activities sequence diagram


3.2.2.3 Placement Activity

Fig 3.2.2.3 Placement activity sequence diagram

Department of CS&E, BIT 2020-21 20


PLACEMENT APPLICATION using MICRO-SERVICES

In the above sequence diagram, there are two actors Admin and Student and 4 servers
Placement Service, Student Admin Service, Media Service and Firebase.

The Student first checks for the company visits and the minimum criteria and interested he/she
much choose one preferred role, then he must issue the register request to register to the
PLACAMENT SERVICE server, then the placement server fetches that student details who
requested to register from the STUDENT ADMIN SERVICE, then the minimum criteria specified
by the company than finally compare these two details, then after comparison if the student satisfy
then his/her registration is successful otherwise unsuccessful response is sent back. After the
registration has been close there will be asynchronous activity triggered that does the extraction of
the registered students than request each registered student details to be fetched from STUDENT
ADMIN SERVICE and add them to the workbook, then save to Media Service, this intern
contacts Firebase to save the student lists. After the Student List generation has been completed,
then the admin can login can request for the list generated in order to send to company.

3.2.2.4 Student Details

Fig 3.2.2.4 Student Details Fill Sequence Diagram

Department of CS&E, BIT 2020-21 21


PLACEMENT APPLICATION using MICRO-SERVICES

In the before page sequence diagram as student registration becomes successful, then first
student will login to the application, then student selects his profile picture then sends request to
set it as his/her profile for this application, that request will go the Media Service then to the
Firebase where his profile is stored, similarly even for the resume.

Then student issued his SSLC, PUC or Diploma, UG and PG (only if student is PG student)
details to be updated by the application that will be used during the registration and the student list
generation. Here in the above statement each request will go the student Admin Service then
his/her data will be updated. When the student is updating his PUC data the data will be stored
only if the student had studied PUC and not Diploma, similarly even storing of the Diploma and
the PG data.

3.2.3 Activity Diagram


3.2.3.1 Student Registration

Fig 3.2.3.1 Student Registration and details filling Activity Diagram

Department of CS&E, BIT 2020-21 22


PLACEMENT APPLICATION using MICRO-SERVICES

The above activity starts with the opening the application, then if the student is not
registered, then the student will register, then that registration is viewed by the admin, then admin
checks for the validity of student, if he/she is valid, then the registration is accepted if not so then
registration is rejected.

If the student registration was successful, then the student can login with the predefined details
submitted by student during the time of registration, then the student will view and edit the
respective details or register to company drive, that will be detailed explained next coming activity
diagrams.

3.2.3.2 Admin operations (Student Admin Service)

Fig 3.2.3.2 Admin Operations 1 Activity Diagram

Department of CS&E, BIT 2020-21 23


PLACEMENT APPLICATION using MICRO-SERVICES

At the start the admin will open our application, then after the admin successful login, then
the admin does some tasks like accepting, rejecting of the student registration and even can delete
the student if he/she has violated any rules and regulations, then finally view all details inside the
application. After completing all activities, then admin will logout.

3.2.3.3 Admin Operations (Placement Service)

Fig 3.2.3.3 Admin Operations (Placement Service)

Department of CS&E, BIT 2020-21 24


PLACEMENT APPLICATION using MICRO-SERVICES

At the start Admin will login, add the company visiting to college to conduct drive, then Admin
will add the visit indicating the company will be visiting college to perform placement activity,
then add the minimum criteria specified by the company so that only eligible students can register,
and even add the Job Roles along with the Job Description File, then even view the registration,
get the student list generated by the application after the registration of the drive closes and do all
other details, then finally logout out of application.

3.2.3.4 Student Registration to drive

Fig 3.2.3.4 Student Registration to drive

The student first views the different companies visiting college, then view the roles offered
if interested then issues registration request to a particular drive, then the application will get
student details, company visit details (Minimum Criteria), student current held offers, then check
the eligibility of the student, if eligible then the student will be added to that particular drive list or
else unsuccessful registration then the activity ends here.

Department of CS&E, BIT 2020-21 25


PLACEMENT APPLICATION using MICRO-SERVICES

3.2.4 State Chart Diagrams

3.2.4.1 Student Registration to the application

Fig 3.2.4.1 Student registration to application state chart diagram

The system will be first present in the Student registration Form state where the student is
presented with a registration form, then on submission of the form system or the request goes to
the Registration Pending, then the admin checks for identity, then accept the registration if the
student is valid and go to Registration Successful, otherwise the registration is rejected and goes to
the state Registration unsuccessful, by this the system comes to end.

3.2.4.2 Company Drive Conduction

Fig 3.2.4.2 Company Drive conduction state chart diagram

Department of CS&E, BIT 2020-21 26


PLACEMENT APPLICATION using MICRO-SERVICES

As the Admin logins and click on the add company the admin will be present in the start
state which is Company Add form, the after entering details and submission of form then the
system goes to the company add successful, then to conduct drive of the company, the admin will
trigger conduct drive, then he/she is presented with the company visit form, after submission,
minimum criteria form is presented, after that successful submission, then the machine enters to
the Role Add Form, where the admin enters the role offered by this company for this drive, he/she
can add multiple roles, after that system will go the Activity Conduct Form, where admin enters
activities conducted along with timestamps, finally after the drive is completed, issue offer action
is triggered at that time the offer add form is presented to add offers issued by this company , can
issue multiple offers so there is a loop there. Then system finally goes to end state.

3.2.4.3 Student Registration to drive

Fig 3.2.4.3 Student Registration to drive state chart diagram

The student will first trigger register request of a particular drive, then system goes to the
Registration Pending state, then after fetching the drive details, the system will trigger
check_eligibility to go to the Registration Eligibility, here the student details and previous drive
details fetched are compared, based on eligibility the machine goes to Registration Successful if
student is eligible, Not Eligible state if the student is not eligible, then the machine comes to end.

Department of CS&E, BIT 2020-21 27


PLACEMENT APPLICATION using MICRO-SERVICES

3.2.4.4 Student List generation

Fig 3.2.4.4 Student List Generation state chart diagram

First the Drive will be in Open Registration state, after the closed registration time stamp
passed then the machine goes to the Close Registration state, then the machine goes to Queued
after the StudentListRequest event is added to the Queue, After the event is received by one of the
microservice then the machine will go to Pending State , on receiving of the student list to be
generated of the particular drive, then the machine will go to the Processing State, here the excel
sheet is generated, if error occurs and number of retries is less than or equal 2, then the request is
requeued, if processing is successful then the machine will go to Uploading state, or if the number
of retries is greater than 2 machine goes to Error state, here if the upload is un successful, and if
number of retries is greater than 2 the machine will go to Error state then end, or if the upload is
successful the machine will go to Finish then end.

Department of CS&E, BIT 2020-21 28


PLACEMENT APPLICATION using MICRO-SERVICES

3.2.4.5 Student Full details filling

Fig 3.2.4.5 Student Full Details Filling state chart diagram

Initially the machine will be in Student Fill Form, and presented will all buttons where he
could fill respective details, on trigger of get_sslc_form, the machine goes to Student SSLC Form,
where the student can fill their respective details, then issue update sslc form request, then the
state goes to Update Successful, then to end.

on trigger of get_puc_form, the machine goes to Student PUC Form, where the student can fill
their respective details, then issue update puc form request, then the state goes to Update
Successful if the student is a PUC student, or else it goes to Update Error then to end.

on trigger of get_diploma_form, the machine goes to Student Diploma Form, where the student
can fill their respective details, then issue update diploma form request, then the state goes to
Update Successful if the student is a DIPLOMA student, or else it goes to Update Error then to
end.

on trigger of get_ug _form, the machine goes to Student UG Form, where the student can fill their
respective details, then issue update ug form request, then the state goes to Update Successful,
then to end.

on trigger of get_pg_form, the machine goes to Student PG Form, where the student can fill their
respective details, then issue update diploma form request, then the state goes to Update
Successful if the student is a PG student, or else it goes to Update Error then to end.

Department of CS&E, BIT 2020-21 29


PLACEMENT APPLICATION using MICRO-SERVICES

3.2.5 Class Diagram

Fig 3.2.5 Class Diagram of the application

The student class has set of the attributes as shown in the above diagram, student also has
some embedded classes like SSLC_SCORE, PUC_SCORE, DIPLOMA_SCORE, PG_SCORE
and UG_SCORE based on the applicability as explained in the state chart diagram these specified
class some attributed in common like the score scored, year of start and year of passing, each
student is uniquely addressed by University Seat Number (USN). The COMPANY entity has
attributes company name, email and unique ID COMPANY_ID. The COMPANY entity can come
for more than one visits, each COMPANY VISIT has properties MAX_SALARY
,MIN_SALARY , CLOSED_REGISTRATION and ADDED_AT which specifies the timestamp
added at, and each COMPANY VISIT has single minimum criteria specified, and each
COMPANY VISIT entity can have one or more COMPANY ACTIVITY to be performed, each
STUDENT entity can register to more than 1 COMPANY VISIT, and even can BACK OFFER in
0 or more companies, COMPANY can issue offers to 0 or more STUDENT (students). Each
OFFER class has attributes SALARY_OFFERED, ROLE and IS_IT which is Boolean valued
which specifies whether the offer is for the it sector role or not.

Department of CS&E, BIT 2020-21 30


PLACEMENT APPLICATION using MICRO-SERVICES

3.2.6 ER Diagram

Fig 3.2.6 ER Diagram of the application

The above ER diagram has main entities they are STUDENT, ROLE, COMPANY,
COMPANY VISIT, COMPANY ACTIVITIES and BRANCH.

The STUDENT Entity has PRIMARY KEY USN (University Seat Number), NAME, EMAIL,
PHONE, YEAR_OF_PASSING, GENDER , IS_DIPLOMA, IS_UG,IS_PG, SSLC SCORE which
is composite attribute which has sub attributes like YEAR_OF_START,
YEAR_OF_PASSING,PERCENTAGE_SCORE and BOARD_STUDIED, PUC SCORE which is
composite attribute which as sub attributed like YEAR_OF_START,
YEAR_OF_PASSING,PERCENTAGE_SCORE and BOARD_STUDIED this composite attribute
PUC SCORE is only stored if the attribute IS_DIPLOMA if false, DIPLOMA SCORE is a
composite attribute which has sub attributed like YEAR_OF_START, YEAR_OF_PASSING,
CGPA_SCORE and UNIVERSITY_STUDIED this composite attribute is present only if the
attribute IS_DIPLOMA is set to true , UG SCORE is a composite attribute which has sub
attributed like YEAR_OF_START, YEAR_OF_PASSING,

Department of CS&E, BIT 2020-21 31


PLACEMENT APPLICATION using MICRO-SERVICES

CGPA_SCORE, UNIVERSITY_STUDIED and DEGREE_STUDIED, and PG SCORE is a


composite attribute which has sub attributed like YEAR_OF_START, YEAR_OF_PASSING,
CGPA_SCORE, UNIVERSITY_STUDIED and DEGREE_STUDIED only if the attribute IS_PG
is set to true.

The COMPANY entity has attributes COMPANY_ID which is primary key for this entity,
COMPANY NAME and EMAIL, Each COMPANY has multiple visits to college or institution, so
the relationship between COMPANY to COMPANY VISIT entity is DOES which has cardinality
ratio 1 : 1-m, COMPANY VISIT entity has attributes VISIT_ID which is the primary key of this
entity , ADDED_AT,CLOSE_REGISTRATION is the timestamp at which the registration of this
drive gets closed and students cannot register after this time passes, MINIMUM_CRITERIA
which is composite which is composed of attributes MIN_SSLC_PERCENTAGE,
MIN_PUC_PERCENTAGE, MINIMUM_DIPLOMA_CGPA, MIN_UG_CGPA,
MIN_PG_SCPA if the IS_DRIVE_PG is set to true, IS_DRIVE_UG, IS_DRIVE_PG,
MAX_BACKLOGS and has multivalued attributes PASSOUY_YEARS,
REQUIRED_UG_DEGREES, REQUIRED_PG_DEGREES only if the IS_DRIVE_PG is set to
true. The COMPANY VISIT has relation to COMPANY ACTIVITIES as during each visit the
company does more than 1 activities like interview, technical test, aptitude test, group discussion
etc.., so the cardinality ratio between COMPANY VISIT and COMPANY ACTIVITY entity is
1:n, COMPANY ACTIVITY has attributes ACTIVITY_ID which is primary key and
ACTIVITY_NAME, the relation conducts has attributes FROM and TO which specifies the range
or duration of time at which these activities are performed. The COMPANY VISIT entity has
relationship with ROLE entity with relationship name OFFER, the cardinality ratio is 1:n as when
the company comes it offers at least one role. ROLE entity has attributed ROLE_ID primary key
of this entity and ROLE_NAME which is unique key attribute. The BRANCH entity has attributes
BARNCH_ID which is primary key and BRANCH NAME. There is a relationship between the
STUDENT and the BRANCH, that student studies in a branch and in each branch there can be
many students studying. The student has relationship with company that he may BACKS OFFER,
this relationship BACKS OFFER has attributes IS_IT, IS_BONUS and SALARY_OFFERED.
The STUDENT entity has relationship to COMPANY VISIT, that he can register for a specific
role offered by the company to participate in the drive.

Department of CS&E, BIT 2020-21 32


PLACEMENT APPLICATION using MICRO-SERVICES

3.3 Software Requirements Specification

3.3.1 User Requirements

An application that stored the student’s data: - Application must store all the needed
information about the students as specified by the user and we have shown the attributes that we
will be storing.

An application that stored the companies visiting along with the set of offers issued and even
the statistics for every year: - As every many companies will be visiting the college and issuing
offers, the application must prepare a bar chart representing number of offers the students are
getting each year.

Generate the student list according the minimum criteria specified by company along with
TPO specified restrictions: - The user (ADMIN) needs that not only the criteria specified by the
company needs to be taken into consideration but also the placement cell criteria which will
restrict the students for registration of the respective drive of a company.

3.3.2 System Requirements

3.3.2.1 Functional Requirements

Store Student Full information: - As specified by the user we will be storing the information of
student

Store The companies and their visits: - Our application will also store the all companies that
will be visiting to college along with their multiple visits and set of activities performed along
with the schedule which has the duration of each activity.

Accept the student registrations only if they are interested in the role and eligible to
participate: - As specified by the user (ADMIN) we will allow only the eligible students as per
specified.

Generate the student list after registration closes: - After the closed registration time passes of
the specified drive registrations should be rejected and the application must generate the list of
students registered to the drive and store in persisted location, and when needed user can see the
student list generated.

Department of CS&E, BIT 2020-21 33


PLACEMENT APPLICATION using MICRO-SERVICES

3.3.2.2 Non-Functional Requirements

Fault Tolerant: - The system or application must be able to tolerate a certain set of errors defined
during the development of a system

Robustness: - The capability to cope with unknown errors during execution and provide the
system services all the same

User Friendly: - The user interface must be easy for the users to use.

Scalable: - The system must be scalable to server many clients at a time.

3.3.2.3 Domain Requirements

Independently deployable: - This a one of the most required properties for each and every
application where once developed the application must be capable of running in any environment.

Department of CS&E, BIT 2020-21 34


Chapter 4

PROJECT PLANNING

4.1 Project Planning and Schedule

Fig 4.1 Gantt Chart

As specified by the above figure we assumed that we start from January first and will be
completing the project by June 6th.

Department of CS&E, BIT 2020-21 35


CHAPTER 5

APPLICATIONS & CONCLUSION

5.1 Applications
Can be used by the Universities and various professional course offering Institutions:

This application is being used in the above-mentioned areas where it is necessary to perform and
coordinate the activities required form the placement activities to carry on peacefully.

5.2 Conclusion
From this we are able to understand the importance of the microservices. This project tries
to solves the problems of the students’ violating rules and regulations of the placement cell. This
project tries to solve the problem of filtering the student list after accepting responses from the
students.

Department of CS&E, BIT 2020-21 36


REFERENCES
[1] J. Arthur and S. Azadegan, "Spring framework for rapid open source J2EE Web application
development: a case study," Sixth International Conference on Software Engineering, Artificial
Intelligence, Networking and Parallel/Distributed Computing and First ACIS International
Workshop on Self-Assembling Wireless Network, 2005, pp. 90-95, doi: 10.1109/SNPD-
SAWN.2005.74.

[2] M. Gajewski and W. Zabierowski, "Analysis and Comparison of the Spring Framework and
Play Framework Performance, Used to Create Web Applications in Java," 2019 IEEE XVth
International Conference on the Perspective Technologies and Methods in MEMS Design
(MEMSTECH), 2019, pp. 170-173, doi: 10.1109/MEMSTECH.2019.8817390.

[3] N. Sharma, B. K. Murthy and P. N. Barwal, "Development of ePPMS for research proposals
based on integrated spring and Hibernate framework," 2015 2nd International Conference on
Computing for Sustainable Global Development (INDIACom), 2015, pp. 247-250.

[4] R. M. Munaf, J. Ahmed, F. Khakwani and T. Rana, "Microservices Architecture: Challenges


and Proposed Conceptual Design," 2019 International Conference on Communication
Technologies (ComTech), 2019, pp. 82-87, doi: 10.1109/COMTECH.2019.8737831.

[5] X. Larrucea, I. Santamaria, R. Colomo-Palacios and C. Ebert, "Microservices," in IEEE


Software, vol. 35, no. 3, pp. 96-100, May/June 2018, doi: 10.1109/MS.2018.2141030.

[6] D. Guaman, L. Yaguachi, C. C. Samanta, J. H. Danilo and F. Soto, "Performance evaluation in


the migration process from a monolithic application to microservices," 2018 13th Iberian
Conference on Information Systems and Technologies (CISTI), 2018, pp. 1-8, doi:
10.23919/CISTI.2018.8399148.

[7] A. Akbulut and H. G. Perros, "Performance Analysis of Microservice Design Patterns," in


IEEE Internet Computing, vol. 23, no. 6, pp. 19-27, 1 Nov.-Dec. 2019, doi:
10.1109/MIC.2019.2951094.

[8] O. Al-Debagy and P. Martinek, "A Comparative Review of Microservices and Monolithic
Architectures," 2018 IEEE 18th International Symposium on Computational Intelligence and
Informatics (CINTI), 2018, pp. 000149-000154, doi: 10.1109/CINTI.2018.8928192.

Department of CS&E, BIT 2020-21 37


PLACEMENT APPLICATION using MICRO-SERVICES

[9] S. He, L. Zhao and M. Pan, "The Design of Inland River Ship Microservice Information
System Based on Spring Cloud," 2018 5th International Conference on Information Science and
Control Engineering (ICISCE), 2018, pp. 548-551, doi: 10.1109/ICISCE.2018.00120.

[10] Y. Jayawardana, R. Fernando, G. Jayawardena, D. Weerasooriya and I. Perera, "A Full Stack
Microservices Framework with Business Modelling," 2018 18th International Conference on
Advances in ICT for Emerging Regions (ICTer), 2018, pp. 78-85, doi:
10.1109/ICTER.2018.8615473.

[11] M. Villamizar et al., "Evaluating the monolithic and the microservice architecture pattern to
deploy web applications in the cloud," 2015 10th Computing Colombian Conference (10CCC),
2015, pp. 583-590, doi: 10.1109/ColumbianCC.2015.7333476.

Department of CS&E, BIT 2020-21 38

You might also like