0% found this document useful (0 votes)
25 views33 pages

Asm2 GCH211192 GCH1106

Uploaded by

toanvu2032002
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views33 pages

Asm2 GCH211192 GCH1106

Uploaded by

toanvu2032002
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 33

Higher Nationals – Assignment Front Sheet

Student Name/ID Nguyễn Huy Hoàng / GCH211192

Unit Title Unit 30: Application Development

Assignment Number Assignment 2 Assessor Đinh Đức Mạnh


24/04/2024 Date Received 23/04/2024
Submission Date
1st submission
Date Received 2nd
Re-submission Date
submission
Grading grid

P4 P5 P6 M3 M4 M5 D2 D3

Assessor Feedback:
*Please note that constructive and useful feedback should allow students to understand:

a) Strengths of performance
b) Limitations of performance
c) Any improvements needed in future assessments
Feedback should be against the learning outcomes and assessment criteria to help students
understand how these inform the process of judging the overall grade.

Feedback should give full guidance to the students on how they have met the learning outcomes and
assessmentcriteria.

Grade: Assessor Signature: Date:

Resubmission Feedback:
*Please note resubmission feedback is focussed only on the resubmitted work

Grade: Assessor Signature: Date:

07.03-BM/ĐT/HDCV/FE 1/
1/0 33
Internal Verifier’s Comments:

Signature & Date: Hoàng

* Please note that grade decisions are provisional. They are only confirmed once internal
and external moderation has taken place and grades decisions have been agreed at the
assessment.

07.03-BM/ĐT/HDCV/FE 2/
1/0 33
Table of Contents
Software Requirements Specification..........................................................................................................................4

1. Peer Review and Feedback Analysis....................................................................................................................4

Formal questionnaire to reviews the business application, problem definition statement, proposed solution and
development strategy..............................................................................................................................................4

Collect review feedbacks.........................................................................................................................................7

Interpret peer-review feedbacks...........................................................................................................................10

Evaluate any new insights, ideas or potential improvements................................................................................12

2. Application Development...............................................................................................................................13

Provide Folder structure of the application...........................................................................................................13

Provide Source code samples of the application with explanation........................................................................14

Provide Final screenshots of the application..........................................................................................................25

Provide Screenshots of using GitHub or GitLab to manage the source code.........................................................31

3. Application Evaluation...................................................................................................................................31

Review the performance of the application...........................................................................................................31

Conclude whether the application adapts all requirements or it needs to be improved later..............................32

Analyse the factors that influence the performance of the application.................................................................32

Evaluate the strengths and weaknesses of the application...................................................................................32

References.................................................................................................................................................................33

07.03-BM/ĐT/HDCV/FE 3/
1/0 33
Software Requirements Specification

1. Peer Review and Feedback Analysis


Formal questionnaire to reviews the business application, problem definition
statement, proposed solution and development strategy.
To successfully execute the FPTJobMatch project, our team is focused on achieving various tasks
that are in line with the project's overarching goals and defined criteria. We plan to confirm and
validate the completion of these tasks through an official questionnaire, feedback from
colleagues, and the conclusive findings of the pre-production peer review process. These tasks
encompass gaining customer approval for the desired user interface, ensuring the development
of a flawless product within the project's defined scope to address any user-related issues.
Moreover, our objective is to create a product accessible to a global audience, establishing a
secure environment where features cater to both privileged and standard users seamlessly, thus
mitigating potential security risks. Ultimately, the outcome should afford users unrestricted
access to standard e-commerce services.

07.03-BM/ĐT/HDCV/FE 4/
1/0 33
07.03-BM/ĐT/HDCV/FE 5/
1/0 33
07.03-BM/ĐT/HDCV/FE 6/
1/0 33
Collect review feedbacks.

07.03-BM/ĐT/HDCV/FE 7/
1/0 33
07.03-BM/ĐT/HDCV/FE 8/
1/0 33
07.03-BM/ĐT/HDCV/FE 9/
1/0 33
Interpret peer-review feedbacks.
- Feedback 1:

o The pie chart presents a mixed response from users about the FPTJobMatch website’s
interface, with a majority of 54.2% expressing neutrality. Satisfaction levels are evenly
split, with 16.7% of users feeling satisfied and an equal percentage dissatisfied. Notably, a
small fraction of 8.3% indicates a high level of satisfaction, suggesting that while the
interface meets the needs of some, there is a significant portion of users who remain
indifferent or require further improvements to enhance their experience. The chart
underscores the importance of addressing user feedback to optimize interface design.

07.03-BM/ĐT/HDCV/FE 10
1/0 /
33
- Feedback 2:

o The pie chart reflects the survey feedback on desired website features, with a notable
demand for a mobile application. This suggests users prioritize mobile accessibility,
indicating that introducing a mobile app could significantly enhance user satisfaction
and engagement with the website. The chart underscores the importance of adapting to
mobile trends to meet user expectations.

- Feedback 3:

o The pie chart reflects the survey feedback on desired website features, with a notable
demand for a mobile application. This suggests users prioritize mobile accessibility,
indicating that introducing a mobile app could significantly enhance user satisfaction
and engagement with the website. The chart underscores the importance of adapting to
mobile trends to meet user expectations.

- Feedback 4:

o The pie chart reflects the survey feedback on desired website features, with a notable
demand for a mobile application. This suggests users prioritize mobile accessibility,
indicating that introducing a mobile app could significantly enhance user satisfaction
and engagement with the website. The chart underscores the importance of adapting to
mobile trends to meet user expectations.

- Feedback 5:

o The survey results depicted in the pie chart reveal that 41.7% of users find the
information and support on the website to be adequate, while 20.8% consider it very
sufficient. However, there are also 16.7% neutral responses and 20.8% who feel the
support is insufficient. This indicates a need for the website to enhance its user support
and information delivery to fully satisfy its user base. The chart highlights the importance
of addressing user concerns to improve overall satisfaction.

- Feedback 6:

o The colorful pie chart represents user feedback on desired improvements for a website,
showing that 41.7% of users prioritize enhancing the job search feature, while 37.5% wish
for a favorite job saving function, and 20.8% seek better user interface design. This data

07.03-BM/ĐT/HDCV/FE 11
1/0 /
33
suggests that users value efficient job search capabilities and a more intuitive interface,
highlighting these as key areas for website development to improve user experience and
satisfaction.

- Feedback 7:

o The survey’s pie chart indicates that a significant majority, 54.2%, utilize the FPTJobMatch
website primarily for job searching, while 29.2% use it for posting job vacancies, and
16.7% for seeking industry-related information. This data suggests that while job
searching is the predominant use, the website also serves as a platform for employers and
as a resource for industry insights, highlighting its multifaceted utility to different user
groups.

- Feedback 8:

o The pie chart indicates that 75% of survey participants recommend the FPTJobMatch
website for its ample job opportunities and user-friendly features. However, 25% do not
recommend it due to the lack of timely customer support. This feedback highlights the
website’s strengths in providing job options and ease of use, while also pointing out
areas for improvement in customer service to enhance overall user satisfaction. It’s a
valuable insight for the website’s continuous development and user experience
optimization.

Evaluate any new insights, ideas or potential improvements.


Based on the data collected from the survey, I carefully reviewed and outlined some
improvements for the project:

Introducing advanced functions such as notifying application information about devices to users
so they can update information as quickly as possible.

Enhance user engagement by adding ChatBot functionality so users can interact or search for jobs
more easily.

Our project will add a statistics table on the Home page about the job market by day, jobs with
high demand for workers, or the popular salary of each job today.

The strategic modifications are intended to improve the project's overall performance and
enhance user satisfaction, bringing it in line with modern expectations and industry benchmarks.

07.03-BM/ĐT/HDCV/FE 12
1/0 /
33
2. Application Development

Provide Folder structure of the application

The provided illustration displays the hierarchical structure of my application's directory


organization. This layout follows the MVC (Model-View-Controller) concept, offering a
fundamental framework. My primary emphasis will be on the three main directories within this
architecture: Models, Views, and Controllers.

This directory houses the model component, which handles database connectivity to retrieve
data.

07.03-BM/ĐT/HDCV/FE 13
1/0 /
33
These are .cshtml files with built-in Razor syntax (razor engine), (see Razor Page for syntax
written in .cshtml views) organized into folders for each Controller. If the controller's name is
Home, the views are placed in the /View/Home directory, the view file names correspond to the
Controller's Action name, through which it is used to build HTML.

This is our project's Controllers folder: where the classes that will receive incoming requests and
return HTTP Response content are located.

Provide Source code samples of the application with explanation


Model:

a. Location Models:

07.03-BM/ĐT/HDCV/FE 14
1/0 /
33
The "Location" class in this Location Models declares data fields such as ID (int), LocationName
(String), and a one-to-many relationship with the JobListing table.

b. Joblisting Models:

07.03-BM/ĐT/HDCV/FE 15
1/0 /
33
This is the "JobListing" class in JobListing Models. This class declares the data fields of jobs, for
example: ID (int), Title (string), Description (string), CompanyName (name), Position (string), Salary
(string), LocationId (int ), UserId (int) and a one-to-many relationship with the Location table.

Controllers:

a. LocationsController:

This code snippet defines a method called "Index" within a controller, which is responsible for
handling HTTP GET requests for the "Locations" resource. Inside this method, it asynchronously
retrieves data from the database context (_context) representing locations. If the location data is not
null, it renders the "Index" view with the retrieved location data. However, if the location data is null,
it returns an HTTP Problem response indicating that the entity set "ApplicationDbContext.Location" is
null.

07.03-BM/ĐT/HDCV/FE 16
1/0 /
33
This code snippet defines a method called "Details" within a controller, which handles HTTP GET
requests for displaying details of a specific location identified by its unique identifier (id). Inside this
method, it first checks if the provided id is null or if the location database context (_context.Location)
is null. If either condition is true, it returns a "Not Found" response indicating that the requested
resource is not available.

If the id is not null and the location database context is not null, it queries the database to retrieve
the location information corresponding to the provided id. If the location is found, it renders the
"Details" view with the retrieved location data. If the location is not found, it also returns a "Not
Found" response.

This code snippet contains a controller action named "Create" for handling the creation of new
locations. The action is secured with the [Authorize(Roles = "Admin")] attribute, restricting access to
users with the "Admin" role.

For HTTP GET requests, it renders a view to display a form for creating a new location.

For HTTP POST requests, it receives form data, validates it, adds the new location to the database if
valid, and redirects the user to the index page. If there are validation errors, it returns the same view
with the entered data to allow corrections.

07.03-BM/ĐT/HDCV/FE 17
1/0 /
33
This controller action, "Edit," handles HTTP POST requests for modifying existing location data. It
begins by verifying if the provided identifier matches the location being edited; if not, it returns a
"Not Found" response. Upon valid model state, indicating data adheres to validation rules, it
attempts to update the location in the database. If successful, it redirects the user to the "Index"
action. In cases of concurrency conflicts during the update process, it checks if the location still exists;
if not, it returns "Not Found." Any validation errors prompt the return of the form with entered data
for correction.

07.03-BM/ĐT/HDCV/FE 18
1/0 /
33
This controller action, "Delete," handles HTTP GET requests to display a confirmation page for
deleting a specific location. It is restricted to users with the "Admin" role, ensuring access control.
The action first verifies the presence of a valid location identifier (id) and a non-null location database
context (_context.Location). If either condition fails, it returns a "Not Found" response. Upon
successful validation, it retrieves the location information corresponding to the provided id from the
database. If the location exists, it renders the "Delete" view with the retrieved location data;
otherwise, it also returns a "Not Found" response.

b. JobListingsController:

07.03-BM/ĐT/HDCV/FE 19
1/0 /
33
This code snippet defines a controller action named "Index" to handle HTTP GET requests for displaying a
list of job listings. Within the action, it retrieves the current user's identifier from the claims using
User.FindFirstValue(ClaimTypes.NameIdentifier). Then, it queries the database to fetch job listings
associated with the current user's id, including related location information. Additionally, it selects the
user's email address using a tuple structure. Finally, it passes the retrieved job listings to the view along
with the current user's identifier stored in the ViewBag.

This controller action, "Details," handles HTTP GET requests to display detailed information about a
specific job listing. It first verifies the presence of a valid job listing identifier (id) and a non-null job listing
database context (_context.JobListing). If either condition fails, it returns a "Not Found" response. Upon
successful validation, it retrieves the job listing information corresponding to the provided id from the
database, including related location details. If the job listing exists, it renders the "Details" view with the
retrieved job listing data; otherwise, it returns a "Not Found" response.

07.03-BM/ĐT/HDCV/FE 20
1/0 /
33
This controller action, "Create," handles HTTP POST requests to add a new job listing to the system. It
ensures data integrity and protection against CSRF attacks with [HttpPost] and
[ValidateAntiForgeryToken] attributes, respectively. Upon receiving valid form data, it retrieves the
current user's identifier and assigns it to the job listing. The action then adds the job listing to the
database and redirects the user to the "Index" action of the "JobListings" controller upon successful
addition. If there are validation errors, the action returns the same view with the entered job listing data
for correction.

07.03-BM/ĐT/HDCV/FE 21
1/0 /
33
This "Edit" controller action processes POST requests to modify existing job listings. It ensures data
security and CSRF protection while updating the database with validated changes. If successful, it
redirects to the "JobListings" index; otherwise, it returns the edit view for corrections, including location
selection.

07.03-BM/ĐT/HDCV/FE 22
1/0 /
33
This "Delete" controller action handles HTTP GET requests to confirm the deletion of a specific job listing.
It's accessible exclusively to users with the "Employer" role, ensuring role-based authorization. Initially, it
validates whether the provided job listing identifier (id) or the job listing database context
(_context.JobListing) is null, returning a "Not Found" response if either condition is met. Upon successful
validation, it retrieves the job listing information corresponding to the provided id from the database,
including related location details. If the job listing exists, it renders the "Delete" view with the retrieved
job listing data; otherwise, it returns a "Not Found" response.

07.03-BM/ĐT/HDCV/FE 23
1/0 /
33
The "Apply" action redirects users to the "Create" action of the "JobApplications" controller, passing the
job listing ID as a parameter. This enables users to apply for a specific job listing by redirecting them to
the application creation page.

The "AppliedCandidates" action retrieves and displays a list of candidates who have applied for a
particular job listing. It queries the database for job applications associated with the given job listing ID
and constructs a view model containing relevant information such as email, phone number, and
uploaded files. Finally, it returns a view populated with the retrieved data.

c. Database Connection:

07.03-BM/ĐT/HDCV/FE 24
1/0 /
33
The subsequent action involves linking the data to the database. To accomplish this, initiate a connection
to the SQL Server and employ the provided statement retrieved from the "appsettings.json" file.

My database in Microsoft SQL server Management Studio.

Provide Final screenshots of the application


- Home page:

07.03-BM/ĐT/HDCV/FE 25
1/0 /
33
- Location

Location/index:

07.03-BM/ĐT/HDCV/FE 26
1/0 /
33
Location/create:

Location/edit:

07.03-BM/ĐT/HDCV/FE 27
1/0 /
33
Location/detail:

- JobListing screen:

Joblisting/index:

07.03-BM/ĐT/HDCV/FE 28
1/0 /
33
Joblisting/edit:

07.03-BM/ĐT/HDCV/FE 29
1/0 /
33
Joblisting/detail:

Joblisting/AppliedCandidates:

07.03-BM/ĐT/HDCV/FE 30
1/0 /
33
Provide Screenshots of using GitHub or GitLab to manage the source code
Link GitHub: https://github.com/Xuantan2110/ASP.NET.github.io.git

This is the code interface after it has been uploaded to GitHub. We worked on the project together through
Github.

3. Application Evaluation

Review the performance of the application.


The overall performance of our TopCV website is very good, with the ability to post jobs and full
admin functions. Job seekers can easily search for jobs according to their needs through our website
as well as track detailed information of posted jobs. However, there is a feature to note: it is
necessary to post detailed photos of each job as well as upload photos of job seekers.

The current functions of our TopCV website are simply "add, edit, delete, search, upload files".
However, those functions launch without errors. Besides, the limitation of those functions is that job
seekers can only search for general jobs. We are aware of that, so in the future we will modify and
improve to give users the best experience.

07.03-BM/ĐT/HDCV/FE 31
1/0 /
33
Conclude whether the application adapts all requirements or it needs to be improved later.
After completion, the FPTJobMatch (TopCV) website has successfully met most of the requirements
set by customers. Admins, with admin status, have permissions to authorize requests and review lists
of employee and job seeker accounts. However, one notable limitation that arose in the system was
the lack of ability for administrators to modify passwords for both Seeker and Employer.

In contrast, users assigned to the Employer role enjoy access to a variety of interfaces and features.
This role grants them privileges such as seeing who has applied to their jobs, Employers can also
add, edit and delete jobs.

For users with the role of "Seeker", the interface facilitates seamless exploration of job details,
search for jobs according to their needs, they can also apply for any job. Besides, they will have to
upload their information (CV) to be able to apply for the job.

Analyse the factors that influence the performance of the application.


Absence of testing: We haven't conducted comprehensive testing on all functionalities yet, as our
product was completed only a few days ago. Consequently, there might still be some errors present.

Site performance: If a large number of users are present, the system may experience congestion and
inefficiency.

Data Caching: To avoid unnecessary database queries, utilize caching methods to store frequently
accessed data. ASP.NET offers a range of caching techniques, including distributed caching and in-
memory caching.

Evaluate the strengths and weaknesses of the application.


a. Strengths:

- When users first visit the website, they will find the website very easy to understand and
use because of its inherent simplicity.

- The functions are simple and easy to use.

- Each account will have different roles and different functions. Therefore, there will be functions
that some accounts cannot perform. For example, an account with the "seeker" role can only
view job details and apply, it cannot "add, edit, delete" the job because that is what the
account does. has the role "employer".

07.03-BM/ĐT/HDCV/FE 32
1/0 /
33
b. Weaknesses:

- The user interface is too simple and has no creativity.

- Too few functions.

References
Wikipedia, n.d. https://en.wikipedia.org. [Online]
Available at: https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
[Accessed 23 04 2024].

Wikipedia, n.d. https://en.wikipedia.org. [Online]


Available at: https://en.wikipedia.org/wiki/Visual_Studio
[Accessed 23 04 2024].

XuanThuLap, n.d. https://xuanthulab.net. [Online]


Available at: https://xuanthulab.net/asp-net-core-mvc-tao-ung-dung-mvc-dau-tien-c-csharp.html
[Accessed 23 04 2024].

07.03-BM/ĐT/HDCV/FE 33
1/0 /
33

You might also like