Download as pdf or txt
Download as pdf or txt
You are on page 1of 42

A MODERN JOB SITE WEB APPLICATION

USING ASP.NET(C#) CORE MVC

ABSTRACT
A job portal is a site that overcomes any barrier among bosses and occupation searchers.
Organizations can promote their opening and search through applications and CVs of likely
workers; competitors can make a profile for themselves with all the vital data, and look and
apply to occupations posted on the site. Likewise, the actual site is in every case simple to move
around. They are a basic yet compelling approach to publicize and search for occupations.
While enquiring about work opening eye to eye appears to be more close to home, not every
person is searching for direct methodology any longer. Bosses are searching for somebody who
is fully informed regarding the always developing Internet; somebody who can move around
sites effortlessly. Indeed, even the basic demonstration of applying on the web can show
enrollment specialists that this is you. Furthermore, this interaction is a lot snappier than
looking by walking.

On the off chance that you were hoping to go after a position on the web, you would need to
visit site upon site, every one for an alternate organization, with the expectation that somebody
had an ideal opening for you. On any work entrance, in any case, you can look through positions
by job. This isn't just efficient however helpful as you can discover each position fit to you
across the board place. On the off chance that none of the publicized positions suit your
capabilities or experience, you can join to get email cautions when a new position in your field
is promoted. Also, work gateways don't simply end at your nation's lines! You can look and
apply to occupations everywhere on the globe without voyaging, which is fantastic in case
you're searching for another experience. There are no limits to where you can go with work, or
who you can utilize. Occupation gateways give you an entire universe of up-and-comers; an
entire universe of occupations – the choices are for all intents and purposes limitless.

From the viewpoint of businesses, work entrances are a speedier and more proficient approach
to fill an opening. Bosses who don't have devoted enrollment staff can zero in on their business
while the site can deal with filling their opportunities. This chops down the time they spend
tracking down the correct up-and-comer, with the ideal demeanor and capabilities for the
position, however it actually finishes in a similar outcome. All things considered, it utilizes
these places of work beneficial. As referenced before, they likewise classes opportunities by
job/work type, making them simpler to discover by the effectively qualified and experienced
up-and-comers. Discussing applicants, there are thousands joined to these destinations, giving
you a high possibility of getting an extensive number of answers.

Every job site has a search feature but doesn't have a skill matching feature. By skill matching
features an employee easily sees his matching skills and can also get Dream Job easily. We
developed a skill matching feature, employees can see the number of skills matched and which
skills matched with the posted job.

i|Page
CONTENTS
Chapter-01 : Introduction :-

1.1 Introduction………………………………………………………………………….………..2
1.2 The Evolution of the Web…………..……………………………………………….………..2
1.3 The Need for Web Application Frameworks…………………………………………………2
1.4 Business Benefits……………………………………………………………………………..3
1.5 The Technology Behind Web Applications…………………………………………….…….3
1.6 Web Application Frameworks………………………………………………………….…….4
1.7 Framework Examples…………………………………………………………………….……4

Chapter-02: Application Architecture & Layers:-

2.1 Introduction………………………………………………………………………………….7
2.2 Web Application Architecture……………………………………………………………7
2.3 Monolithic Application……………………………………………………………………...7
2.4 All-in-One Applications………………………………………………………………..…7
2.5 Application Layer……………………………………………………………………….…..9
2.6 Traditional "N-Layer" Architecture Applications…………………………………..…10

Chapter-03: Functional and Non-functional requirements & Database design:-

3.1 Introduction…………………………………………………………………………………14
3.2 Developing the Web Application……………………………………………………..…14
3.3 Design Phase ……………………………………………………………………………….14
3.4 Functional Requirements……………………………………………………………………15
3.5 Use Case Design……………………………………………………………………………15
3.6 Database Diagram…………………………………………………………………….……16
3.7 Table Relationship…………………………………………………………………….……18

Chapter-04: Tools Installation & Authentication and Authorization:-

4.1 Introduction…………………………………………………………………………………20
4.2 .net Installation and Set Up………………………………………………,,,…….…………20
4.3 Implementation Phase……………………………………………………,,,………….……20
4.4 Login & Registration
4.4.1 Authentication & Authoriszation………………………………………,,,……………21
4.4.2 Claims-based authorization in ASP.NET Core……………………,,,……………21
4.4.3 Adding Claims Check…………………………………………………,,,………….…22
4.5 Register……………………………………………………………………,,……….……..23
4.6 Login………………………………………………………………………,,,………….…24
4.7 Authorization………………………………………………………………,,……….…….25

ii | P a g e
Chapter-05: Project Demonstration:-

5.1 Introduction………………………………………………………………………,,………27
5.2 Menu………………………………………………………………………………………27
5.3 Home Page………………………………………………………………………,,………28
5.4 Public Pages
5.4.1 Public Job Post Page………………………………………………………,,,.………29
5.4.2 Public Job Details Page………………………………………………………………30
5.5 Admin Area Pages
5.5.1 Admin Dashboard……………………………………………………………………31
5.5.2 Admin Skill Page………………………………………………………….…………31
5.5.3 Admin Category Page………………………………………………………..………32
5.6 Company Area Page
5.6.1 Company Dashboard………………………………………………….………………32
5.6.2 Profile…………………………………………………………………………………32
5.6.3 Company Job Post……………………………………………….……………………33
5.7 Employee Area Page
5.7.1 Employee Profile………………………………………………………………………33
5.7.2 Employee Matching Skills Page……………………………………….………………34

Chapter-06: Conclusion & Future Work:-

6.1 Conclusion…………………………………………………………………………………36
6.2 Future Work…………………………………………………………….…………………36

iii | P a g e
LIST OF FIGURES

Name of The Title of The


Figure Figure

Figure 2.1 File Structure of a Single-Project App


Figure 2.2 A single project ASP.NET Core app.
Figure 2.3 Typical application layers.
Figure 2.4 A simple monolithic application with three projects.
Figure 2.5 Application Layers
Figure 3.1 Table Relationship
Figure 4.1 SQL Server
Figure 4.2 SSMS
Figure 4.3 Visual Studio
Figure 4.4 Register page
Figure 4.5 User Table
Figure 4.6 Login page
Figure 4.7 Claim base redirection
Figure 4.8 Access Denied page
Figure 5.1 Employee Menu
Figure 5.2 Company Menu
Figure 5.3 Admin Menu
Figure 5.4 Home Page
Figure 5.5 Public Job List Page
Figure 5.6 Public Job Details Page
Figure 5.7 Admin Dashboard
Figure 5.8 Admin Skill Pages
Figure 5.9 Admin Category Pages
Figure 5.10 Company Profile Page
Figure 5.11 Company Job Post Page
Figure 5.12 Employee Profile Page
Figure 5.13 Employee Matching Skill

iv | P a g e
List of Abbreviation
MVC Model View Controller
ASP Active Server Page
ARPA Advanced Research Projects Agency
NCP Network Control Protocol
IP Internet Protocol
TCP Transmission Control Protocol
HTML Hyper Text Markup Language
MS Microsoft
OS Operating system
SQL Structured Query Language
CSS Cascading Style Sheets
HTTP Hypertext Transfer Protocol
W3C World Wide Web Consortium
CRUD Create Read Update Delete
URL Uniform Resource Locator
UI User Interface
DRY Don't Repeat Yourself
DAL Data Access Layer
BLL Business Logic Layer
FR Functional Requirement
C# C Sharp
GUI Graphical User Interface
SSMS SQL Server Management Studio
UML Unified Modeling Language

v|Page
CHAPTER 1
INTRODUCTION

1|Page
1.1 Introduction
Since the web 2.0 renaissance, the improvement requests of online substance has expanded
altogether as it turned out to be increasingly more client produced. To facilitate the
improvement trouble numerous designers confronted, web application systems were made.
Such structures accompany expectations to absorb information however, and learning one can
remove time from an all around occupied timetable.

Toward the finish of 2005, a system for creating web applications was delivered. This system
was called Ruby on Rails (generally called Rails) and was fueled by the Ruby programming
language. It gave Ruby web designers another method of web application improvement
dependent on a 1970s programming structural example initially for executing UIs in work area
programming applications. This plan design is called Model–see regulator (MVC) and is the
establishment of such frameworks[i]. Because of the notoriety of Rails, it would later bring
forth a surge of comparative web application structure projects made with various
programming dialects. As the intricacy of internet pages, presently regularly known as web
applications, has developed, these web structures fill in as a fundamental apparatus to fulfill
current needs, and function admirably with project the executives measures like dexterous and
Kanban.

In any case, there are as yet numerous product organizations and engineers that are fairly
baffled about MVC structures, and still couldn't say whether these sorts of systems are the
correct decision for a particular venture. For instance, organizations creating with ASP.NET
and WebForms. Subsequent to perusing the postulation, the creator trusts individuals in this
mood will have a superior comprehension behind the improvement practice, and will actually
want to assess whether a MVC web advancement structure is appropriate for a particular
advancement project.

1.2 The Evolution of the Web


In 1969 the Advanced Research Projects Agency (ARPA), working for the US branch of
protection, created ARPANET (Advanced Research Projects Agency Network). ARPANET
utilized NCP (network control convention) and initially associated US research focuses and
colleges — in the end extending to incorporate other government areas, more colleges, and
global hosts[xvi]. In 1981 the TCP/IP web convention, the substitution of NCP, was
normalized, which changed ARPANET to The Internet. This permitted any PC that upheld this
convention to be organized together.

1.3 The Need for Web Application Frameworks


A web application, or explicitly an electronic application, is an application that can be gotten
to utilizing an internet browser. In examination, a work area application is an individual
application introduced on the host stage typically getting to a data set over its organization.
Albeit the qualification between a site and a web application can be muddled, the application
ought to have comparative usefulness to work area programming to be known as a web
application. There is likewise a pattern for some versatile applications to run "webpage hand

2|Page
explicit programs" (concealing the internet browser UI and normally utilizing HTML5's
disconnected stockpiling capacity), consequently such portable applications could likewise be
alluded to as web applications.

As indicated by Borodescu about the distinction between a site and web application, where he
met a few noticeable figures in the web innovation area, a characterizing quality of a web
application is that it is activity situated instead of data arranged. A portion of the principal work
area application substitutions to be effectively received by the general population and business
local area were email applications, beginning with Hotmail (supplanting MS Outlook) and
Gmail. Afterward, this stretched out to full office suites, PC helped plan applications, and even
video altering applications. Obviously, web applications can likewise supplant little in-house
applications or instruments.

1.4 Business Benefits


As indicated by Magic Web Solutions there are numerous business advantages to making web
applications rather than work area applications.
● A web application runs in an internet browser, which is universal with PCs and cell
phones today. As internet browsers are cross stage, a web application will run on any
OS (working framework) and any OS form that one can introduce an advanced internet
browser onto.
● Web applications normally just require a modern internet browser and don't should be
introduced independently. Changes to a web application doesn't need introducing a
product update for each customer utilizing it.
● If required, web applications are usable whenever since one can create them to work
disconnected, utilizing nearby capacity.
● Web application UIs are simpler to make and offer a more prominent plan scope than
work area applications. They can likewise be effectively altered for different gadget
screens and change format responsively.
● As web innovations depend on open industry-wide norms, interoperability between
various web applications is typically a lot simpler to carry out.
● A number of adaptable center advancements (stacks) are accessible to fit explicit
business necessities.
○ Java-based arrangements (J2EE) like JSP and Servlets from Oracle
○ Microsoft .NET stage, for example, Active Server Pages, SQL Server and .NET
scripting dialects.
Open Source stage (different open source programming dialects and
information bases)

1.5 The Technology Behind Web Applications


Contingent upon the prerequisites of the web application being referred to, it can use any of the
W3C norms characterized in the Open Web Platform for application improvement. A web
application is generally coordinated into different sides — a customer side and worker side. On
the customer side, most web applications today use HTML5 for organizing and introducing

3|Page
content; Cascading Style Sheets variant 3 (CSS3) for styling the introduction of the substance;
and JavaScript to control customer side rationale and update portions of the page. On the
worker side, various programming dialects can be utilized to handle HTTP demands produced
by the customer side, and can associate with information base applications, for instance SQL
Server[ii].

On the off chance that the web application or site being made is insignificant, one can basically
utilize these advances with no guarantees, with negligible support issues. Be that as it may, if
the undertaking is unpredictable, requiring numerous types of making, perusing, refreshing,
and erasing of information (known as CRUD activities), the engineer can regularly go to a web
application system to help the turn of events and upkeep measure.

1.6 Web Application Frameworks


In web application advancement, a web application system (or structure) is an assortment of
libraries and best practices intended to ease monotonous, basic exercises, improve security,
speed up, and give a more modularised code base to help support. Various structures can
fluctuate on how they accomplish this, however for the most part stick to this fundamental
standard.

Normal highlights of systems incorporate a streamlined and cross stage method of associating
with, interfacing with, and approving information base activities; give techniques to oversee
meeting information; approve clients and ensure verified meetings; store pages to decrease
worker load; guide or re-course URLs to give cleaner, more easy to understand URLs; a
templating framework to diminish the measure of customer side increase; and platform, to
naturally create some regular data set supported code structure.
1.7 Framework Examples
MVC systems are typically developed with a solitary article situated programming language,
and in this way they are arranged by language. Coming up next is a rundown of regular worker
side structures ordinarily utilized in web improvement:
● PHP: CakePHP, CodeIgniter, Symfony, Laravel, and Zend Framework.
● Java: Spring, Play, Struts.
● Ruby: Ruby on Rails, Sinatra.
● Python: Django, Flask.
● C#: ASP.NET MVC.

Views
Perspectives are an essential piece of the MVC compositional example. They have their impact
in isolating application rationale (business rationale, information access rationale, and approval
rationale) from introduction. Perspectives can be basically considered as site pages, or parts of
a page (header, footer, menu etc...). Be that as it may, the actual view (in contrast to customary
web applications), isn't straightforwardly called by the end client. They are constantly stacked
by the regulator as taught by the designer — taking into account more prominent adaptability

4|Page
of introduction types. As referenced before, if a view is divided, .Net will cleverly deal with
different calls to stack each view part by attaching them in the request each section was called.
At the point when variable information is needed inside the view, it is characterized and passed
from the regulator via an affiliated cluster or an article. At the point when passed as a
cooperative cluster, the key qualities are straightforwardly utilized as factors, or as exhibits (on
the off chance that they were a cluster type).
Models
Models, similar to sees, are a fundamental piece of the MVC compositional example. Basically,
a model is a class intended to work with data in a data set. Because of the adaptability of the
ASP.Net system, it isn't necessary to utilize them. Nonetheless, designers following the
conventional MVC approach normally will utilize models.

Albeit the model is as a rule for working with information access rationale, it is additionally
normal for approval rules to be characterized in the model and afterward called by a regulator.
Controllers
A controller is a class, and like the model and view classes, is important for the MVC
compositional plan design. The work of the regulator is to go about as an information delegate
between the view and model classes, yet it additionally decides how HTTP solicitations ought
to be taken care of. At the point when the client associates with an application, they will get to
the regulator, so regulators are additionally considered as the passageway of an application. To
emphasize, a URI portion is just a piece of a URL that can call a strategy (with discretionary
contentions) characterized within the regulator class. This class strategy is typically composed
to stack explicit libraries and aides, organize calls from the model, and burden a specific view
while passing information to it, which is eventually gotten back to the client.
Libraries
Libraries are classes that broaden the usefulness of the system. As referenced before, a full
stack web application system isn't only a compositional example, yet additionally its libraries.
They can be considered as a tool compartment, or as additional items, and are basically includes
that will help in the fast improvement of a web application. ASP.Net libraries dwell in the
frameworks/libraries registry, while client characterized, or outsider libraries live in
application/libraries.

5|Page
CHAPTER 2
Application Architecture & Layers

6|Page
2.1 Introduction
Applications design attempts to guarantee the set-up of uses being utilized by an association to
make the composite engineering is adaptable, solid, accessible and reasonable. Applications
engineering characterizes how various applications are ready to cooperate.
One way to deal with planning Web applications is to zero in on obviously characterized layers
of the application's design. This methodology is like the manner in which a planner plans a
structure. In the event that you've at any point seen itemized development plans for a high rise,
you realize the development plans incorporate separate diagrams for the establishment, outline,
rooftop, plumbing, electrical, and different floors of the structure.
With a layered engineering, experts can plan and build up the "floors" — called layers — freely,
gave that the associations between the layers (the interfaces) are painstakingly thought out.

2.2 Web Application Architecture


Generally conventional .NET applications are sent as single units relating to an executable or
a solitary web application running inside a solitary IIS appdomain. This methodology is the
most straightforward organization model and serves numerous inward and more modest public
applications well indeed. In any case, even given this single unit of organization, most non-
trifling business applications profit by some coherent detachment into a few layers.

2.3 Monolithic Application


A monolithik application is one that is altogether independent, regarding its conduct. It might
communicate with different administrations or information stores throughout playing out its
activities, yet the center of its conduct runs inside its own interaction and the whole application
is ordinarily sent as a solitary unit[viii]. In the event that such an application needs proportional
on a level plane, normally the whole application is copied across numerous workers or virtual
machines.

2.4 All-in-one Applications


The littlest conceivable number of undertakings for an application design is one. In this design,
the whole rationale of the application is contained in a solitary venture, ordered to a solitary
get together, and conveyed as a solitary unit. Another ASP.NET Core project, regardless of
whether made in Visual Studio or from the order line, begins as a straightforward "across the
board" stone monument. It contains the entirety of the conduct of the application, including
introduction, business, and information access rationale.

7|Page
Figure shows the record design of a solitary task application.

Figure 2.1 File Structure of a Single-Project App

Figure 2.2 A single project ASP.NET Core app.

In a solitary task situation, partition of concerns is accomplished using organizers. The default
format incorporates separate organizers for MVC design duties of Models, Views, and
Controllers, just as extra envelopes for Data and Services. In this game plan, introduction
subtleties ought to be restricted however much as could reasonably be expected to the Views
organizer, and information access execution subtleties ought to be restricted to classes kept in
the Data envelope. Business rationale ought to live in administrations and classes inside the

8|Page
Models envelope. Although, the single-project solid arrangement has a few inconveniences. As
the task's size and intricacy develops, the quantity of records and envelopes will keep on
developing too. (UI) concerns (models, sees, regulators) dwell in various envelopes, which
aren't assembled alphabetically[vi-vii]. This issue possibly deteriorates when extra UI-level
builds, like Filters or ModelBinders, are included their own organizers. Business rationale is
dissipated between the Models and Services envelopes, and there's no obvious sign of which
classes in which organizers ought to rely upon which others. This sloppiness at the task level
oftentimes prompts spaghetti code.

To address these issues, applications regularly develop into multi-project arrangements, where
each venture is considered to live in a specific layer of the application.

2.5 Application Layers

As applications fill in intricacy, one approach to deal with that intricacy is to separate the
application as per its duties or concerns. This methodology follows the detachment of concerns
rule and can help keep a developing codebase coordinated so designers can undoubtedly
discover where certain usefulness is implemented[iii]. Layered engineering offers various
benefits past code association, however.

By getting sorted out code into layers, regular low-level usefulness can be reused all through
the application. This reuse is valuable since it implies less code should be composed and on the
grounds that it can permit the application to normalize on a solitary execution, following the
don't rehash the same thing (DRY) guideline.

With a layered design, applications can uphold limitations on which layers can speak with
different layers. This engineering assists with accomplishing epitome. At the point when a layer
is changed or supplanted, just those layers that work with it ought to be affected. By restricting
which layers rely upon which different layers, the effect of changes can be alleviated so a
solitary change doesn't affect the whole application.

Layers (and epitome) make it a lot simpler to supplant usefulness inside the application. For
instance, an application may at first utilize its own SQL Server data set for perseverance, yet
later could decide to utilize a cloud-based constancy procedure, or one behind a web API. In
the event that the application has appropriately typified its steadiness execution inside a
consistent layer, that SQL Server-explicit layer could be supplanted by another one carrying
out a similar public interface.

Notwithstanding the capability of trading out executions in light of future changes in


necessities, application layers can likewise make it simpler to trade out executions for testing
purposes. Rather than composing tests that work against the genuine information layer or UI
layer of the application, these layers can be supplanted at test time with counterfeit executions
that give known reactions to asks for. This methodology regularly makes tests a lot simpler to
compose and a lot quicker to run when contrasted with running tests against the application's
genuine framework.

9|Page
Logical layering is a common technique for improving the organization of code in enterprise
software applications, and there are several ways in which code can be organized into layers.

2.6 Traditional "N-Layer" Architecture Applications

The most common organization of application logic into layers is shown in Figure

Figure 2.3 Typical application layers.

These layers are habitually shortened as UI, BLL (Business Logic Layer), and DAL (Data
Access Layer). Utilizing this engineering, clients make demands through the UI layer, which
associates just with the BLL. The BLL, thus, can call the DAL for information access demands.
The UI layer shouldn't make any solicitations to the DAL straightforwardly, nor should it
interface with perseverance straightforwardly through different methods. Moreover, the BLL
should just collaborate with constancy by going through the DAL[iv]. Along these lines, each
layer has its own notable duty.

One impediment of this conventional layering approach is that aggregate time conditions run
from the top to the base. That is, the UI layer relies upon the BLL, which relies upon the DAL.
This implies that the BLL, which as a rule holds the main rationale in the application, is reliant
on information access execution subtleties (and regularly on the presence of a data set). Testing
business rationale in such an engineering is frequently troublesome, requiring a test data set.
The reliance reversal standard can be utilized to address this issue, as you'll find in the
following area.

Figure shows an example solution, breaking the application into three projects by
responsibility (or layer).

10 | P a g e
Figure 2.4 A simple monolithic application with three projects.

Data Layer
A DAL contains strategies that help the Business Layer to interface the information and
perform required activities, regardless of whether to return information or to control
information (embed, update, erase, etc).

Business Layer

A BAL contains business rationale, approvals or estimations identified with the information.

Despite the fact that a site could converse with the information access layer straightforwardly,
it generally goes through another layer called the Business Layer. The Business Layer is crucial
in that it approves the information conditions prior to calling a strategy from the information
layer. This guarantees the information input is right prior to continuing, and can frequently
guarantee that the yields are right also. This approval of info is called business rules, which
means the guidelines that the Business Layer uses to make "decisions" about the information.

11 | P a g e
Presentation Layer

The Presentation Layer contains pages like .aspx or Windows Forms structures where
information is introduced to the client or information is taken from the user[xii]. The ASP.NET
site or Windows Forms application (the UI for the venture) is known as the Presentation Layer.
The Presentation Layer is the main layer essentially in light of the fact that the one everybody
sees and employments. Indeed, even with an all around organized business and information
layer, if the Presentation Layer is planned inadequately, this gives the clients a helpless
perspective on the framework.

Figure 2.5 Application Layers

12 | P a g e
CHAPTER 3
Functional and Non-functional requirements & Database design

13 | P a g e
3.1 Introduction
A Functional Requirement (FR) is a depiction of the assistance that the product should offer.
It depicts a product framework or its segment. A capacity is only contributions to the product
framework, its conduct, and yields. It very well may be a count, information control, business
measure, client collaboration, or whatever other explicit usefulness which characterizes which
work a framework is probably going to perform. Useful Requirements are additionally called
Functional Specification[v]. Just said, a non-practical necessity is a determination that depicts
the framework's activity abilities and limitations that improve its usefulness. These might be
speed, security, unwavering quality, and so forth

An appropriately planned data set furnishes you with admittance to forward-thinking, exact
data. Since a right plan is fundamental to accomplishing your objectives in working with an
information base, contributing the time needed to get familiar with the standards of good plan
bodes well. Eventually, you are significantly more liable to wind up with a data set that
addresses your issues and can without much of a stretch oblige change.

3.2 Developing the Web Application


In the principal, the requirement for web application structures was advanced by expounding
on the development of the web from a verifiable point of view. We operations of the ASP.Net
web application structure were acquainted with fill in to act as an illustration of such a system.
In this part, will be exhibited utilizing genuine code for a genuine project[ix]. It is in this show,
alongside the past parts, the writer desires to legitimize to himself and to the peruser the
convenience of web advancement systems to check what sort of activities they best suit. This
will be examined in the end.

3.3 The Design Phase


To exhibit the value of a MVC web structure, a model item has been created with .Net(C#).
The creator is an advocate of the form measure-learn input circle of lean beginning up culture,
and what has been created is known as a negligible practical item (MVP). MVPs permit an
engineer or business to deliver something with the center highlights to show and assess to likely
clients or purchasers the estimation of the application. In light of the input, the item would then
be able to be grown further by adding highlights that were required, yet not considered
essential[vi]. This permits the item to have the most elevated venture return and the least
speculation hazard, on the grounds that both customer and engineer discover right off the bat
not to sit around and cash building up a completely included item individuals don't discover
helpful.

The item has been characterized by the proposal creator's customer as an accessibility schedule,
though the creator characterizes it as a group coordinator. Whatever the definition, it will be
focused at different associations and gatherings to improve on the association of individuals
and jobs they need to perform inside some sort of movement. It reclassifies a current item the
creator made for a similar customer's association utilizing C#, by expanding upon the first idea.

14 | P a g e
What was an immediately evolved application for a solitary task running on only one day of
the week, will presently be extensible to any extend characterized by the association's
coordinators to run on at least one days of the week. An endeavor to improve on the current
(UI) will likewise be tried.
The vision for the new accessibility schedule is for it to be more nonexclusive, and
consequently usable by different associations and gatherings. If not promptly adoptable by
others, the expectation the article situated MVC plan of the schedule will make it effectively
extensible to oblige different customisations[xiii].
During the customer meeting stages, necessity gathering reports, use cases, and client stories
were drawn up, and input from past clients was likewise inspected. A portion of those archives
will be accessible to the peruser to show the plan interaction and to represent the possibility of
the application as a rule. Coming up next is a rundown characterizing the different prerequisites
at this phase of the application. The rundown has been condensed to meet the necessities of the
model.

3.4 Functional requirements: (What must the app do)


● Have to make an Employee represent watching abilities coordinated for occupations.
● Have to make a Company represent posting occupations.
● Have to Login with cultivated administrator accreditations for add abilities and classes
● Anonymous clients (without login) can not access Admin, Employee and Company
regions pages.
● One kind of client can not access another client page. Model: Employees can not access
Company pages.

Non-functional requirements: (Features that are needed but not required


to function)
● Adhere to protest orientated standards and utilize a MVC structure for simple
extensibility and support.
● Conform to Latest web standards; HTML5, CSS3, and run on recent versions of
Chrome, Firefox, Safari, IE, and Opera.
● Use C# and SQL Server (required by the client’s hosting provider), and not require
shell access.
● Will use JavaScript or jQuery for some client side input verification.
● Will use English as the source language.
● Provide a responsive UI design for mobile device access.
● Provide a minimal interface to quickly access the system.
● Encrypt passwords stored in the database[xv].

3.5 Use case diagram


Before any code was composed, a utilization case chart was made. A utilization case graph is
an approach to outline different sorts of client collaboration inside the framework. Every
relationship is known as a utilization case and can help modularise the application at the

15 | P a g e
beginning phase of improvement, just as explain the usefulness of the application between the
customer and engineer at an undeniable degree of deliberation.

3.6 Database design


Following the necessities, a SQL Server social data set was planned as per the non-practical
prerequisites of the customer. A data set plan apparatus called SQL Server Workbench was
utilized for this stage. SQl Server Workbench is a visual instrument for designers to rapidly
make social tables utilizing a GUI, at that point send out their tables as data set pattern to be
carried out in the SQL worker. They can likewise interface with existing data sets and perform
questions from inside the editorial manager.

Tables:

16 | P a g e
17 | P a g e
3.7 Table Relationship:

Figure 3.1 Table Relationship

18 | P a g e
CHAPTER 4
Tools Installation & Authentication and Authorization

19 | P a g e
4.1 Introduction
Authentication is the act of approving the character of an enrolled client endeavoring to
access an application, API, microservices or some other information asset. Interestingly,
whenever we are confirmed, approval is tied in with choosing whether an individual is
allowed to play out a given activity on a particular resource[xiv].

When managing admittance to such a touchy information resources, both confirmation and
approval are required. Without both, our danger uncovering data by means of a penetrate
or unapproved access, at last bringing about awful press, client misfortune and likely
administrative fines.

4.2 .net installation and setup:


First install SQL Server then SQL Server Management Studio (SSMS).

Figure 4.1 SQL Server Figure 4.2 SSMS


After successfully installing SQL Server and SQL Server Management Studio, Need to instal
Visual Studio for coding.

Figure 4.3 Visual Studio

4.3 The implementation phase


Now that the client requirements have been laid out, the development environment has been
set up, and a database design has been implemented, a select number of use cases will be chosen

20 | P a g e
to describe the various scenarios, along with the .Net(C#) code. The first example demonstrates
the login functionality.

4.4 Login & Registration

4.4.1 Authentication and Authorization

Authentication and authorization are two closely related concepts, which are used to build
security mechanisms in systems and applications. Information security is the practice of
protecting information from unauthorized access, use or even modification. Confidentiality,
integrity and availability (known as CIA triad) is a model designed to guide policies of
information security within an organization. In this article we are focusing on confidentiality,
which refers to restriction of access to sensitive information that can be achieved by
authentication and authorization.

Authentication allows to verify someone’s identity in the system (e.g. Are you User X in the
system Y?). The following method, based on user and password, is still one of the most
common solutions. However, nowadays there are other methods in use, especially those based
on PKI (Public Key Infrastructure) or biometrics.

Generally, all authentication methods work in the same scenario – user sends some data to
application (or system) which allows to identify him (e.g. username and password, certificate,
finger print), and application verifies if the “user identity” exists in its id store (data base,
trusted certificate store).

Authorization verifies „what you are authorized to do (describes user permissions)” based
on user identity, which was verified in the authentication process. Many applications use roles
to describe user rights (e.g. user in Admin role is allowed to create others users, user in Reporter
role has right to print reports) – after a positive authentication process for user identity roles
are assigned.

4.4.2 Claims-based authorization in ASP.NET Core


At the point when a character is made it very well might be appointed at least one cases gave
by a confided in party. A case is a name esteem pair that addresses what the subject is, not what
the subject can do. For instance, you may have a driver's permit, given by a nearby driving
permit authority. Your driver's permit has your date of birth on it. For this situation the case
name would be DateOfBirth, the case worth would be your date of birth, for instance eighth
June 1970 and the backer would be the driving permit authority[xvii]. Cases based approval,
at its least complex, checks the estimation of a case and permits admittance to an asset
dependent on that esteem. For instance on the off chance that you need admittance to a dance
club the approval cycle may be:

The entryway security official would assess the estimation of your date of birth guarantee and
whether they trust the backer (the driving permit authority) prior to giving you access.An

21 | P a g e
character can contain various cases with different qualities and can contain numerous cases of
a similar kind.

4.4.3 Adding claims checks

Claim based authorization checks are declarative - the developer embeds them within their
code, against a controller or an action within a controller, specifying claims which the current
user must possess, and optionally the value the claim must hold to access the requested
resource. Claims requirements are policy based, the developer must build and register a policy
expressing the claims requirements.

The simplest type of claim policy looks for the presence of a claim and doesn't check the value.

First you need to build and register the policy. This takes place as part of the Authorization
service configuration, which normally takes part in ConfigureServices() in your Startup.cs file.

public void ConfigureServices(IServiceCollection services)


{
services.AddControllersWithViews();
services.AddRazorPages();

services.AddAuthorization(options =>
{
options.AddPolicy("CompanyPolicy", policy =>
policy.RequireClaim("CompanyRequirement"));
});
}

In this case the EmployeeOnly policy checks for the presence of an EmployeeNumber claim on the
current identity.

You then apply the policy using the Policy property on the AuthorizeAttribute attribute to specify
the policy name;

[Authorize(Policy = "CompanyPolicy")]
public IActionResult VacationBalance()
{
return View();
}

The AuthorizeAttribute attribute can be applied to an entire controller, in this instance only
identities matching the policy will be allowed access to any Action on the controller.

22 | P a g e
[Authorize(Policy = "CompanyPolicy")]
public class VacationController : Controller
{
public ActionResult VacationBalance()
{
}
}

4.5 Register :
If a user wants to create an account he must register first. If a user registers then his/her
credential will be stored in the User table. If an employee register his/her claim will be a
Member and if a company will register his/her claim will be Company.

Figure 4.4 Register page

Figure 4.5 User Table

23 | P a g e
4.6 Login :
If a user login with his/her credential, a web application first checks his/her credential if the
credential will valid he/she will login successfully. Then check user claims and redirect them
according to their claim (Employee will redirect to Employee Dashboard, Company will
redirect to Company Dashboard and Admin will redirect to AdminDashboard). If the credential
will invalid then authentication will fail and show the user ”Provided username or password is
incorrect.”

Figure 4.6 Login page

Figure 4.7 Claim base redirection

24 | P a g e
4.7 Authorization:

If a user wants to access another user page then access denied page will be shown (Example:
If Employee wants to access Company’s pages).

Figure 4.8 Access Denied page

25 | P a g e
CHAPTER 5
Project Demonstration

26 | P a g e
5.1 Introduction
Association can welcome a bigger number of applicants than the quantity of opening are
accessible by means of occupation entryway. For business work entries are speedier and
productive approach to fill an opening. The association who don't have devoted enrollment
staff can zero in on their business while site can chip away at filling their opportunities.

We create work entry which will show representative coordinating with abilities with posted
work.
5.2 Menu
Menu will help a user to navigate one page to another. Every Use has a different menu
according to his claim.

If employee login then he/she have following menus:


● Employee Dashboard
● Home
● View profile
● Edit profile

Figure 5.1 Employee Menu

Company has following menus:


● Company Dashboard
● Home
● View Company Profile
● Edit Company Profile
● Post a Job
● View Posted Jobs

27 | P a g e
Figure 5.2 Company Menu

And Admin has following menus:


● Admin Dashboard
● Home
● View Categories
● Add Category
● View Skills
● Add Skill

Figure 5.3 Admin Menu

5.3 Home Page


Every user can visit the home page. An Anonymous user (without login) can also visit the home
page.

In the home page users can see categories and number of Live Jobs, number of Companies,
number of new jobs and additional information. Users can see posted jobs by clicking a specific
category.

28 | P a g e
Figure 5.4 Home Page

5.4 Public pages


Any user without login can visit 3 pages. User can visit -
1. Public Home page
2. Job List page
3. Job Details page
4.
5.4.1 Public Job List page:
Users can see a posted list of jobs with a short description.

29 | P a g e
Figure 5.5 Public Job List Page

5.4.2 Public Job Details page:


Users can see specific job details by clicking a job which is in the job list page.

Figure 5.6 Public Job Details Page

30 | P a g e
5.5 Admin Areas pages:
Admin can access all public pages and admin Dashboard. Admin can see categories and
skills. And can also add new Category and Skill.

5.5.1 Admin Dashboard:


In Admin Dashboard, admin can see Total Company, Total Job Posted Job Posted Today,
Total User etc.

Figure 5.7 Admin Dashboard

5.5.2 Admin Skill Pages:


Only the admin can add skills in the database and users can add those skills to their profile.

Figure 5.8 Admin Skill Pages

31 | P a g e
5.5.3 Admin Category pages:
Only the admin can add categories in the database and users can add those categories to their
profile.

Figure 5.9 Admin Category Pages

5.6 Company Areas pages:


Company can access all public pages and Company Dashboard with view Company Profile,
Edit Company Profile, Post a Job and View posted Jobs.

5.6.1 Company Dashboard:


Company can see Job list which is posted by that company. And goes to Job List page with
click “View Jobs”.

5.6.2 Profile:
Companies have to provide details about that company so that employees can know about
company details.Also company can edit and view company details.

Figure 5.10 Company Profile Page

32 | P a g e
5.6.3 Company Job Post :
After successfully adding the company details the company can post a job so that employees
can see posted jobs and can apply.

Figure 5.11 Company Job Post Page

Also the company can see a job list which is posted by that company and job details.

5.7 Employee Areas pages:


Employees can visit all public pages, Employee Dashboard, Employee Profile Details and Edit
Employee Details page.

5.7.1 Employee Profile:


Employees have to provide his/her profile details after registering. Later employees can edit
and see employee profile details.

33 | P a g e
Figure 5.12 Employee Profile Page

5.7.2 Employee Matching Skills Page :


If an employee visits a public job list page or job details page he/she can see matching skills
with required skills of the posted job. Also employees can see how many skills matched.

Figure 5.13 Employee Matching Skill

34 | P a g e
CHAPTER 6
Conclusion & Future Work

35 | P a g e
6.1 CONCLUSION
Since the presentation of 3G portable organizations, most of individuals have the web on their
cell phones just as on PCs. This has made a consistently online culture. Business and society
have exploited this and accordingly require quick, secure, and viable answers for their
advancement needs. Web structures accomplish this by permitting designers with just halfway
information and experience to cook for these requirements. Because of libraries, aide works,
the MVC design, URI fragment plans, and dynamic record design, making a web application
is quicker, simpler, more viable, and safer when creating utilizing a web system, yet it's
significant it's anything but a total arrangement. There are as yet significant pieces of the
application it won't assist with, for example, object displaying, information base plan,
responsive plan, styling, and front-end scripting. Fortunately, there are devices and approaches
that can facilitate that trouble. The creator recognizes UML, SQL Server, Bootstrap and jQuery
innovations, which relocated these troubles.

It is trusted that this theory has helped a designer or organization inspired by MVC systems to
check their adequacy and reason whether it would be applicable for future undertakings. It is
additionally trusted that it sped up the learning interaction of such a system. The writer himself
has reinforced his comprehension of MVC structures by composing this theory, and is more
certain to prescribe it as an answer for projects comparative in intricacy as the one exhibited in
this theory.

6.2 Future Work


This thesis was proposed for a razor based web app which only works only web applications
but we can develop API based applications so that we can create Desktop Software and Mobile
Apps and so on. If we develop API we need not write logical code for Desktop and Mobile.We
only need to design front end of Desktop and Mobile.

36 | P a g e
References:

i. https://docs.microsoft.com
ii. https://www.c-sharpcorner.com
iii. Min, Wei. "A research on statistical information applied to tourist traffic and
transport system design based on ASP. NET." (2011).
iv. Yague, Mariemma I., et al. "Applying the semantic web layers to access
control." 14th International Workshop on Database and Expert Systems
Applications, 2003. Proceedings.. IEEE, 2003.
v. Zhao, Weiquan, David Kearney, and Gianpaolo Gioiosa. "Architectures for web
based applications." 4th Australasian Workshop on Software and Systems
Architectures (AWSA 2002). 2002.
vi. Lopez, Javier, Rolf Oppliger, and Günther Pernul. "Authentication and
authorization infrastructures (AAIs): a comparative survey." Computers &
Security 23.7 (2004): 578-590.
vii. Chou, Te-Shun. "Security threats on cloud computing
vulnerabilities." International Journal of Computer Science & Information
Technology 5.3 (2013): 79.
viii. Joshi, Bipin. Beginning Database Programming Using ASP. NET Core 3.
Apress, 2019.
ix. Meier, J. D., et al. "Building secure ASP .NET applications: authentication,
authorization, and secure communication." Microsoft Patterns and Practices.
Microsoft Corporation 10.12 (2002): 354-362.
x. Chandersekaran, Coimbatore, and William R. Simpson. "Claims-based
enterprise-wide access control." Proceedings world congress on engineering.
2012.
xi. Villamizar, Mario, et al. "Evaluating the monolithic and the microservice
architecture pattern to deploy web applications in the cloud." 2015 10th
Computing Colombian Conference (10CCC). IEEE, 2015.
xii. Musch, Jochen, and Ulf-Dietrich Reips. "A brief history of Web
experimenting." Psychological experiments on the Internet. Academic Press,
2000. 61-87.
xiii. Forte, Leon. "Building a Modern Web Application Using an MVC Framework."
(2016).
xiv. Cho, Eun Sook, et al. "Object-oriented Web application architectures and
development strategies." Proceedings of Joint 4th International Computer
Science Conference and 4th Asia Pacific Software Engineering Conference.
IEEE, 1997.
xv. Chung, Lawrence, and Julio Cesar Sampaio do Prado Leite. "On non-
functional requirements in software engineering." Conceptual modeling:
Foundations and applications. Springer, Berlin, Heidelberg, 2009. 363-379.
xvi. Jazayeri, Mehdi. "Some trends in web application development." Future of
Software Engineering (FOSE'07). IEEE, 2007.
xvii. Schwabe, Daniel, et al. "Web design frameworks: An approach to improve
reuse in web applications." Web Engineering. Springer, Berlin, Heidelberg,
2001. 335-352.

37 | P a g e

You might also like