CS6004NI Application Development Report
CS6004NI Application Development Report
Group Name
SN Student Name (Group) College ID University ID
1 Amish Budhathoki (C3) NP01CP4A190188 19030706
2 Apson Sapkota (C3) NP01CP4S210277 20048831
3 Sakshi Gupta (C3) NP01CP4S210071 20049006
4 Sarthak Pradhan (C3) NP01CP4S210330 20049028
5 Siddhartha Pradhan (C3) NP01CP4S210078 20049051
I confirm that I understand my coursework needs to be submitted online via MySecondTeacher under the
relevant module page before the deadline in order for my assignment to be accepted and marked. I am
fully aware that late submissions will be treated as non-submission and a mark of zero will be awarded.
Link of system:
https://drive.google.com/file/d/1fw4bvduOWgjhNOvqr_LScbZVRIg4UoLV/view?usp=sha
ring
Acknowledgment
We would like to express our sincere gratitude to our module leader, Mr. Samyush
Maharjan, for their unwavering support and guidance throughout the completion of the
coursework. Your expertise in the subject matter, as well as your dedication to helping us
succeed, has been invaluable.
Also, we would like to gratefully thank Mr. Abhishek Humagain, our teacher and
supervisor of the group coursework for guiding us about the module contents, providing
valuable learning resources, and your dedication to teaching us and clearing out our
confusion. Your constructive feedback and insightful comments have challenged us to
push the boundaries of our knowledge and abilities. Your encouragement and motivation
have inspired us to strive for excellence and to always give our best effort.
We would also like to extend our thanks to the teaching assistants and staff who have
contributed to making this course a success. Your hard work and dedication have not
gone unnoticed.
Thank you once again for your exceptional leadership and for making this learning
experience a memorable one. We are truly grateful for everything you have done to
support us in achieving our academic goals.
Table of Contents
1. Introduction ................................................................................................................. 1
4.3.2. Models.......................................................................................................... 16
4.4.2. Models.......................................................................................................... 25
7. Testing ...................................................................................................................... 40
List of Tables
Table 1: Software Architecture: Components of Clean Architecture ............................. 12
Table 44: Test Case 25: Renting with damage cost not paid ........................................ 94
Table 46: Test Case 27: Registering with empty field ................................................... 97
1. Introduction
The assigned group work consists of 30% of the total module grades of the module
“Application Development”. This group work aims towards building a web-based
application with specific requirements and features along with the coordinative
collaboration from the team members. The motive of this assignment is to create a vehicle
renting management system for the company “Hajur ko Rentals”.
The developed application must be able to support its vehicle renting operations as
mentioned and should be developed in C# programming language and the .NET Core
Framework. The vehicle rental management system must consist of specific requirements
mentioned by the company. The development of the features must be specified for 3
different users, the admin, the staff, and the customers. The admin must be able to handle
operations such as adding new staff and assigning their roles, changing passwords, rates
of the vehicles, and many more. The staff members must be able to add/remove cars for
rent, validate client requests, publish offers, and change their passwords. The customer
must and should be able to create an account to access the features of the system. Active
verification is required for both the staff and the customer.
The main objective of this project is to create a vehicle renting management system to
handle the inventory, rent records, billing, view car details, and report damaged cars while
under rental, role assignment for the rental service company. This system shall help them
manage rental records of customers, vehicle details and their condition, customer details
and rental reciprocals, and staff’s assigned tasks accordingly. The designed system
should consist of login and registration for customers and also their authorization.
1
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
2. Program Execution
Project setup instructions are documented in a document called a project setup guide. It
will normally include the actions to take and the recommended resources and
technologies to get the project off the ground. A project's success hinges on everyone's
shared understanding of the first steps, which is why a setup guide is so important. In
order to execute the program, these instructions should be carefully followed:
1. Install Microsoft SQL Server and SQL Server Management Studio as a database
service provider.
2. Install Visual Studio 2022 and .NET Core 6 for ensuring framework versioning while
program execution.
3. Download the project from the submitted link or clone from the repository.
4. Open the solution file in Visual Studio 2022.
• Navigate to the appsettings.json file and adjust the connection string as stated in
the below pictorial representation.
2
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
3
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
4
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
7. The next step is to migrate the scripts from the code to the database, so the following
command is used to update the database.
update-database
Hence, the project is set up and instantiated in a local environment at its local port with
proper migrations and database connections.
5
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
3. Solution Description
The solution description for designing and implementing each of the features are outlined
below based on their numbering:
Feature 1
The first step was to seed the admin during migration and program execution, further on
a section to define the index of staffs was established and a basic CRUD implementation
was done so as to add a new user to the database following the identity’s function of
UserManager and RoleManager to create a user and further on assign roles to them.
Similarly, the change password function was also inherited from the UserManager and
the passwords were changed as per validations from the old and new password.
Feature 2
Similarly, a basic CRUD operation for cars and offers were validated through the
Repository Pattern. Again, the same way to examine the logged in user’s information from
the SignInManager was used to extract the details of the logged in user and the
UserManager’s function to change password was executed. For validation of client
requests, the logged in staff was displayed all the list of pending requests and a button to
accept or reject the request was validated.
Feature 3
For a logged in customer, a list of available cars is displayed, and their respective details
are also shown. When requesting a rental, the system firstly examines if the customer
has validated their Licenses and Citizenships or not and processes the request
accordingly so as the rental data are then stored in the database. Implementing the
cancellation feature included removal of the rental data from the database and making
the rented vehicle on the available status.
6
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Feature 4
As a table to define rental history was created, data were thusly manipulated to display
the sales of each vehicle along with the customer’s details and rental history. Group By
functions were applied in the LINQ query to extract and fetch sales details by joining them
accordingly with the vehicle and customer in each instance. As rental history requires
action from a member of staff, details of the staff who approved or returned the rent was
also stored in the database.
Feature 5
Customers can register themselves to the system through the registration page which
allows them to enter their basic details. Upon registration, the UserManager was called,
and a user was created through its method. Further on, email confirmations were also
sent to the respective customer so as to approve their registration through the SMTP
procedures synced with the code. Similar processes of changing password were
implemented in the following feature as well.
Feature 6
Once a staff or an admin approves the rental request of the customer, an email is sent
regarding successful rental and thus the logged in user can also view out the accepted
rent at their Accepted Rental Stories tab to view the details of the vehicle and approver.
For special offers, they are joined along with the vehicle so as to define the offer presented
in the vehicle.
Feature 7
Once a vehicle is requested for rental or accepted, a flag status of IsAvailable is set to
false, till the rental request is rejected, cancelled or accepted rent is returned. So, in the
available vehicle lists, the vehicles only with a true availability status is displayed.
7
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Feature 8
The following feature is implemented as per data manipulations from the rental details
table. To display the vehicles currently on rent, the RentalStatus column is examined to
view the vehicles currently on rent. Similarly, the vehicles with a true availability status
are checked to show all the currently available vehicles. To display rental history between
cars, the same table is optimized to the group by function to view total number of rents
for each vehicle.
Feature 9
Similar process to the above step, the same table of Rental Details are utilized and are
grouped by as per the customer’s identifier to view the total number of rents executed by
each of the customer along with their last rental date.
Feature 10
When an accepted rent is displayed in the customer’s tab, a list of currently rented
vehicles is displayed along with the details of the rent and vehicle. Again, a damage
request function is applicable only for currently rented vehicles which then adds data of
the damage description to the respective table linking with the rented data.
Feature 11
The damage request is then processed by the staff to view the details of the damage and
the staff then estimates the repair cost for the damage done. This then stores details of
the staff who processed the request and the cost details to the respective table. To
process function of unpaid bills, the payment status column is added, and it is processed
further on during the customer’s rent.
8
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Feature 12
The following feature is also implemented based on the damage request table so as to
view the damage details and thus joined with the rental table followed by the vehicles and
customers table to view the customer who rented the vehicle and the vehicle details.
Feature 13
As the development focused on physical payment procedure, all the payment statuses
were set to offline status once the rent was returned and the damage request was paid
as per the staff’s approval.
Feature 14
The functionality feature follows the same pattern of registration while entering their email
address, phone number and residential address. Further on, on the profile section, the
customer is opted to input their driving license and citizenship papers by which the system
them evaluates the selected files and stores in the local storage. This is a mandatory
process before vehicle rental as the rental process requires examining the customer’s
attributes such as license and citizenship numbers before processing the request.
Feature 15
Following the implementation of the above feature, input fields for type of file is set and
acceptance of files are only set up to .pdf or .png extensions. The image size was also
validated as per examination of the selected file and thus validations were done to display
an error if it exceeded a size of 1.5MB.
9
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
4. Software Architecture
Software architecture is an architectural pattern that reveals the system's structure while
concealing implementation details and defining how the elements and components of a
system interact.
When it comes to development, the application must also adhere to a set of guidelines
describing its structure and organization. As the subsequent.NET Core framework
includes an MVC architectural pattern, it facilitates the definition of a holistic solution
based on logically connected and consistent principles, concepts, and attributes. In this
instance, MVC stands for Model View Controller, and their corresponding explanations
are provided below.
10
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Model: It corresponds to all the data-related logic that the user works with.
View: It corresponds to all the UI logic and front-end view of the application.
Implementing use cases with minimal coupling is a primary goal of clean architecture.
Use cases provide a high-level organizing structure that is abstracted from the specifics
of frameworks and technologies. Domains, in this sense, are the topics on which a
currently-under-development application focuses. The entities or models around which
an application is created remain fundamental to clean architecture, as does the business
logic, its implementation, and subsequent practices.
In Clean Architecture, the Core refers to the intersection of the Domain and Application
layers. These layers include the logic and rules that govern the business. Because of this,
the Presentation and Infrastructure layers are mere details, and the business layers
should not rely on them. The traditional dependency of business logic on data access and
other infrastructure issues has been inverted, with infrastructure and implementation
details now being dependent on the Application layer. To do this, abstractions (or
interfaces) are specified in the Application layer, while types are created in the
infrastructure layer to provide their implementation. Core does not rely on any higher-
level abstractions and all dependencies are inverted there. Both Infrastructure and
Presentation rely on Core, although neither is necessary for the other.
11
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
12
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
13
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
The following heading represents all the list of classes defined in the program execution
along with their purposes.
4.3.1. Controllers
ASP.NET Core MVC Controllers are responsible for directing the execution flow of an
application. A controller is responsible for delivering the response to a request made to
an MVC application when a user requests a page. It is a class that implements the API
defined operations of an application.
Account Controller
Home Controller
The following controller is defined to navigate the user to their respective home landing
pages and dashboard so as to display the rental system and processes.
Rental Controller
The following controller is exhibited in two areas, one for users to provide their renting
request and view details of the rent along with acceptance and returns and the next for
admin or staff side so as to present their action on the respective rent, either to accept,
reject or cancel.
14
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
History Controller
The following controller is defined so that the user may visualize all the history of their
rents, which may be the rents that they have returned or the rents that are currently on.
The purpose of the following controller is to operate requests on a rented vehicle damage
by the customer. It is also then processed by the admin or staff to handle other attributes.
User Controller
The purpose of the following controller is to define an index of list of all users of the system
along with their rental history.
Vehicle Controller
The purpose of the following controller is to operate on the functions of vehicle such as
creating, editing, updating and deleting an instance of a vehicle.
Profile Controller
The following controller is utilized so as to update the logged in user’s profile such as their
basic details and change passwords and also define a tab to add documents such as
licenses and citizenship for the case of a logged in customer.
15
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
4.3.2. Models
A Model is the representation of the data being posted to the controller or the API, and
the data being worked on in a view, or the representation of the domain-specific entities
operating in the business tier.
Rental To store and define a rental request from a user regarding a vehicle.
16
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Images
Id
ProfileImage
ImageURL
VehicleId
Customers
Id
CitizenshipNumber
Vehicles
Rentals
CitizenshipURL Id
Id
LicenseNumber Brands
Model
VehicleId Id
LicenseURL Color
UserId Name
ExpirationDate PlateNumber
RequestedDate Description
UserId PricePerDay
StartDate Image
Description
EndDate ImageURL
DamageRequests Features
ReturnedDate IsActive
Id
BrandId
ActionDate CreatedDate
RentalId
OfferId
IsApproved CreatedBy
RepairCost
IsAvailable
IsReturned LastModifiedDate
DamageDescription
CreatedDate
RentalStatus LastModifiedBy
IsPaid
CreatedBy
PaymentStatus
ApprovedBy
LastModifiedDate
ActionBy
IsApproved
Offers
Users Id
Id Name
Discriminator Description
FullName Discount
Image StartDate
ImageURL EndDate
UserRoles Address IsExpired
UserId
State CreatedDate
RoleId
UserName CreatedBy
Discriminator
NormalizedUserName LastModifiedDate
Email LastModifiedBy
NormalizedEmail
Roles EmailConfirmed
Id PasswordHash Staffs
Discriminator Id
SecurityStamp
Name UserId
ConcurrencyStamp
NormalizedName PhoneNumber
17
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
The following section defines all the detailed aspects of the methods present in a
controller and the properties of a model.
4.4.1. Controllers
Account Controller
HTTP
Method Name Description
Request
Register Retrieves a new view for user registration.
Register Retrieves a new view for confirming a registration
Confirmation process.
GET
Email Retrieves a new view indicating successful registration
Confirmation via email confirmation.
Login Retrieves a new view for users to log in to the system.
Handles user or customer registrations processing user’s
Register
requested details to begin registration transaction.
Handles user’s log in to the system as per session based
POST Login
signing in to authorize the user
Handles user to log out the currently logged-in user and
Logout
redirects them to the home page.
18
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Home Controller
HTTP
Method Name Description
Request
Retrieves data from services for brands and available
Index
vehicles to display the view on the home page.
GET
Retrieves the details of a vehicle as per a specified to
Detail
returns a view with the selected vehicle’s information.
Rental Controller
HTTP
Method Name Description
Request
Retrieves a vehicle by its identifier and displays a rental
GET Rental form as per the vehicle and rental price, also handling
any customer’s pending damage requests.
Processes a rental request by calculating the rental price
based on the vehicle type, user role, and rental duration,
POST Rental and adds the rental to the database. It also updates the
availability status of the vehicle and redirects the user to
the homepage with a success message.
History Controller
HTTP
Method Name Description
Request
Retrieves the rental history of a user who has requested
GET Requested a rental in the car rental system and returns the rental
history view with rental details.
19
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Vehicle Controller
HTTP
Method Name Description
Requests
Retrieves all brands, vehicles, and offers from the
database by joining them based on their foreign key
GET Index
relationships and returns the view with the resulting list
as a model.
20
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
User Controller
HTTP
Method Name Description
Requests
Customer Retrieves all sets of customers of the system.
Retrieves specified data of the customer such as their
Details
GET detailed information and rental history.
Staff Retrieves all sets of staff present in the system.
Register Retrieves a staff registration view to add a new staff.
POST Register Stores a new data of staff registration to the system.
21
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Sales Controller
Damage Request
Offer Controller
22
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Brand Controller
HTTP
Method Name Description
Requests
Retrieves all the available brands of the system and
Index
returns the view with the resulting list as a model.
Retrieves the details of a particular brand by its ID, along
Details
with the details to be passed to the view for display.
Retrieves a brand by its identifier, and if the ID is empty,
GET creates a new object and returns the view for adding a
Upsert new brand. If the ID is not empty, it returns the view for
editing the existing brand with the corresponding
identifier.
Retrieves a brand by its identifier and displays it in a
Delete
view for deletion.
Receives a brand object, extracts information from it,
POST Upsert and adds or updates it to the database. If the ID of the
vehicle is empty, it creates a new brand, sets some
23
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Profile Controller
HTTP
Method Name Description
Requests
Retrieves the currently logged in user’s information
Profile
such as their names, phone number and profile image.
Retrieves the currently logged in customer’s
information related to customer documents, such as
GET Document their citizenship and license numbers, expiration dates,
and URLs for the documents, and passes it to a view
for display.
Retrieves a new view to allow the user to change their
Password
password.
Returns an updated set of profile to the user based on
Profile
the user’s action for changes.
Returns an updated sets of documents as per addition
Document
POST and modification by the logged in customer.
Returns a change in password encryption for the
Password logged in user so as to use it the next session to sign
into the system.
24
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
4.4.2. Models
A property is a member that provides a flexible mechanism to read, write, or compute the value of a private field, allowing
data to be accessed without compromising the safety or flexibility of methods.
User Model
25
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Brand Model
26
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
27
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Customer Model
28
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
29
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Offers Model
30
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Rental Model
31
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
32
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Vehicle Model
33
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
34
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
5. Individual Experiences
Completing the group assignments presented a significant challenge, but the results were
well worth the effort. It demanded everyone in the team to work together, communicate
clearly, and manage their time well. Everyone on the team knew what they were supposed
to do and how their work would affect the whole. Therefore, we accomplished our mission
by establishing reasonable objectives, sticking to strict deadlines, and always keeping
lines of communication open. The group's sense of pride and solidarity grew as they
completed the project together.
Front End ✓ ✓ ✓ ✓
SQL ✓ ✓
Testing ✓ ✓
Backend ✓ ✓
Documentation ✓ ✓ ✓ ✓ ✓
35
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
It has been both thrilling and demanding to work on a web app for vehicle rental as a first-
time front-end developer. To design a user interface that is both beautiful and
straightforward, I've had to familiarize myself with new tools and techniques, such as
HTML, CSS, and JavaScript. It feels good to know that people will be able to use the
things I've designed. However, there have also been times of frustration when my code
didn't function as intended or when I couldn't figure out how to fix a problem. Developing
a useful web application requires patience, careful attention to detail, and close
cooperation with other team members, all of which I have learned the value of via this
experience. I enjoyed working with the team and the support for HTML5 form types
including email, URL, numeric input, date selection and selection and search is a feature
I really appreciated in ASP.NET while integrating Razor pages.
36
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
As the UI and frontend developer, database administrator, and a key member of our web
project team, I have been instrumental in bringing our project to life. My responsibilities
have been diverse and have included everything from designing the database schema to
developing an intuitive UI and seamlessly integrating it into the system through frontend
development. The importance of these tasks cannot be overstated, as they have been
fundamental in ensuring that our users are able to access the required data in a clear,
concise, and easily navigable manner.
To achieve these goals, I have had to develop a deep understanding of the data flow,
data handling, and database schema, which has allowed me to create an interface that
is both user-friendly and highly functional. Additionally, my experience in UI and frontend
development using Bootstrap has been vital in the creation of a smooth and intuitive user
experience.
Throughout the project, I have worked closely with the backend developers to identify and
address any bugs that have been found, resulting in an enhanced system performance
and scalability. Though there have been some challenges along the way, such as
resolving issues with database queries and data manipulation, I have found these
obstacles to be an opportunity to hone my skills and further develop my knowledge of
database design concepts and UI development.
Overall, my versatile skill set and deep understanding of the intricacies of database
design and UI and frontend development have proven to be invaluable to the project's
success. It has been a rewarding experience to work with such a dedicated team and to
contribute to the creation of a web project.
37
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
As my team's ASP.NET back-end developer and quality assurance specialist, I've gotten
an inside look at how our web app came to be. In addition to writing and maintaining the
server-side code, I was also tasked with testing and fixing bugs in the program. This has
necessitated that I have an excellent grasp of the application architecture and a keen eye
for spotting problems. It's satisfying to know that my work as a developer has helped
improve our product and that I can pinpoint and eliminate errors with relative ease. But
there have also been times of frustration when I've been unable to reproduce a problem
or figure out how to fix a particularly tricky one. In sum, I've learned the value of a well-
rounded skill set and the significance of working closely with my teammates to produce a
superior result through this experience. Out of all the tasks I had handled, I had gained
much knowledge regarding maintaining a proper flow of the application and handling all
the user authentication and authorization process. Even if it’s a very common and basic
feature, I enjoyed working on validating user’s request for registration, login, log out and
profile management.
As my prior experience with clean architecture, the clean architecture was chosen as
software architecture along with the MVC application framework. I took an active role in
every possible part of the project's development from helping with handling HTTP
requests, developing controllers, and implementing the repository pattern and services to
performing SQL queries through LINQ and Lambda and validating response. Alongside
38
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
the backend development, I was also actively involved in managing data flow from
Backend to the Front End. Following the completion of development, I was involved in
fixing the issues highlighted by my teammates to make sure everything worked as
intended.
In terms of the things I've learned, I believe that I've come a long way as a .NET developer
thanks to this whole project that allowed me to improve on a variety of skills including
enhanced critical thinking, researching capabilities and superior debugging efficiency.
Throughout the phases of development, I learned valuable lessons about developing full-
pledged applications in the real world. The significance of soft skills in development was
the most significant insight I gained from this educational experience. As a developer, I'm
constantly reminded of the significance of "Soft Skills," and as this project has progressed,
I've come to appreciate how crucial it is for an individual to be able acknowledge their
mistake, request for assistance, when necessary, keep the lines of communication open,
and work collaboratively with teammates to resolve problems.
39
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
7. Testing
Run Program
Test No 1
Objective To run the program.
Action The run button was clicked in Visual Studio 2022.
Expected Result The program will run successfully.
Actual Result The program ran successfully.
Conclusion The test was successful.
40
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
41
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Admin Login
Test No 2
Objective To log in as admin.
Action → The login link was clicked on the navigation menu.
→ The login form was filled with valid credentials.
→ The login button was clicked.
Expected Result The admin will be logged in.
Actual Result The admin was logged in.
Conclusion The test was successful.
42
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
43
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Customer Registration
Test No 3
Objective: To register as a customer.
Action: → The register link was clicked on the navigation menu.
→ The registration form was filled with valid details.
→ The register button was clicked.
→The registration link was confirmed via email.
Expected Result: The user will be registered as a customer.
Actual Result: The user was registered as a customer.
Conclusion: The test was successful.
44
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
45
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
46
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Customer Registration
Test No 4
Objective To log in as customer.
Action → The login link was clicked on the navigation menu.
→ The login form was filled with valid credentials.
→ The login button was clicked.
Expected Result The customer will be logged in.
Actual Result The customer was logged in.
Conclusion The test was successful.
47
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
48
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Staff Registration
Test No 5
Objective To register a staff.
Action → The users menu was clicked and the staffs was clicked by
the admin.
→ The add a new staff button was clicked.
→ The staff details were filled.
→ The register button was clicked.
Expected Result The staff will be registered.
Actual Result The staff was registered.
Conclusion The test was successful.
Table 24. Test Case 5: Staff Registration
49
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
50
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Staff Login
Test No 6
Objective To login as staff.
Action → The login link was clicked on the navigation menu.
→ The login form was filled with valid credentials.
→ The login button was clicked.
Expected Result The staff will be logged in.
Actual Result The staff was logged in.
Conclusion The test was successful.
51
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
52
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Add Brands
Test No 7
Objective To add brands.
Action → Under the store menu, the Brands menu was clicked.
→ The add a new brand button was clicked.
→ The create button was clicked.
Expected Result The brand will be added.
Actual Result The brand was added.
Conclusion The test was successful.
53
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
54
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
55
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
View Brands
Test No 8
Objective To view brands.
Action → Under the store menu, the Brands menu was clicked.
→ The info icon respective to vehicle was clicked.
→ The details were displayed.
Expected Result The brand details will be displayed.
Actual Result The brand details were displayed.
Conclusion The test was successful.
56
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
57
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Edit Brand
Test No 9
Objective To edit brand details.
Action → Under the store menu, the Brands menu was clicked.
→ The edit icon respective to brand was clicked.
→ The details were edited and saved
Expected Result The brand details will be edited.
Actual Result The brand details were edited.
Conclusion The test was successful.
Table 28: Test Case 8: Edit Brand Detail
58
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
59
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Delete Brand
Test No 10
Objective To delete brand.
Action → Under the store menu, the Brands menu was clicked.
→ The delete icon respective to brand was clicked.
→ The delete button was clicked.
Expected Result The brand details will be edited.
Actual Result The brand details were edited.
Conclusion The test was successful.
Table 29: Test Case 12: Delete Vehicle
60
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
61
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Add Vehicles
Test No 11
Objective To add vehicles.
Action → Under the store menu, the Vehicles menu was clicked.
→ The add a new vehicle button was clicked.
→ The create button was clicked.
Expected Result The brand will be added.
Actual Result The brand was added.
Conclusion The test was successful.
62
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
63
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
64
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Test No 12
Objective To view vehicles details.
Action → Under the store menu, the Vehicles menu was clicked.
→ The info icon respective to the vehicle was clicked.
Expected Result The vehicle details will be displayed.
Actual Result The vehicle details were displayed.
Conclusion The test was successful.
65
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
66
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Test No 13
Objective To edit vehicle details.
Action → Under the store menu, the Vehicles menu was clicked.
→ The edit icon respective to vehicle was clicked.
→ The details were edited and updated.
Expected Result The vehicle details will be edited.
Actual Result The vehicle details were edited.
Conclusion The test was successful.
67
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
68
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
69
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Test No 14
Objective To delete vehicle.
Action → Under the store menu, the Vehicles menu was clicked.
→ The delete icon respective to vehicle was clicked.
→ The delete button was clicked.
Expected Result The brand details will be deleted.
Actual Result The brand details were deleted.
Conclusion The test was successful.
70
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
71
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Creating Offer
Test No 15
Objective To create offers.
Action → Under the store menu, the Offers menu was clicked.
→ The add a new offer button was clicked.
→ The create button was clicked.
Expected Result The offer will be added.
Actual Result The offer was added.
Conclusion The test was successful.
72
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
73
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
74
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Test No 16
Objective To view offer details.
Action → Under the store menu, the Offers menu was clicked.
→ The info icon respective to the offer was clicked.
Expected Result The offer details will be displayed.
Actual Result The offer details were displayed.
Conclusion The test was successful.
Table 35: Test Case 12: View Offer Detail
75
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
76
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Delete Offer
Test No 17
Objective To delete vehicle.
Action → Under the store menu, the Vehicles menu was clicked.
→ The delete icon respective to vehicle was clicked.
→ The delete button was clicked.
Expected Result The offer details will be deleted
Actual Result The offer details were deleted.
Conclusion The test was successful.
77
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
78
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Test No 18
Objective To upload documents.
Action → Under the username, the My Documents menu was clicked.
→ The delete icon respective to vehicle was clicked.
→ The delete button was clicked.
Expected Result The documents will be updated.
Actual Result The documents were updated.
Conclusion The test was successful.
79
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
80
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Test No 19
Objective To rent a vehicle.
Action → In the home page the details button on the vehicle to be
rented was clicked.
→ The rent this button was clicked.
→ The dates were entered, and the button was clicked.
Expected Result The vehicle will be requested for renting.
Actual Result The vehicle was requested for renting.
Conclusion The test was successful.
81
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
82
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
83
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Test No 20
Objective To approve vehicle renting.
Action → In the navigation bar under the rental stories the requested
rents menu was clicked.
→ The approve button was clicked.
→ A mail is sent to customer.
Expected Result The vehicle will be approved for renting.
Actual Result The vehicle was approved for renting.
Conclusion The test was successful.
84
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
85
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Test No 21
Objective To view currently renting vehicle renting by admin and
customer.
Action Admin
→ In the navigation bar under the rental stories the current rents
menu was clicked.
Customer
→ In the navigation bar under my history the currently rented
menu was clicked.
Expected Result The currently renting vehicles will be displayed.
Actual Result The currently renting vehicles were displayed.
Conclusion The test was successful.
Table 40: Test Case 21: Currently Renting Vehicles
86
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
87
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Returning Vehicle
Test No 22
Objective To return vehicle of a customer
Action → In the navigation bar under the rental stories the current rents
menu was clicked.
→ The return button was clicked.
Expected Result The vehicle will be returned and available for renting.
Actual Result The vehicle was returned and available for renting.
Conclusion The test was successful.
88
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
89
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Test No 23
Objective To fill damage request form.
Action → In the navigation bar under my history the currently rented
menu was clicked.
→ The fill damage form button was clicked.
→ The submit a request button was clicked.
Expected Result The damage request will be notified.
Actual Result The damage request will be notified.
Conclusion The test was successful.
90
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
91
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Test No 24
Objective To update damage details.
Action → In the navigation bar the Damage Request menu was clicked.
→ The info icon respective to the request was clicked.
→ The cost was entered, and the payment done was selected
accordingly.
→ The update button was clicked.
Expected Result The damage request will be updated.
Actual Result The damage request will be updated.
Conclusion The test was successful.
92
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
93
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Test No 25
Objective To rent vehicle while damage cost is not paid.
Action → In home page the details button of the respective vehicle was
clicked.
Expected Result The customer will not be able to rent.
Actual Result The customer was not able to rent.
Conclusion The test was successful.
Table 44: Test Case 25: Renting with damage cost not paid
94
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Test No 26
Objective To login with invalid credentials.
Action → The login form was filled with invalid credentials and the login
button was clicked.
Expected Result An invalid message will be displayed
Actual Result An invalid message was displayed
Conclusion The test was successful.
95
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
96
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Test No 27
Objective To register with empty fields.
Action → The registration form was filled with one empty field and the
register button was clicked.
Expected Result An invalid message will be displayed alongside the empty field.
Actual Result An invalid message was displayed alongside the empty field.
Conclusion The test was successful.
97
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
98
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
Test No 28
Objective To view stats and sales of system.
Action → The sales menu was clicked on the navigation bar.
Expected Result The sales and stats will be displayed.
Actual Result The sales and stats will be displayed.
Conclusion The test was successful.
Table 47. Test Case 28 - Sales and Stats
99
19030706 | 20048831 | 20049006 | 20049028 | 20049051
CS6004NI Application Development
8. Conclusion
Our group was tasked with a complex project - developing a management system for a
Rental system that can handle inventory, rentals, rental requests, damages, and offers
using C# programming language and .NET technology. We found ourselves facing
challenges early on as we navigated the unfamiliar territory of C# programming and .NET
technology. However, our tutor and lecturer were a great source of support, providing us
with resources and guidance that helped us understand the technology better.
As we delved deeper into the project, we encountered roadblocks that made the
development process more challenging. But instead of giving up, we turned to research
and collaboration to overcome these obstacles. With each challenge we overcame, we
grew more confident in our abilities to develop a robust and efficient management system.
Despite the enormity of the project, we managed to complete and submit it on time. We
put in a tremendous amount of effort and worked tirelessly to ensure the project was not
only functional but also aesthetically pleasing and user-friendly.
Overall, the experience of creating a web application using C# and .NET technology was
an invaluable learning opportunity for us. We gained a wealth of knowledge and skills,
including project management, collaboration, and technical skills such as programming,
database management, and user interface design. We feel confident that the skills we
acquired during this project will prove useful in our future endeavors.
100
19030706 | 20048831 | 20049006 | 20049028 | 20049051