Professional Documents
Culture Documents
(OPW) Manish Kumar Gond
(OPW) Manish Kumar Gond
060
Online Paper Work (OPW)
by
Under Guidance of
Mr. Vikas Sharma
2. Certificate of originality 4
3. Guide Resume 5
OBJECTIVES Intend to build a career with reputed company with committed & dedicated people, which will help
me to explore myself fully and realize my potential. Willing to work in an environment where
knowledge is appreciated.
Role: - Preparing the students for BCA and MCA examination along with DOEACC ‘O’ and ‘A’
Level certified courses.
Proficiency: - ‘C’, ‘C++’, C# asp.net, VB.net, .NET, SQL Server Data structure through ‘C’ and ‘C+
+’, HTML, CSS, JavaScript, Linux, Operating System, Software Engineering, DBMS, Data
Communication and Networking etc.
Role: - Preparing the students for BCA and MCA examination along with DOEACC ‘O’ and ‘A’
Level. I also design the course layout of the various courses for the Organization.
Proficiency: - ‘C’, ‘C++’, C# asp.net, VB.net, .NET, SQL Server Data structure through ‘C’ and ‘C+
+’, HTML, CSS, JavaScript, Linux, Operating System, Software Engineering, DBMS, Data
Communication and Networking etc.
Role: - Joined the organization as a senior faculty. Handle the batches for DOEACC ‘O’ and ‘A’
Level.
Role: - Handling of short term courses and preparing the students for BCA examination.
3 Pursuing ‘C’ Level from NIELIT.
4 MCA from Punjab Technical University in First Division.
EDUCATION 5 M.SC(IT) from Punjab Technical University in First Division
6 Qualified ‘A’ Level from NIELIT (DOEACC Society).
7 Qualified ‘O’ Level from NIELIT (DOEACC Society).
8 Completed Higher Diploma in Software Engineering (HDSE) from DICS (Delhi Institute for
Computer Science)
4
1. Languages: ‘C’, ‘C++’, C# asp.net, VB.net, .NET, SQL Server Data structure through ‘C’
SKILLS and ‘C++’
Project 1
www.shriinstitute.com
Description
An Computer institute web portal offers wide variety of career, professional short term, certificate
course provided by institute. Email sents to enquiry, enrolling, contact, register for placements,
register for companies to both the clients and institute and online examination for students who
enrolled in institute. Admin Panel for institute for daily updating, deletion, insertion of exam papers.
Maintaining database, result, enquiries, enrolling students, register for students, register for
companies.
Front End:- ASP.Net, C#
Back End:- SQL Server
Project 2
Windows payroll application
ACADEMI Description
CPROJEC The project was to create the software of an payroll management system. The software worked on
TS the module of the payroll that included add new record, Delete record, search and print record,
update record and calculate HRA, DA, TA and other allowances to make process easy.
Front End:- .NET
Back End:- MS-Access
Project 3
Payroll management System
Language of implementation: - Visual FoxPro 6.0
Operating System: - Windows95/98/XP
Description
This utility helps in maintaining the leave records of the organization. Beside
this it provide the utility of issuing and calculating the salaries of various
employees working in the organization.
Project 4
Computerized Purchase System
Language of implementation: - C++ (Turboc3)
Operating System: -Windows 95/98/XP
Description
The main idea behind the implementation of this project is to
computerized purchase section of the organization. The complete
project handles purchases made by the organization.
AREA OF Making new friends, listening Music, Net surfing, watching Cricket & Singing
INTERESTS
5
Gender : Male
Nationality : Indian
Languages : English, Hindi
Typing Speed : 40 W.P.M
I hereby declare that all the information mentioned above is true to the best of my knowledge.
Date: -26/12/2021
Place: - New Delhi VIKAS SHARMA
1
1. TITLE OF THE PROJECT
ONLINE
PAPER
WORK
(OPW)
1
2. PROJECT SYNOPSIS
2
2.1. INTRODUCTION AND OBJECTIVE OF THE PROJECT
2.1.1. Introduction:-
Online Paper Work (OPW) provide an online platform to book orders where
customer can search product design from the categories and can select the size,
dimension, quantity, paper quality as per the requirements. Customer can also
upload their own design, layout of the document. The project has been
developed to override the problems of manual system. It reduced the no. of
error rate and help in easily maintaining records.
Customer can select page design layout for books, text books, diaries,
Magazines etc. and customer can select many different payment option for
payment. Customer can check booked order and payment reports. In addition
customer need to provide their id prove in some requirement like printing of
letter head etc. (if customer is government employee).
Once the order is placed, printing job can be started according to customer
specification and details. After printing job is done the product can be deliver to
customer registered address or customer can pick its own from printing press
office.
3
2.1.2. Objective:-
The main objective of Online Paper Work (OPW) is to automate the existing
system so that the user can book printing order online easily. Using this system
data can be stored for long period with less error rate. It reduce the paper work
and help user to easily get service from long distance.
Online Paper Work (OPW) provide the services to customer in an easy way.
Customer can save time by searching and selecting of product and many available
design in few minutes and can save money by comparing one product with
other.
The printing order can be book from anywhere, any time by spending less amount
of time. Customer not need to go any printing press office and placing order
manually, by using Online Paper Work (OPW) customer can book order from
their home, office or anywhere.
Online Paper Work (OPW) is easy to use and user friendly. Any customer
with basic knowledge of computer and internet can use this website. It is fast
and also better way for placing online orders for printing.
4
4. Reducing the data error and mistakes.
5
2.2. PROJECT CATEGORY
User interact with the website as the front end of the system. The
Data of the system is stored in back end of RDBMS database. The
database help to store and retrieve the data in efficient manner.
The front end of the system will be ASP.NET with C# and SQL
server as the back end. ASP.NET and SQL server both are Microsoft
company software and will be easy connect them. For developing a
web based application asp.net with c# is one of the best combination.
It provide many data library, built in function, concept of oops
(Object Oriented Programming) and easy way to connect with any
database.
SQL server is one of the best database for storing data. It is falls under
RDBMS. Here all data is stored in a relational manner that help to
retrieve and update. It help to maintain the data integrity, consistency,
availability and avoid unauthorized access.
6
2.3. TOOLS/PLATFORM
Software:
Platform : Window
Hardware
7
2.4. PROBLEM DEFINITION
First of all, the customer need to search for nearest printing press then
need to spend money and time to visit there office for booking of
order.
In the whole process customer spend lots of his/her valuable time and
money. Also many time customer can’t find a good looking design so
customer randomly selects a design due to don’t have much time to
check every single design.
Hence customer have to compromise with given designs and quality.
On the other hand in printing press’s office due to all the paper work
done by hand manually, so it increase the risk of error and
redundancy. Also some time it become hard to find a particular
recode and related details.
8
2.5. SCOPE OF THE SOLUTION
The main scope of the project is to convert the manual system into
computerized system. It will make fast & easy the process of booking
order for printing and reduce the paper work and error rates. It will
help the organization as well as customer who wants to use the
service.
Anyone can use the web site of the given organization from
anywhere any time and as much time he/she want. It will be fast and
easy by online booking instead of visiting the printing press’s office
and meeting face to face for booking order.
In the web site customer can use different types of modules for
‘searching and selecting of product design, also can upload their own
design if not happy with given designs. Customer can select design
specification and paper quality.
9
2.6. PROJECT PLANNING AND SCHEDULING
14 Days
Day 74 – 88
Understanding Database
60 Days
Day 89 – 144
Coding
10 Days
Day 145 –155
Page Designing
1
2.7. ANALYSIS
Customer
Management Customer Details
Category
Management Category Details
Product
Management Product Details
Design Management Online
Design Details
Paper Work
Order Management (OPW) Order Details
1
‘1’ Level DFD
Customer
Online
Paper
Gues
Work
(OPW)
Sign Up
Customer Customer Details
Forget
Password
Login
Search Searc
Categor h
Manage
Modules Manag
My Design
e
My Order Payment
Give
Feedbac Bills
Report
1
‘1’ Level DFD
Administrator
Online
Paper
Work (OPW)
Check Feedback
1
‘2’ Level DFD
Customer
OPW
Login
Product Details
Product/Category Search
Category Details
Book
Product Order Details
Exit
13
‘2’ Level DFD
Administrator
OPW
Login
Administrator Administrator Details
Give
Approve/Disapprove Acknowledge Order Details
Payment
Received Payment Details
1
Exit
1
Order_Id
User_Id
Login_Id E-R DIAGRAM Quantity
Password Product_Id
User_Id Amount
Email_Id
Paper_Quality
1
Customer Boo Print Job Order
k M
Phone_No Order_Id
1 d M M
1
1
Payment_Type
Name Address Payment_Id Size
Amount
Make Payment
1
Feedback_Type
User_Id M
Give
M
Feedback
Document_Type
Feedback_Id M Message
1
ID_No
Check ID Proof
Image M
User_Id
Image Receive
M
Category Perform
M
Image Manage
Category_Id
Name
M Name Name Staff_Id
M 1 1 M
Product 1 M
Description Administrator Have Staff
Product_Id
Price Admin_Id 1 1 Name
Page_Design Email_Id
Quantity Designation
1
USE CASE DAIGRAM
Registration
Search Category
Search Product
Manage Profile
Upload Design
Book Order
Login
Make Payment
CUSTOMER
Feedback
Manage Category
ADMINISTRATOR
Manage Product
Manage Orders
1
Report Generation
1
2.8. SOFTWARE DEVELOPMENT LIFE CYCLE MODEL
(SDLC)
1. Waterfall model
2. RAD model
3. Iterative enhancement model
4. Spiral model
Online Paper Work (OPW) is a short project and waterfall model is well
suited. The Waterfall Model was the first model to be introduced. It is also
referred to as a linear-sequential life cycle model.
1
Advantages of waterfall model:
2
2.9. DATABASE DESIGN
1. Customer
2. Administrator
3. Category
2
4. Product
6. ID Proof
2
7. Payment
8. Supplier
9. Raw Material
10.Feedback
2
2.10. MODULES AND THEIR DESCRIPTION
1. HOME: - This module is main screen of the website where customer can see
different type of products with their price and picture.
It also contains the other modules of the system like Login, Sign up, Forgot
password, Profile, Category, Search, My Order, My Design, Payment, Bills
Report, feedback and admin.
2. SIGN UP: - This module helps the customer to register and create an account
before booking any order, without any account customer cannot book any order
but can check products as a guest.
3. USER LOGIN: - This module helps the customer to login. After login
customer can manage their profile, book orders also can check booked orders,
payment details etc.
2
5. PROFILE: - Once the customer login successfully, it can manage their
profile by this module. Here customer can check or update their details like
name, account password, address, mobile phone number, email id etc.
10. TRACK ORDER: - Customer can track the booked order using this
module and can check the current status (such as booked, cancelled, processing,
finished, deliver etc.) of the order.
2
11. MAKE PAYMENT: - Customer can make payment using this module. It
contains different types of payment methods (such as Online Banking,
Debit/Credit Card or Cash on Delivery.)
12. BILL REPORT: - This module helps the customer to check previous
payment details. Customer can check the date & time, booked product details,
payment mode, amount etc.
14. ADMIN: - This module is used by administrators for login and managing
the system such as adding, updating, and deleting of product and category. Also
for checking of details of customers, payments and other report.
2
2.11. PROCESS LOGIC OF MODULES
1. HOME: - Customer need to use web site URL to reach the home page of
Online Paper Work (OPW).
3. USER LOGIN PROCESS: - Once the customer register their self, then the
registered user id and password will help for successful login. Customer need to
enter valid combination of user id and password for successful login, otherwise
customer will get a not valid user id or password error.
2
6. CATEGORY: - Customer can select and check categories. Customer need to
select category option then the category page will open automatically.
7. SEARCH PROCESS: - Customer need to enter the product name in the search
box and by pressing the search button, the search result appears in the new page.
10. TRACK ORDER PROCESS: - Here customer will select booked orders and
can check their current status.
2
12. BILL REPORT PROCESS: - Customer will select bill report option and
the new page will option where customer can see all the payment details, also
can select a single particular details and check summary.
14. ADMIN PROCESS: - Here administrator will enter valid user id and
password for login and after successful login, administrator can use different
option for managing the Online Paper Work (OPW).
2
2.12. REPORT GENERATION
ONLINE PAPER WORK (OPW) will generate the following reports which
is given below:
1. CUSTOMERS REPORT: - This report show the list of customers who are
registered in online paper work (OPW).
2. CATEGORY REPORT: - List of all categories and their details will show by
this report.
3. PRODUCT REPORT: - This report contains the list of all the products and
their details.
4. PRINT JOB ORDER REPORT: - This report show the customer’s booked
orders.
8. RAW MATERIAL REPORT: - Raw material details will show by this report.
3
2.13. TESTING
Test Approaches:-
Functionality Testing
Implementation Testing
3
2.14. SECURITY MECHANISMS
Here ‘User id’ and ‘Password’ mechanism is used for login in the online
paper work (OPW). Every person use a different user id and password to access
the system. If a person have correct user id and password combination then it
can access the website otherwise it is not allowed to access.
The database of the system is second and most important part of the system
after the whole system, if system crashes or destroys later it can fix or create but
the data of the system if destroys it is very hard to recover, so it is an important
place where security has to be implemented to secure the date.
Here also ‘User id’ and ‘Password’ mechanism is needed to the secure server
side. Only authorized person can access the data by using their user id and
password which make the system’s privacy, confidentiality, integrity of data
and unauthorized access of the data.
3
2.15. LIMITATION OF THE PROJECT
I have collected information and knowledge from my teachers and friends, also
used the internet to develop this system better. The time is important factor for
developing a system, to create this project’s system only 2 to 3 months are
available, for developing a good system more time required with a team of
expert person with maximum knowledge of code.
The system need better code optimization so that no. of code lines can be
minimized which is make system faster and easy change the code according
change of business. Some more module are required to automate the system for
user and administrator. Testing mechanism which is used for the system is black
box and white box, but for finding any kind of error in the code more testing
phase are required.
3
2.16. FUTURE SCOPE
The system Online Paper Work (OPW) is developed for automate the
booking process of order for printing of paper products. This system not only save
time but also save the money of both parties the end users of the system and as
well as the business.
It is the law of nature, for living long time we need to adept new habits, rules
and technology and need update over self every time to time. For the long life of
this system we will also adept some new feature like more modules, more
testing phase, improving of graphics and design, reducing the code etc.
Online Paper Work (OPW) will adopt the following features in future for
enhancing the project:
3
2.17. BIBLIOGRAPHY
https://dotnet.microsoft.com/apps/aspnet
https://www.microsoft.com/en-us/sql-server/default.aspx .
https://www.lucidchart.com/blog/advantages-of-pert-charts-vs-gantt-
charts
https://www.guru99.com/software-development-life-cycle-tutorial.html
https://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm
https://www.geeksforgeeks.org/types-software-testing/
https://www.tutorialspoint.com/software_engineering/software_t
esting_overview.htm
3
3. PROJECT REPORT
3
3.1. INTRODUCTION AND OBJECTIVE
3.1.1. Introduction:-
Online Paper Work (OPW) provide an online platform to book orders where
customer can search product design from the categories and can select the size,
dimension, quantity, paper quality as per the requirements. Customer can also
upload their own design, layout of the document. The project has been
developed to override the problems of manual system. It reduced the no. of
error rate and help in easily maintaining records.
Customer can select page design layout for books, text books, diaries,
Magazines etc. and customer can select many different payment option for
payment. Customer can check booked order and payment reports. In addition
customer need to provide their id prove in some requirement like printing of
letter head etc. (if customer is government employee).
Once the order is placed, printing job can be started according to customer
specification and details. After printing job is done the product can be deliver to
customer registered address.
3
3.1.2. Objective:-
The main objective of Online Paper Work (OPW) is to automate the existing
system so that the customer can book printing order online easily. Using this
system data can be stored for long period with less error rate. It reduce the paper
work and help user to easily get service from long distance.
Online Paper Work (OPW) provide the services to customer in an easy way.
Customer can save time by searching and selecting of product and many available
design in few minutes and can save money by comparing one product with
other.
The printing order can be book from anywhere, any time by spending less amount
of time. Customer not need to go any printing press office and placing order
manually, by using Online Paper Work (OPW) customer can book order from
their home, office or anywhere.
Online Paper Work (OPW) is easy to use and user friendly. Any customer
with basic knowledge of computer and internet can use this website. It is fast
and also better way for placing online orders for printing.
3
3.2. SYSTEM ANALYSIS
First of all, the customer need to search for nearest printing press then
need to spend money and time to visit there office for booking of
order.
In the whole process customer spend lots of his/her valuable time and
money. Also many time customer can’t find a good looking design so
customer randomly selects a design due to don’t have much time to
check every single design.
Hence customer have to compromise with given designs and quality.
On the other hand in printing press’s office due to all the paper work
done by hand manually, so it increase the risk of error and
redundancy. Also some time it become hard to find a particular
recode and related details.
3
3.2.2. Preliminary investigation:-
Anyone can use the web site of the given organization from
anywhere any time and as much time he/she want. It will be fast and
easy by online booking instead of visiting the printing press’s office
and meeting face to face for booking order.
In the web site customer can use different types of modules for
searching and selecting of product design, also can upload their own
design if not happy with given designs. Customer can select design
specification and paper quality.
4
3.2.3. Feasibility Study:-
4
3.2.4. Project Planning:-
As per the requirements the online paper work (OPW) contain many
modules that help the customer as well as admin. First of all the
customer use their modules for book order for printing products, next
the admin use their modules to manage the whole system.
By using asp.net and sql server, system can be created within less
amount of cost as par the budget. Also it save time due to it required
less amount of code writing if compare to other software’s.
4
3.2.5. Project Category:-
User interact with the website as the front end of the system. The
Data of the system is stored in back end of RDBMS database. The
database help to store and retrieve the data in efficient manner.
The front end of the system will be ASP.NET with C# and SQL
server as the back end. ASP.NET and SQL server both are Microsoft
company software and will be easy connect them. For developing a
web based application asp.net with c# is one of the best combination.
It provide many data library, built in function, concept of oops
(Object Oriented Programming) and easy way to connect with any
database.
SQL server is one of the best database for storing data. It is falls under
RDBMS. Here all data is stored in a relational manner that help to
retrieve and update. It help to maintain the data integrity, consistency,
availability and avoid unauthorized access.
4
3.2.6. TOOLS/PLATFORM
Software:
Platform : Window
Hardware
4
3.2.7. Project scheduling
17 Days
Day 67 – 84
13 Days
Day 85 – 98
Page Designing
52 Days
Day 99 –151
Coding
4
Gantt Chart:-
Y-Axis
1. Problem Analysis
2. Analysis of the
Existing System
3. Selection &
Learning Of
Software
4. Understanding &
Creating
Database
5. Designing
6. Coding
7. Testing
8. Evaluation
9. Implementation
& Documentation
WEEKS | | | | | | | | | | | | | | | | | | | | | | | | |
MONTHS Oct Nov Dec Jan Feb Mar
X-AXIS
4
3.2.8. Software Requirement Specification (SRS):-
i) Purpose:
ii) Scope:
iii) Abbreviations:
iv) Overview:
4
2. General Description:
i) Product Perspective:
4
iii) User Characteristics:
iv) Constraints:
v) Assumptions:
4
3. Specific Requirements:
This section provides all the details of all inputs and outputs
including hardware and software.
5
3.1.3. Software Interface:
3.1.4.Communication Interface:
5
3.3. Performance Requirements:
3.5.1. Reliability:
3.5.2. Availability:
5
3.5.3. Security:
3.5.4. Maintainability:
5
3.2.9. Software Engineering Paradigm (SDLC Model):-
1. Waterfall model
2. RAD model
3. Iterative enhancement model
4. Spiral model
Online Paper Work (OPW) is a short project and waterfall model is well
suited. The Waterfall Model was the first model to be introduced. It is also
referred to as a linear-sequential life cycle model.
5
Advantages of waterfall model:
5
3.2.10. Data Models
Customer
Management Customer Details
Category
Management Category Details
Product
Management Product Details
Design Management Online
Design Details
Paper Work
Order Management (OPW) Order Details
5
‘1’ Level DFD
Customer
Online
Guest Paper
Work
(OPW)
Forget
Password
Login
Category Product
Upload Manage
Design Manage Profile
Modules
My Order Search
Upload Id
Track Order
Pro
Feedback Make
‘1’Payment
Level Bills Report
5
‘1’ Level DFD
Administrator
Online
Paper
Work (OPW)
Feedback
5
‘2’ Level DFD
Customer
OPW
Login
Product Details
Product/Category Search
Category Details
ID Proof
Upload ID Proof Details
Track Order
Status Order Details
Exit
57
‘2’ Level DFD
Administrator
OPW
Product Details
Add /
Product/Category Update
/ Delete Category Details
Corner Details
Add / Paper Quality Details
Specifications Update /
Delete Size Details
Page Details
Payment
Check Payment Details
Exit
58
ORDER_PAPER_QUALITY_ID_FK
ORDER_REFERENCE_IMAGE
CUSTOME_PHONE_NO
E-R DIAGRAM ORDER_QUANTITY
ORDER_PAYMENT_TYPE
ORDER_CORNER_ID_FK
CUSTOME_PASSWORD ORDER_DESCRIPTION
CUSTOME_EMAIL_ID ORDER_REFERENCE_PDF
CUSTOME_LOGIN_ID ORDER_STATUS
ORDER_TOTOAL_PRICE
1 M
Customer Book Print Job Order
ORDER_CUSTOMER_ID_FK
CUSTOME_NAME
M M
1 1 1 ORDER_ID
PAYMENT_TYPE
CUSTOMER_ID CUSTOME_ADDRESS ORDER_PRODUCT_ID_FK
ORDER_ID_FK
ORDER_PAGE_ID_FK
M ORDER_SIZE_ID_FK
Make Payment
1
ID_PROOF_IMAGE PAYMENT_ID
PAYMENT_AMOUNT
ID_PROOF_ID ID_PROOF_ORDER_ID_FK
1 M
Give ID Proof
ID_PROOF_DOCUMENT_TYPE ID_PROOF_CUSTOMER_ID_FK
FEEDBACK_ID
FEEDBACK_MESSAGE FEEDBACK_CUSTOMER_ID_FK
M Feedback M
FEEDBACK_TYPE
PRODUCT_PAGE_DESIGN_REQUIRED Receive
M Corner M
RAW_MATERIAL_QUANTITY
CORNER_ID M
PAGE_CATEGORY_ID_FK Manage Provide
PAGE_ID
PAGE_NAME Contact
M Pag M
SUPPLIER_ID
SIZE_NAME SIZE_CATEGORY_ID_FK
1
M Si M M
SIZE_ID Supplier
PAPER_QUALITY_CATEGORY_ID_FK
SUPPLIER_NAME
PAPER_QUALITY_ID
PAPER_QUANTITY_NAME
M M SUPPLIER_PHONE_NUMBER
Paper 59
SUPPLIER_SHOP_ADDRESS
USE CASE DAIGRAM
Search Category/Product
Registration
Book Order
Manage Profile
Upload Design
VISITOR
Track Order
Login
Feedback
Manage Category/Product
ADMINISTRATOR
Manage Orders
Manage Utility
Manage Specification
Report Generation
6
3.3. SYSTEM DESIGN
1. HOME: - This module is main screen of the website where customer can
see different type of products with their price and picture.
It also contains the other modules of the system like Login, Sign up, Forgot
password, Profile, Category, Search, My Order, My Design, Payment, Bills
Report, feedback and admin.
2. SIGN UP: - This module helps the customer to register and create an
account before booking any order, without any account customer cannot
book any order but can check products as a guest.
3. USER LOGIN: - This module helps the customer to login. After login
customer can manage their profile, book orders also can check booked
orders, payment details etc.
6
5. PROFILE: - Once the customer login successfully, it can manage their
profile by this module. Here customer can check or update their details like
name, account password, address, mobile phone number, email id etc.
10.TRACK ORDER: - Customer can track the booked order using this
module and can check the current status (such as booked, cancelled,
processing, finished, deliver etc.) of the order.
6
11.MAKE PAYMENT: - Customer can make payment using this module. It
contains different types of payment methods (such as Online Banking,
Debit/Credit Card or Cash on Delivery.)
15.ADMIN: - This module is help administrators for login and managing the
system such as adding, updating, and deleting of product and category. Also
for checking of details of customers, payments and other report.
6
3.3.2. Process Logic Of Modules:-
1. HOME: - Customer need to use web site URL to reach the home page of
Online Paper Work (OPW).
3. USER LOGIN PROCESS: - Once the customer register their self, then the
registered user id and password will help for successful login. Customer need
to enter valid combination of user id and password for successful login,
otherwise customer will get a not valid user id or password error.
6
6. CATEGORY: - Customer can select and check categories. Customer need to
select category option then the category page will open automatically.
7. SEARCH PROCESS: - Customer need to enter the product name in the search
box and by pressing the search button, the search result appears in the new
page.
10. TRACK ORDER PROCESS: - Here customer will select booked orders
and can check their current status.
6
12. BILL REPORT PROCESS: - Customer will select bill report option
and the new page will option where customer can see all the payment details,
also can select a single particular details and check summary.
14. ABOUT US PROCESS: - Here customer can see the details about
project report.
15. ADMIN PROCESS: - Here administrator will enter valid user id and
password for login and after successful login, administrator can use different
option for managing the Online Paper Work (OPW).
6
3.3.3. Data Integrity And Constraints:-
Online Paper Work (OPW) will use pre-define integrity to maintain accuracy
and consistency of data in the database table which are given below:
Entity Integrity:
Primary Key: It is use to enter the unique, not null and single records
in the table’s attribute field.
Unique Key: It is use to enter unique record in the table’s attribute field.
Not Null: It is use to ensure data in the table attribute should not be null.
Referential Integrity:
6
3.3.4. Database Design:-
1. Customer
2. Category
6
3. Product
6
4. Print Job Order
7
5. ID Proof
6. Payment
7
7. Feedback
8. Administrator
7
9. Corner
7
11. Size
12. Page
7
13. Staff
14. Supplier
7
15. Raw Material
7
3.3.5. User Interface Design:-
Home:-
7
7
Category:-
7
Products of single category (Visiting Card):-
8
Search Result:-
8
Customer Sign Up Complete:-
Customer Login:-
8
Product Booking:-
Review Order:-
8
Order Booking Complete:-
Make Payment:-
8
After Make Payment:-
My Order:-
Track Order:-
8
Bill Report:-
Cancel Order:-
Feedback:-
8
About Us:-
8
Profile Update:-
Upload Id Proof:-
8
Administrator Login:-
8
Administrator Show Category:-
Create Category:-
9
Update Category:-
Delete Category:-
9
Create Product:-
9
Update Product:-
Delete Product:-
9
Printing Order:-
ID Proof Details:-
Payment Details:-
9
Feedback Details:-
Corner Details:-
9
Size Details:-
Page Details:-
Supplier Details:-
9
Raw Material Details:-
Staff Details:-
9
3.4. CODING
Customer:-
CREATE TABLE tbl_CUSTOMER(
CUSTOMER_ID INT PRIMARY KEY IDENTITY(1,1),
CUSTOMER_LOGIN_ID VARCHAR(50) NOT NULL UNIQUE,
CUSTOMER_PASSWORD VARCHAR(50) NOT NULL,
CUSTOMER_NAME VARCHAR(30) NOT NULL,
CUSTOMER_PHONE_NO VARCHAR(10) NOT NULL UNIQUE,
CUSTOMER_EMAIL_ID VARCHAR(50) NOT NULL UNIQUE,
CUSTOMER_ADDRESS VARCHAR(MAX) NOT NULL
);
Category:-
CREATE TABLE tbl_CATEGORY(
CATEGORY_ID INT primary key identity(1,1),
CATEGORY_NAME VARCHAR(30) NOT NULL,
CATEGORY_IMAGE VARCHAR(MAX) NOT NULL
);
Product:-
9
Print Job Order:-
ID Proof:-
CREATE TABLE tbl_ID_PROOF(
ID_PROOF_ID INT PRIMARY KEY IDENTITY(1,1),
ID_PROOF_CUSTOMER_ID_FK INT REFERENCES tbl_CUSTOMER(CUSTOMER_ID) NOT NULL,
ID_PROOF_ORDER_ID_FK INT REFERENCES tbl_PRINT_JOB_ORDER(ORDER_ID) NOT NULL,
ID_PROOF_DOCUMENT_TYPE VARCHAR(30) NOT NULL,
ID_PROOF_IMAGE VARCHAR(MAX) NOT NULL
);
Payment:-
CREATE TABLE tbl_PAYMENT(
PAYMENT_ID INT PRIMARY KEY IDENTITY(1,1),
ORDER_ID_FK INT REFERENCES tbl_PRINT_JOB_ORDER(ORDER_ID) NOT NULL,
PAYMENT_TYPE VARCHAR(30) NOT NULL,
PAYMENT_AMOUNT INT NOT NULL
);
Feedback:-
CREATE TABLE tbl_FEEDBACK(
FEEDBACK_ID INT PRIMARY KEY IDENTITY(1,1),
FEEDBACK_CUSTOMER_ID_FK INT REFERENCES tbl_CUSTOMER(CUSTOMER_ID) NOT NULL,
FEEDBACK_TYPE VARCHAR(30) NOT NULL,
FEEDBACK_MESSAGE VARCHAR(MAX) NOT NULL
);
9
Administrator:-
create table tbl_ADMINISTRATOR(
ADMIN_ID INT primary key identity(1,1),
ADMIN_NAME varchar(30) not null,
ADMIN_LOGIN_ID VARCHAR(50) NOT NULL UNIQUE,
ADMIN_PASSWORD VARCHAR(50) NOT NULL,
ADMIN_EMAIL_ID VARCHAR(50) NOT NULL
);
Corner:-
CREATE TABLE tbl_PRODUCT_CORNER(
CORNER_ID INT PRIMARY KEY IDENTITY(1,1),
CORNER_NAME VARCHAR(30) NOT NULL,
CORNER_CATEGORY_ID_FK INT REFERENCES tbl_CATEGORY(CATEGORY_ID) NOT NULL,
);
Paper Quality:-
CREATE TABLE tbl_PRODUCT_PAPER_QUALITY(
PAPER_QUALITY_ID INT PRIMARY KEY IDENTITY(1,1),
PAPER_QUALITY_NAME VARCHAR(30) NOT NULL,
PAPER_QUALITY_CATEGORY_ID_FK INT REFERENCES tbl_CATEGORY(CATEGORY_ID) NOT NULL,
);
Size:-
CREATE TABLE tbl_PRODUCT_SIZE(
SIZE_ID INT PRIMARY KEY IDENTITY(1,1),
SIZE_NAME VARCHAR(30) NOT NULL,
SIZE_CATEGORY_ID_FK INT REFERENCES tbl_CATEGORY(CATEGORY_ID) NOT NULL,
);
Page:-
CREATE TABLE tbl_PRODUCT_PAGE(
PAGE_ID INT PRIMARY KEY IDENTITY(1,1),
PAGE_NAME VARCHAR(30) NOT NULL,
PAGE_CATEGORY_ID_FK INT REFERENCES tbl_CATEGORY(CATEGORY_ID) NOT NULL,
);
1
Staff:-
CREATE TABLE tbl_STAFF(
STAFF_ID INT PRIMARY KEY IDENTITY(1,1),
STAFF_NAME VARCHAR(30) NOT NULL,
STAFF_ADDRESS VARCHAR(30) NOT NULL,
STAFF_PHONE_NO VARCHAR(10) NOT NULL,
STAFF_DESIGNATION VARCHAR(150) NOT NULL,
STAFF_SALARY INT NOT NULL
);
Supplier:-
CREATE TABLE tbl_SUPPLIER(
SUPPLIER_ID INT PRIMARY KEY IDENTITY(1,1),
SUPPLIER_NAME VARCHAR(30) NOT NULL,
SUPPLIER_SHOP_ADDRESS VARCHAR(MAX) NOT NULL,
SUPPLIER_PHONE_NUMBER VARCHAR(10) NOT NULL
);
Raw Material:-
CREATE TABLE tbl_RAW_MATERIAL(
RAW_MATERIAL_ID INT PRIMARY KEY IDENTITY(1,1),
RAW_MATERIAL_NAME VARCHAR(30) NOT NULL,
RAW_MATERIAL_QUANTITY VARCHAR(30) NOT NULL,
SUPPLIER_ID_FK INT REFERENCES tbl_SUPPLIER(SUPPLIER_ID) NOT NULL
);
1
3.4.2. Project Coding including (comments & description, standardization,
code efficiency, error handling, parameters calling/passing and validation
checks) :-
_LayoutCustomer.cshtml:-
<!DOCTYPE html> @*Doctype tag*@
<html> @*Html tag*@
<head> @*Head tag*@
@*Body tag*@
<body class="bg-light">
<div class="d-flex p-2 bg-info text-white">
<b>ONLINE PAPER WORK (OPW)</b>
</div>
1
}
else
{
@Html.ActionLink("Profile", "Profile", "Customer",
null, new { @class = "dropdown-item" })
@Html.ActionLink("Logout", "Logout", "Customer", null,
new { @class = "dropdown-item" })
}
</div>
</div>
</div>
@*Render body*@
@RenderBody()
<hr />
@*Footer*@
<footer>
<p>Online Paper Work(OPW)</p>
</footer>
</div>
1
Customer SignUp.cshtml
@model OnlinePaperWork_OPW_.Models.tbl_CUSTOMER @*Model*@
@{
ViewBag.Title = "Customer Sign Up"; @*Page title*@
}
1
</div>
<div class="form-group">
<label>Address</label>
@Html.TextAreaFor(x => x.CUSTOMER_ADDRESS, new {
@class = "form-control", @placeholder = "Address" })
@Html.ValidationMessageFor(x => x.CUSTOMER_ADDRESS,
"", new { @class = "text-danger" })
</div>
<div class="form-group row">
<div class="col-sm-12">
@Html.ActionLink("Back", "Home", "Customer", null,
new { @class = "btn btn-outline-warning " })
<input type="submit" value="Sign Up" class="btn
btn-outline-primary float-right" />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
}
Customer ForgotPassword.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_CUSTOMER @*Model*@
@{
ViewBag.Title = "Forgot Password"; @*Page title*@
}
1
</div>
</div>
}
Customer Login.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_CUSTOMER @*Model*@
@{
ViewBag.Title = "Customer Login"; @*Page title*@
}
Customer Profile.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_CUSTOMER @*Model*@
@{
ViewBag.Title = "Profile"; @*Page title*@
}
1
@*Customer profile form*@
@using (Html.BeginForm("Profile", "Customer", FormMethod.Post))
{
<div class="container">
<div class="d-flex justify-content-center">
<div class="col-sm-5 ">
<div class="card mt-3">
<div class="card-header">
<h4>@ViewBag.Title</h4>
</div>
<div class="card-body">
<div class="form-group">
@Html.HiddenFor(x=>x.CUSTOMER_ID)
<label>Login Id</label>
@Html.TextBoxFor(x => x.CUSTOMER_LOGIN_ID, new {
@class = "form-control", @placeholder = "Login Id", @readonly = "readonly" })
@Html.ValidationMessageFor(x => x.CUSTOMER_LOGIN_ID,
"", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Password</label>
@Html.PasswordFor(x => x.CUSTOMER_PASSWORD, new {
@class = "form-control", @placeholder = "Password" })
@Html.ValidationMessageFor(x => x.CUSTOMER_PASSWORD,
"", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Confirm Password</label>
@Html.PasswordFor(x => x.CUSTOMER_CONFIRM_PASSWORD,
new { @class = "form-control", @placeholder = "Confirm Password" })
@Html.ValidationMessageFor(x =>
x.CUSTOMER_CONFIRM_PASSWORD, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Name</label>
@Html.TextBoxFor(x => x.CUSTOMER_NAME, new { @class
= "form-control", @placeholder = "Name" })
@Html.ValidationMessageFor(x => x.CUSTOMER_NAME, "",
new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Phone No</label>
@Html.TextBoxFor(x => x.CUSTOMER_PHONE_NO, new {
@class = "form-control", @placeholder = "Phone No" })
@Html.ValidationMessageFor(x => x.CUSTOMER_PHONE_NO,
"", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Email Id</label>
@Html.TextBoxFor(x => x.CUSTOMER_EMAIL_ID, new {
@class = "form-control", @placeholder = "Email Id" })
@Html.ValidationMessageFor(x => x.CUSTOMER_EMAIL_ID,
"", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Address</label>
@Html.TextAreaFor(x => x.CUSTOMER_ADDRESS, new {
@class = "form-control", @placeholder = "Address" })
1
@Html.ValidationMessageFor(x => x.CUSTOMER_ADDRESS,
"", new { @class = "text-danger" })
</div>
<div class="form-group row">
<div class="col-sm-12">
@Html.ActionLink("Back", "Home", "Customer", null,
new { @class = "btn btn-outline-warning " })
<input type="submit" value="Update" class="btn
btn-outline-primary float-right" />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
}
Home.cshtml:-
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_PRODUCT> @*List type
model*@ @{
ViewBag.Title = "Home"; @*Page title*@
}
1
<h6>Quantity :@product.PRODUCT_QUANTITY
Pec</h6>
</div>
</a>
</div>
}
</div>
</div>
</div>
<br />
}
}
Category.cshtml:-
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_CATEGORY> @*List type
model*@ @{
ViewBag.Title = "Category"; @*Page title*@
}
<h4>@ViewBag.Title</h4>
<hr />
CategoryProduct.cshtml:-
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_PRODUCT> @*List type
model*@ @{
ViewBag.Title = "Category Product"; @*Page title*@
}
<h4>@ViewBag.categoryNameBag</h4>
1
<hr />
SearchProduct.cshtml:-
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_PRODUCT> @*List type
model*@ @{
ViewBag.Title = "Search Result"; @*Page title*@
}
<h4>@ViewBag.Title</h4>
<hr />
1
<img class="col-sm-4 justify-content-center"
src="@Url.Content(product.PRODUCT_IMAGE)" height="300" width="350" />
<div class="col-sm-8">
<h2>@product.PRODUCT_NAME</h2>
<hr />
<h3>Price : Rs.@product.PRODUCT_PRICE</h3>
<h3>Quantity : @product.PRODUCT_QUANTITY Pec</h3>
<br />
<h6>Description:</h6>
<h5>@product.PRODUCT_DESCRIPTION</h5>
<hr />
@Html.ActionLink("Buy", "ProductDetails", "Customer",
new { productId = product.PRODUCT_ID, categoryId = product.PRODUCT_CATEGORY_ID_FK
}, new { @class = "btn btn-outline-primary float-right" })
</div>
</div>
</div>
</div>
</div>
<br />
}
}
@*Product details*@
<div class="container">
<div class="card">
<div class="card-body">
<div class="col-sm-12">
<div class="row">
<img class="col-sm-4 d-flex justify-content-center"
src="@Url.Content(Model.PRODUCT_IMAGE)" height="300" width="350" />
<div class="col-sm-8">
<h2>@Model.PRODUCT_NAME</h2>
<hr />
<h3>Price : Rs.@Model.PRODUCT_PRICE</h3>
<h3>Quantity : @Model.PRODUCT_QUANTITY Pec</h3>
<br />
<h6>Description:</h6>
<h5>@Model.PRODUCT_DESCRIPTION</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<br />
1
{
<div class="container">
<div class="card">
<div class="card-body">
<div class="form-row">
<div class="col-sm-6">
@Html.HiddenFor(x => x.PRODUCT_ID, new { id = "product_id"
})
<div class="form-group">
<label>Corners</label>
@Html.DropDownListFor(x =>
x.ORDER_CORNER_ID,
ViewBag.cornerDetailsBag as SelectList, "-----Select-----", new { @class = "form-
control" })
@Html.ValidationMessageFor(x => x.ORDER_CORNER_ID, "",
new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Paper Quality</label>
@Html.DropDownListFor(x => x.ORDER_PAPER_QUALITY_ID,
ViewBag.paperQualityDetailsBag as SelectList, "-----Select-----", new { @class =
"form-control" })
@Html.ValidationMessageFor(x =>
x.ORDER_PAPER_QUALITY_ID, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Size</label>
@Html.DropDownListFor(x => x.ORDER_SIZE_ID,
ViewBag.sizeDetailsBag as SelectList, "-----Select-----", new { @class = "form-
control" })
@Html.ValidationMessageFor(x => x.ORDER_SIZE_ID, "",
new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Quantity</label>
<div class="form-row col-sm-12">
@Html.TextBoxFor(x => x.ORDER_QUANTITY, new { type
= "number", Value = "1", min = "1", max = "10", step = "1", @class = "col-sm-3
form-control", id = "selectedNumber" })
<div class="form-control col-sm-9">
<label
id="price">@Model.PRODUCT_QUANTITY</label>
<label id="calculate">#</label>
</div>
</div>
</div>
@if (Model.PRODUCT_PAGE_DESIGN_REQUIRED == true)
{
<div class="form-group">
<label>Page Design</label>
@Html.DropDownListFor(x => x.ORDER_PAGE_ID,
ViewBag.pageDetailsBag as SelectList, "-----Select-----", new { @class = "form-
control" })
@Html.ValidationMessageFor(x => x.ORDER_PAGE_ID,
"", new { @class = "text-danger" })
</div>
}
</div>
<div class="col-sm-6">
<div class="form-group">
1
<label>Enter Details Related To Your Order</label>
@Html.TextAreaFor(x => x.ORDER_DESCRIPTION, new {
@class = "form-control", rows = "12", @placeholder = "Enter Details That You Want
To Print" })
@Html.ValidationMessageFor(x => x.ORDER_DESCRIPTION,
"", new { @class = "text-danger" })
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label>Upload Design For Reference (If Any)</label>
<img class="col-sm-12" id="the_img" style="border:solid"
src="~/FrameImage.png" height="350" />
@Html.TextBoxFor(x => x.postIMAGE, new { @class = "col-sm-
12 form-control", type = "file", onchange = "show(this)" })
@Html.ValidationMessageFor(x => x.postIMAGE, "", new {
@class = "text-danger" })
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label>Upload PDF Document (If Any)</label>
@Html.TextBoxFor(x => x.postPDF, new { @class = "col-sm-12
form-control", type = "file" })
@Html.ValidationMessageFor(x => x.postPDF, "", new {
@class = "text-danger" })
</div>
</div>
1
<div class="card">
<div class="card-body">
<div class="col-sm-12">
<h3>User Details</h3>
<hr />
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<h5>Email Id:</h5>@Model.CUSTOMER_EMAIL_ID
</div>
<div class="form-group">
<h5>Name:</h5>@Model.CUSTOMER_NAME
</div>
<div class="form-group">
<h5>Phone No:</h5>@Model.CUSTOMER_PHONE_NO
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<h5>Delivery Address:</h5>@Model.CUSTOMER_ADDRESS
</div>
</div>
</div>
<hr />
<h3>Review Order Details</h3>
<hr />
<div class="row">
<div class="col-sm-5 text-center">
<img src="@Url.Content(Model.PRODUCT_IMAGE)" class="
card- img-top border" height="300" />
<h6>Product Image</h6>
<hr />
</div>
<div class="col-sm-7">
<br />
<h4>Product Name : @Model.PRODUCT_NAME</h4>
<br />
<h5>Corners : @Model.ORDER_CORNER_NAME</h5>
<h5>Size : @Model.ORDER_SIZE_NAME</h5>
<h5>Paper Quality : @Model.ORDER_PAPER_QUALITY_NAME</h5>
<h5>Quantity : @Model.ORDER_QUANTITY Pec</h5>
@if (Model.ORDER_PAGE_ID != null)
{
<h5>Page : @Model.ORDER_PAGE_NAME</h5>
}
</div>
</div>
<div class="row">
@if (Model.ORDER_REFERENCE_IMAGE != null)
{
<div class="col-sm-5 text-center">
<img src="@Url.Content(Model.ORDER_REFERENCE_IMAGE)"
class=" card-img-top border" height="300" />
<h6>Reference Image (If Any)</h6>
<hr />
</div>
}
<div class="col-sm-7">
<br />
1
<h5>Description:</h5>
<h5>@Model.ORDER_DESCRIPTION</h5>
</div>
</div>
@if (Model.ORDER_REFERENCE_PDF != null)
{
<div class="col-sm-12">
<h6>Reference Pdf (If Any)</h6>
<input type="button" class="btn btn-outline-info"
value="Show Pdf" onclick="window.open('@Url.Action("ShowPdf", "Customer", new {
targe = "_blank", pdfFile = Model.ORDER_REFERENCE_PDF })')" />
</div>
}
<hr />
<h3>Payment</h3>
<hr />
<div class="row">
<div class="col-sm-6">
<h5>Finall Amount : Rs.@Model.ORDER_TOTAL_PRICE </h5>
<h6>Include All Taxes, All Service Chargers And After All
Discount</h6>
</div>
<div class="col-sm-6">
@if (Model.PRODUCT_ID_PROOF_REQUIRED == true)
{
<input class="btn btn-outline-info float-right"
type="submit" value="Book & Upload Id Proof" />
}
else
{
<input class="btn btn-outline-info float-right"
type="submit" value="Book & Make Payment" />
}
</div>
</div>
</div>
</div>
</div>
}
MyOrder.cshtml:-
@*List type model*@
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_PRINT_JOB_ORDER>
@{
ViewBag.Title = "My Order"; @*Page title*@
}
<h4>@ViewBag.Title</h4>
<hr />
1
@*Table to show data*@
<table class="table table-hover table-bordered table-striped table-dark">
<thead>
<tr>
<th>
Order Id
</th>
<th>
Product Type
</th>
<th>
Total Price
</th>
<th>
Options
</th>
</tr>
</thead>
<tbody>
ViewOrderDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_PRINT_JOB_ORDER @*Model*@
@{
ViewBag.Title = "Order Details"; @*Page title*@
}
<h4>@ViewBag.Title</h4>
<hr />
1
@*Show details of booked order*@
<div class="card">
<div class="card-body">
<div class="col-sm-12">
<h3>User Details</h3>
<hr />
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<h5>Order Id:</h5>@Model.ORDER_ID
</div>
<div class="form-group">
<h5>Customer Name:</h5>@Model.tbl_CUSTOMER.CUSTOMER_NAME
</div>
<div class="form-group">
<h5>Phone No.:</h5>@Model.tbl_CUSTOMER.CUSTOMER_PHONE_NO
</div>
<div class="form-group">
<h5>Email Id:</h5>@Model.tbl_CUSTOMER.CUSTOMER_EMAIL_ID
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<h5>Delivery Address:</h5>
@Model.tbl_CUSTOMER.CUSTOMER_ADDRESS
</div>
</div>
</div>
<hr />
<h3>Review Order Details</h3>
<hr />
<div class="row">
<div class="col-sm-5 text-center">
<img src="@Url.Content(Model.tbl_PRODUCT.PRODUCT_IMAGE)"
class=" card-img-top border" height="300" />
<h6>Product Image</h6>
<hr />
</div>
<div class="col-sm-7">
<br />
<h4>Product Name : @Model.tbl_PRODUCT.PRODUCT_NAME</h4>
<br />
<h5>Corners : @Model.tbl_PRODUCT_CORNER.CORNER_NAME</h5>
<h5>Size : @Model.tbl_PRODUCT_SIZE.SIZE_NAME</h5>
<h5>Paper Quality :
@Model.tbl_PRODUCT_PAPER_QUALITY.PAPER_QUALITY_NAME</h5>
<h5>Quantity : @Model.ORDER_QUANTITY Pec</h5>
@if (Model.ORDER_PAGE_ID_FK != null)
{
<h5>Page : @Model.tbl_PRODUCT_PAGE.PAGE_NAME</h5>
}
</div>
</div>
<div class="row">
@if (Model.ORDER_REFERENCE_IMAGE != null)
{
<div class="col-sm-5 text-center">
<img src="@Url.Content(Model.ORDER_REFERENCE_IMAGE)"
class=" card-img-top border" height="300" />
1
<h6>Reference Image</h6>
<hr />
</div>
}
<div class="col-sm-7">
<br />
<h5>Description:</h5>
<h5>@Model.ORDER_DESCRIPTION</h5>
</div>
</div>
<div class="row">
@if (Model.ORDER_REFERENCE_PDF != null)
{
<div class="col-sm-12">
<h6>Reference Pdf (If Any)</h6>
<input type="button" class="btn btn-outline-info"
value="Show Pdf" onclick="window.open('@Url.Action("ShowPdf", "Customer", new {
targe = "_blank", pdfFile = Model.ORDER_REFERENCE_PDF })')" />
</div>
}
</div>
<hr />
<h3>Payment Details</h3>
<hr />
<div class="row">
<div class="col-sm-6">
<h5>Payment Type : @Model.ORDER_PAYMENT_TYPE</h5>
<h5>Finall Amount : Rs.@Model.ORDER_TOTAL_PRICE </h5>
<h6>Include All Taxes, All Service Chargers And After All
Discount</h6>
</div>
<div class="col-sm-6">
<h5>Order Status : @Model.ORDER_STATUS</h5>
</div>
</div>
</div>
</div>
</div>
TrackOrder.cshtml:-
@*List type model*@
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_PRINT_JOB_ORDER>
@{
ViewBag.Title = "Track Order"; @*Page title*@
}
<h4>@ViewBag.Title</h4>
<hr />
1
<table class="table table-hover table-bordered table-striped table-dark">
<thead>
<tr>
<th>
Order Id
</th>
<th>
Product Type
</th>
<th>
Payment Type
</th>
<th>
Order Status
</th>
</tr>
</thead>
<tbody>
ProductForUploadIdProof.cshtml:-
@*List type model*@
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_PRINT_JOB_ORDER>
@{
ViewBag.Title = "Upload Id Proof"; @*Page title*@
}
<h4>@ViewBag.Title</h4>
<hr />
1
@*Table to show data*@
<table class="table table-hover table-bordered table-striped table-dark">
<thead>
<tr>
<th>
Order Id
</th>
<th>
Product Type
</th>
<th>
Total Price
</th>
<th>
Options
</th>
</tr>
</thead>
<tbody>
UploadIdProof.cshtml:-
@model OnlinePaperWork_OPW_.Models.IdProofModel @*Model*@
@{
ViewBag.Title = "Upload Id Proof"; @*Page title*@
}
1
</div>
<div class="card-body">
<div class="form-group">
<label>Order Id</label>
@Html.TextBoxFor(x => x.ID_PROOF_ORDER_ID_FK, new { @class
= "form-control", @Value = ViewBag.orderIdBag, @readonly = "readonly" })
</div>
<div class="form-group">
<label>Document Type</label>
@Html.DropDownListFor(x => x.ID_PROOF_DOCUMENT_TYPE,
(IEnumerable<SelectListItem>)ViewBag.DocumentTypeBag, "----- Select -----", new {
@class = "form-control" })
@Html.ValidationMessageFor(x => x.ID_PROOF_DOCUMENT_TYPE,
"", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Upload Image</label>
<div class="d-flex justify-content-center">
<img id="the_img" class="col-sm-10" height="250"
src="~/FrameImage.png" />
</div>
</div>
<div class="form-group">
@Html.TextBoxFor(x => x.postIMAGE, new { @class = "col-sm-
12 form-control", type = "file", onchange = "show(this)" })
@Html.ValidationMessageFor(x => x.postIMAGE, "", new {
@class = "text-danger" })
</div>
<div class="form-group">
@Html.ActionLink("Back", "ProductForUploadIdProof",
"Customer", null, new { @class = "btn btn-outline-warning " })
<input type="submit" class="btn btn-outline-success float-
right" value="Upload" />
</div>
</div>
</div>
</div>
</div>
}
ShowProductForPayment.cshtml:-
@*List type model*@
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_PRINT_JOB_ORDER>
@{
ViewBag.Title = "Make Payment"; @*Page title*@
}
<h4>@ViewBag.Title</h4>
<hr />
1
<table class="table table-hover table-bordered table-striped table-dark">
<thead>
<tr>
<th>
Order Id
</th>
<th>
Product Type
</th>
<th>
Total Price
</th>
<th>
Options
</th>
</tr>
</thead>
<tbody>
DebitCreditCard.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_PAYMENT @*Model*@
@{
ViewBag.Title = "Debit/Credit Card Payment"; @*Page title*@
}
1
@*Form to payment through debit/credit card*@
@using (Html.BeginForm("MakePayment", "Customer", FormMethod.Post))
{
<div class="container">
<div class="d-flex justify-content-center">
<div class="col-sm-5 ">
<div class="card mt-3">
<div class="card-header">
<h2>@ViewBag.Title</h2>
</div>
<div class="card-body">
<div class="form-group">
@Html.Hidden("ORDER_ID_FK", (int)ViewBag.orderIdBag)
@Html.Hidden("PAYMENT_TYPE",
(string)ViewBag.paymentTypeNameBag)
@Html.Hidden("PAYMENT_AMOUNT",
(int)ViewBag.totalPriceBag)
<label>Name On Card</label>
@Html.TextBox("Name On Card", null, new { @class =
"form-control", @placeholder = "Name On Card" })
</div>
<div class="form-group">
<label>Card Number</label>
@Html.TextBox("Card Number", null, new { @class =
"form-control", @placeholder = "Card Number" })
</div>
<div class="form-group row">
<div class="col-sm-4">
<label>CVV</label>
@Html.TextBox("CVV", null, new { @class = "form-
control", @placeholder = "CVV" })
</div>
<div class="col-sm-4">
<label>Expiration</label>
@Html.TextBox("MM", null, new { @class = "form-
control", @placeholder = "MM" })
</div>
<div class="col-sm-4">
<label></label>
@Html.TextBox("YYYY", null, new { @class = "form-
control", @placeholder = "YYYY" })
</div>
</div>
<div class="form-group row">
<div class="col-sm-4 offset-sm-4">
<label>Pin</label>
@Html.TextBox("Pin", null, new { @class = "form-
control", @placeholder = "Pin" })
</div>
<div class="col-sm-4">
</div>
</div>
<div class="form-group">
<input type="submit" value="Amount :
Rs.@ViewBag.totalPriceBag Pay" class="btn btn-outline-success btn-block" />
</div>
</div>
</div>
</div>
1
</div>
</div>
}
NetBanking.cshtml:-
@{
ViewBag.Title = "Net Banking"; @*Page title*@
}
<h4>@ViewBag.Title</h4>
<hr />
<h4>Service Not Available...</h4>
BillReport.cshtml:-
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_PAYMENT> @*List type
model*@ @{
ViewBag.Title = "Bill Report"; @*Page title*@
}
<h4>@ViewBag.Title</h4>
<hr />
1
</td>
<td>
@payment.PAYMENT_AMOUNT
</td>
</tr>
}
</tbody>
</table>
}
Feedback.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_FEEDBACK @*Model*@
@{
ViewBag.Title = "Feedback"; @*Page title*@
}
1
AboutUs.cshtml:-
@{
ViewBag.Title = "About Us"; @*Page title*@
}
CustomerController.cs
//importing files
using OnlinePaperWork_OPW_.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data;
using System.IO;
using System.Net.Mail;
using System.Net;
//customer class
public class CustomerController : Controller
{
//instantiating of database and model classes
1
private OnlinePaperWorkEntities db = new OnlinePaperWorkEntities();
private OrderDetailsModel orderDetailsModel = new OrderDetailsModel();
1
//Forgot password action method http get
public ActionResult ForgotPassword()
{
return View();
}
1
return View();
1
//Login action method http post
[HttpPost]
public ActionResult Login(tbl_CUSTOMER customer)
{
try
{
//getting customer details from database
var cutomerValidity = db.tbl_CUSTOMER.Where(x =>
x.CUSTOMER_LOGIN_ID == customer.CUSTOMER_LOGIN_ID && x.CUSTOMER_PASSWORD ==
customer.CUSTOMER_PASSWORD).FirstOrDefault();
1
var existingDetails = db.tbl_CUSTOMER.Where(x => x.CUSTOMER_PHONE_NO
== customer.CUSTOMER_PHONE_NO || x.CUSTOMER_EMAIL_ID ==
customer.CUSTOMER_EMAIL_ID).Where(y => y.CUSTOMER_ID !=
customerSession).FirstOrDefault();
//destoring session
Session.Clear();
Session.Abandon();
return RedirectToAction("Home");
}
1
//Search product action method http get
public ActionResult SearchProduct(string searchParameter)
{
//creating list of category details and sending list of product to the view
List<tbl_CATEGORY> categoryList = db.tbl_CATEGORY.ToList();
ViewBag.categorylistBag = categoryList;
return View(db.tbl_PRODUCT.OrderBy(x =>
x.PRODUCT_CATEGORY_ID_FK).ToList());
}
//getting details of singal category from database using categoryid and sending
all product of that category
tbl_CATEGORY category = db.tbl_CATEGORY.Where(x => x.CATEGORY_ID ==
categoryId).FirstOrDefault();
ViewBag.categoryNameBag = category.CATEGORY_NAME.ToString();
1
//creating list of corners,paper quality,size and page details
ViewBag.cornerDetailsBag = new
SelectList(db.tbl_PRODUCT_CORNER.Where(x => x.CORNER_CATEGORY_ID_FK ==
categoryId), "CORNER_ID", "CORNER_NAME");
ViewBag.paperQualityDetailsBag = new
SelectList(db.tbl_PRODUCT_PAPER_QUALITY.Where(x => x.PAPER_QUALITY_CATEGORY_ID_FK
== categoryId), "PAPER_QUALITY_ID", "PAPER_QUALITY_NAME");
ViewBag.sizeDetailsBag = new SelectList(db.tbl_PRODUCT_SIZE.Where(x =>
x.SIZE_CATEGORY_ID_FK == categoryId), "SIZE_ID", "SIZE_NAME");
ViewBag.pageDetailsBag = new SelectList(db.tbl_PRODUCT_PAGE.Where(x =>
x.PAGE_CATEGORY_ID_FK == categoryId), "PAGE_ID", "PAGE_NAME");
return View(orderDetailsModel);
}
try
{
orderDetailsModel.ORDER_CORNER_ID = order.ORDER_CORNER_ID;
orderDetailsModel.ORDER_PAPER_QUALITY_ID =
order.ORDER_PAPER_QUALITY_ID;
orderDetailsModel.ORDER_SIZE_ID = order.ORDER_SIZE_ID;
1
tbl_PRODUCT_CORNER cornerDetails =
db.tbl_PRODUCT_CORNER.Where(x => x.CORNER_ID ==
order.ORDER_CORNER_ID).FirstOrDefault();
orderDetailsModel.ORDER_CORNER_NAME =
cornerDetails.CORNER_NAME;
tbl_PRODUCT_PAPER_QUALITY paperQualityDetails =
db.tbl_PRODUCT_PAPER_QUALITY.Where(x => x.PAPER_QUALITY_ID ==
order.ORDER_PAPER_QUALITY_ID).FirstOrDefault();
orderDetailsModel.ORDER_PAPER_QUALITY_NAME =
paperQualityDetails.PAPER_QUALITY_NAME;
if (order.ORDER_PAGE_ID != null)
{
tbl_PRODUCT_PAGE pageDetails = db.tbl_PRODUCT_PAGE.Where(x
=> x.PAGE_ID == order.ORDER_PAGE_ID).FirstOrDefault();
orderDetailsModel.ORDER_PAGE_NAME = pageDetails.PAGE_NAME;
}
orderDetailsModel.ORDER_QUANTITY =
productDetails.PRODUCT_QUANTITY * order.ORDER_QUANTITY;
orderDetailsModel.ORDER_DESCRIPTION = order.ORDER_DESCRIPTION;
orderDetailsModel.ORDER_TOTAL_PRICE =
productDetails.PRODUCT_PRICE * order.ORDER_QUANTITY;
TempData["checkOutDetails"] = orderDetailsModel;
return View(orderDetailsModel);
}
catch (Exception e)
{
TempData["Message"] = e.Message;
}
1
printJobOrder.ORDER_SIZE_ID_FK = orderDetailsModel.ORDER_SIZE_ID;
printJobOrder.ORDER_QUANTITY = orderDetailsModel.ORDER_QUANTITY;
printJobOrder.ORDER_PAGE_ID_FK = orderDetailsModel.ORDER_PAGE_ID;
printJobOrder.ORDER_REFERENCE_IMAGE =
orderDetailsModel.ORDER_REFERENCE_IMAGE;
printJobOrder.ORDER_REFERENCE_PDF =
orderDetailsModel.ORDER_REFERENCE_PDF;
printJobOrder.ORDER_TOTAL_PRICE =
orderDetailsModel.ORDER_TOTAL_PRICE;
printJobOrder.ORDER_PAYMENT_TYPE = "Payment Not Made";
if (orderDetailsModel.PRODUCT_ID_PROOF_REQUIRED ==
true)
{
printJobOrder.ORDER_STATUS = "Waiting For Id Proof";
}
else
{
printJobOrder.ORDER_STATUS = "Waiting For Payment";
}
printJobOrder.ORDER_DESCRIPTION =
orderDetailsModel.ORDER_DESCRIPTION;
db.tbl_PRINT_JOB_ORDER.Add(printJobOrder);
db.SaveChanges();
ModelState.Clear();
TempData["Message"] = "Order Has Been Booked, Thankyou...";
if (orderDetailsModel.PRODUCT_ID_PROOF_REQUIRED == true)
{
return RedirectToAction("ProductForUploadIdProof");
}
else
{
return RedirectToAction("ShowProductForPayment");
}
}
catch (Exception e)
{
TempData["Message"] = e.Message;
}
return RedirectToAction("Home");
}
//sending all booked order details to view using customer id from database
return View(db.tbl_PRINT_JOB_ORDER.Where(x => x.ORDER_CUSTOMER_ID_FK
== customerId).ToList().OrderByDescending(y => y.ORDER_ID));
}
//sending singal booked order details to view using order id from database
1
return View(db.tbl_PRINT_JOB_ORDER.Where(x => x.ORDER_ID ==
orderId).FirstOrDefault());
}
1
DocumentType.Add(new SelectListItem { Text = "Pan Card", Value = "Pan
Card" });
DocumentType.Add(new SelectListItem { Text = "Driving Licence", Value
= "Driving Licence" });
ViewBag.DocumentTypeBag = DocumentType;
return View();
}
tbl_PRINT_JOB_ORDER orderDetails =
db.tbl_PRINT_JOB_ORDER.Where(x => x.ORDER_ID ==
idProof.ID_PROOF_ORDER_ID_FK).FirstOrDefault();
orderDetails.ORDER_STATUS = "Waiting For Approving Id Proof";
db.Entry(orderDetails).State = EntityState.Modified;
db.SaveChanges();
TempData["Message"] = "Id Proof Uploaded Successfully...";
return RedirectToAction("TrackOrder");
}
catch (Exception e)
{
TempData["Message"] = e.Message;
}
}
ViewBag.orderIdBag = idProof.ID_PROOF_ORDER_ID_FK;
return RedirectToAction("UploadIdProof", new { orderId
=
idProof.ID_PROOF_ORDER_ID_FK });
}
1
{
//sending order details which is waiting for payment
int customerId = Convert.ToInt32(Session["CustomerId"]);
return View(db.tbl_PRINT_JOB_ORDER.Where(x => x.ORDER_CUSTOMER_ID_FK
== customerId && x.ORDER_STATUS == "Waiting For
Payment").ToList().OrderByDescending(y => y.ORDER_ID));
}
1
tbl_PRINT_JOB_ORDER orderDetails = db.tbl_PRINT_JOB_ORDER.Where(x =>
x.ORDER_ID == orderId).SingleOrDefault();
ViewBag.totalPriceBag = orderDetails.ORDER_TOTAL_PRICE;
return View();
}
1
feedbackTypeList.Add(new SelectListItem { Text = "Category", Value =
"Category", });
feedbackTypeList.Add(new SelectListItem { Text = "Payment", Value =
"Payment", });
feedbackTypeList.Add(new SelectListItem { Text = "Service", Value =
"Service", });
feedbackTypeList.Add(new SelectListItem { Text = "Other", Value =
"Other", });
ViewBag.feedbackTypeBag = feedbackTypeList;
return View();
}
1
}
}
}
_LayoutAdministrator.cshtml:-
<!DOCTYPE html> @*Doctype tag*@
<html> @*Html tag*@
<head> @*Head tag*@
<title>@ViewBag.Title - Online Paper Work(OPW)</title> @*title tag*@
1
</head> @*Head closing tag*@
<body class="bg-light"> @*Body tag*@
<div class="d-flex p-2 bg-info text-white">
<b>ONLINE PAPER WORK (OPW)</b>
</div>
1
<li>@Html.ActionLink("Page Details",
"ShowPageDetails", "ProductSpecification", null, new { @class = "dropdown-item"
})</li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#"
id="navbarDropdownUtility" role="button" data-toggle="dropdown" aria-
haspopup="true" aria-expanded="false">
Utility
</a>
<ul class="dropdown-menu" aria-
labelledby="navbarDropdownUtility">
<li>@Html.ActionLink("Raw Material Details",
"ShowRawMaterialDetails", "Utility", null, new { @class = "dropdown-item" })</li>
<li>@Html.ActionLink("Supplier Details",
"ShowSupplierDetails", "Utility", null, new { @class = "dropdown-item" })</li>
<li>@Html.ActionLink("Staff Details",
"ShowStaffDetails", "Utility", null, new { @class = "dropdown-item" })</li>
</ul>
</li>
</ul>
1
@*Render body*@
@RenderBody()
<hr />
@*Footer*@
<footer>
<p>Online Paper Work(OPW)</p>
</footer>
</div>
Administrator Login.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_ADMINISTRATOR @*Model*@
@{
ViewBag.Title = "Administrator Login"; @*Page title*@
}
1
<input type="submit" value="Login" class="btn btn-
outline-primary float-right" />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
}
ShowCategory.cshtml:-
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_CATEGORY> @*List type
model*@ @{
ViewBag.Title = "Category"; @*Page title*@
}
<h4>
@ViewBag.Title
1
}
</div>
}
AddCategory.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_CATEGORY @*Model*@
@{
ViewBag.Title = "Add Category"; @*Page title*@
}
UpdateCategory.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_CATEGORY @*Model*@
1
@{
ViewBag.Title = "Update Category"; @*Page title*@
}
ShowProduct.cshtml:-
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_PRODUCT> @*List type
model*@ @{
ViewBag.Title = "Product"; @*Page title*@
}
<h4>@ViewBag.Title</h4>
<hr />
1
@if (Model.Count() == 0)
{
<h3>No Records Found....</h3>
}
else
{
<div class="row">
AddProduct.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_PRODUCT @*Model*@
@{
ViewBag.Title = "Add Product"; @*Page title*@
}
1
<div class="form-group">
<label>Product Name</label>
@Html.TextBoxFor(x => x.PRODUCT_NAME, new { @class
= "form-control", @placeholder = "Product Name" })
@Html.ValidationMessageFor(x => x.PRODUCT_NAME, "", new {
@class = "text-danger" })
</div>
<div class="form-group">
<label>Product Price</label>
@Html.TextBoxFor(x => x.PRODUCT_PRICE, new { @class =
"form-control", @placeholder = "Product Price" })
@Html.ValidationMessageFor(x => x.PRODUCT_PRICE, "", new {
@class = "text-danger" })
</div>
<div class="form-group">
<label>Product Quantity</label>
@Html.TextBoxFor(x => x.PRODUCT_QUANTITY, new { @class
= "form-control", @placeholder = "Product Quantity" })
@Html.ValidationMessageFor(x => x.PRODUCT_QUANTITY, "",
new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Page Designing Required</label>
@Html.DropDownListFor(x => x.PRODUCT_PAGE_DESIGN_REQUIRED,
(IEnumerable<SelectListItem>)ViewBag.YesNoListBag, null, new { @class = "form-
control" })
@Html.ValidationMessageFor(x =>
x.PRODUCT_PAGE_DESIGN_REQUIRED, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Id Proof Required</label>
@Html.DropDownListFor(x =>
x.PRODUCT_ID_PROOF_REQUIRED,
(IEnumerable<SelectListItem>)ViewBag.YesNoListBag, null, new { @class = "form-
control" })
@Html.ValidationMessageFor(x =>
x.PRODUCT_ID_PROOF_REQUIRED, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Product Description</label>
@Html.TextAreaFor(x => x.PRODUCT_DESCRIPTION, new { @class
= "form-control", @placeholder = "Product Description" })
@Html.ValidationMessageFor(x => x.PRODUCT_DESCRIPTION, "",
new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Select Image</label>
<div class="d-flex justify-content-center">
<img id="the_img" class="col-sm-10" height="250"
src="~/FrameImage.png" />
</div>
</div>
<div class="form-group">
<input type="file" class="form-control-file " id="file"
name="file" onchange="show(this)" required />
</div>
<div class="form-group">
@Html.ActionLink("Back", "ShowCategory", "Administrator",
null, new { @class = "btn btn-outline-warning " })
1
<input type="submit" class="btn btn-outline-success float-
right" value="Create" />
</div>
</div>
</div>
</div>
</div>
}
UpdateProduct.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_PRODUCT @*Model*@
@{
ViewBag.Title = "Update Product"; @*Page title*@
}
1
<label>Page Designing Required</label>
@Html.DropDownListFor(x =>
x.PRODUCT_PAGE_DESIGN_REQUIRED, (IEnumerable<SelectListItem>)ViewBag.YesNoListBag,
new { @class = "form-control" })
@Html.ValidationMessageFor(x =>
x.PRODUCT_PAGE_DESIGN_REQUIRED, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Id Proof Required</label>
@Html.DropDownListFor(x =>
x. PRODUCT_ID_PROOF_REQUIRED, (IEnumerable<SelectListItem>)ViewBag.YesNoListBag,
new { @class = "form-control" })
@Html.ValidationMessageFor(x =>
x.PRODUCT_ID_PROOF_REQUIRED, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Product Description</label>
@Html.TextAreaFor(x => x.PRODUCT_DESCRIPTION, new {
@class = "form-control", @placeholder = "Product Description" })
@Html.ValidationMessageFor(x => x.PRODUCT_DESCRIPTION,
"", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Select Image</label>
<img id="the_img" class="col-sm-12 justify-content-
center" height="250" src="@Url.Content(Model.PRODUCT_IMAGE)" />
</div>
<div class="form-group">
<input type="file" class="form-control-file "
id="file" name="file" onchange="show(this)" required/>
</div>
<div class="form-group">
@Html.ActionLink("Cancel", "ShowProduct",
"Administrator", new { categoryId = Model.PRODUCT_CATEGORY_ID_FK }, new { @class =
"btn btn-outline-danger" })
<input type="submit" class="btn btn-outline-success
float-right" value="Update" />
</div>
</div>
</div>
</div>
</div>
</div>
}
ShowPrintingOrder.cshtml:-
1
{
<h4>No Details Found...</h4>
}
else
{
1
</tr>
}
</tbody>
</table>
}
ViewOrderDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_PRINT_JOB_ORDER @*Model*@
@{
ViewBag.Title = "Order Details"; @*Page title*@
}
<h4>@ViewBag.Title</h4>
<hr />
1
<h5>Paper Quality :
@Model.tbl_PRODUCT_PAPER_QUALITY.PAPER_QUALITY_NAME</h5>
<h5>Quantity : @Model.ORDER_QUANTITY Pec</h5>
@if (Model.ORDER_PAGE_ID_FK != null)
{
<h5>Page : @Model.tbl_PRODUCT_PAGE.PAGE_NAME</h5>
}
</div>
</div>
<div class="row">
@if (Model.ORDER_REFERENCE_IMAGE != null)
{
<div class="col-sm-5 text-center">
<img src="@Url.Content(Model.ORDER_REFERENCE_IMAGE)"
class=" card-img-top border" height="300" />
<h6>Reference Image</h6>
<hr />
</div>
}
<div class="col-sm-7">
<br />
<h5>Description:</h5>
<h5>@Model.ORDER_DESCRIPTION</h5>
</div>
</div>
<br />
<div class="row">
@if (Model.ORDER_REFERENCE_PDF != null)
{
<div class="col-sm-12">
<h6>Reference Pdf (If Any)</h6>
<input type="button" class="btn btn-outline-info"
value="Show Pdf" onclick="window.open('@Url.Action("ShowPdf", "Administrator", new
{ targe = "_blank", pdfFile = Model.ORDER_REFERENCE_PDF })')" />
</div>
}
</div>
<hr />
<h3>Payment Details</h3>
<hr />
<div class="row">
<div class="col-sm-6">
<h5>Payment Type : @Model.ORDER_PAYMENT_TYPE</h5>
<h5>Finall Amount : Rs.@Model.ORDER_TOTAL_PRICE </h5>
<h6>Include All Taxes, All Service Chargers And After All
Discount</h6>
</div>
<div class="col-sm-6">
<h5>Order Status : @Model.ORDER_STATUS</h5>
@if (Model.ORDER_STATUS != "Canceled" && Model.ORDER_STATUS !=
"Rejected" && Model.ORDER_STATUS != "Waiting For Approving Id Proof" &&
Model.ORDER_STATUS != "Waiting For Payment")
{
<div class="form-group">
<h5>Order Status Option :</h5>
@Html.DropDownList("Order Option", new
SelectList(new[]{
1
new SelectListItem { Text = "Printing", Value =
Url.Action("OrderStatusOption", "Administrator", new{orderId=Model.ORDER_ID,
Status="Printing",}) },
new SelectListItem { Text = "Finished", Value =
Url.Action("OrderStatusOption", "Administrator", new{orderId=Model.ORDER_ID,
Status="Finished"}) },
new SelectListItem { Text = "Delivered", Value =
Url.Action("OrderStatusOption", "Administrator", new{orderId=Model.ORDER_ID,
Status="Delivered"}) },}, "Value", "Text"),
"----- Select -----", new { id = "urlFuntion", @class
= "form-control" })
</div>
}
</div>
</div>
</div>
</div>
</div>
ShowIdProofDetails.cshtml:-
@*List type model*@
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_ID_PROOF>
@{
ViewBag.Title = "Id Proof Details"; @*Page title*@
}
<h4>@ViewBag.Title</h4>
<hr />
1
</th>
</tr>
</thead>
<tbody>
ShowPaymentDetails.cshtml:-
1
else
{
ShowPaymentDetails.cshtml:-
@*Model with data*@
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_FEEDBACK>
@{
ViewBag.Title = "Feedback Details"; @*Page title*@
}
<h4>@ViewBag.Title</h4>
<hr />
1
}
else
{
AdministratorController.cs:-
//importing files
using OnlinePaperWork_OPW_.Models;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
1
using System.Data;
//administrator class
public class AdministratorController : Controller
{
1
//administrator logout action method http get
public ActionResult Logout()
{
//clearning session
Session.Clear();
Session.Abandon();
return RedirectToAction("Login");
}
1
tbl_CATEGORY categoryData = db.tbl_CATEGORY.Where(x => x.CATEGORY_ID
== categoryFormCollection.CATEGORY_ID).FirstOrDefault();
try
{
categoryData.CATEGORY_NAME = categoryFormCollection.CATEGORY_NAME;
if (file != null)
{
categoryData.CATEGORY_IMAGE = UploadImageFile(file);
}
else
{
categoryData.CATEGORY_IMAGE = categoryData.CATEGORY_IMAGE;
}
db.Entry(categoryData).State = EntityState.Modified;
db.SaveChanges();
ModelState.Clear();
TempData["Message"] = "Category Updated Successfully...";
}
catch (Exception e)
{
TempData["Message"] = e.Message;
}
return RedirectToAction("ShowCategory");
}
1
List<SelectListItem> YesNoList = new List<SelectListItem>();
YesNoList.Add(new SelectListItem { Text = "No", Value = "false",
Selected = true });
YesNoList.Add(new SelectListItem { Text = "Yes", Value = "true", });
ViewBag.YesNoListBag = YesNoList;
return View();
}
}
catch (Exception e)
{
TempData["Message"] = e.Message;
}
return View();
}
ViewBag.YesNoListBag = YesNoList;
1
return View(db.tbl_PRODUCT.Where(x => x.PRODUCT_ID ==
productId).FirstOrDefault());
}
1
return View(db.tbl_PRINT_JOB_ORDER.ToList().OrderByDescending(x =>
x.ORDER_ID));
}
1
//approve id prove action method http get
public ActionResult ApproveIdProve(int orderId)
{
try
{
//saving appove id proof details in database using order id
tbl_PRINT_JOB_ORDER orderDetails = db.tbl_PRINT_JOB_ORDER.Where(x
=> x.ORDER_ID == orderId).SingleOrDefault();
orderDetails.ORDER_STATUS = "Waiting For Payment";
db.Entry(orderDetails).State = EntityState.Modified;
db.SaveChanges();
TempData["Message"] = "Id Proof Approved Successfully...";
}
catch (Exception e)
{
TempData["Message"] = e.Message;
}
return RedirectToAction("ShowIdProof");
}
1
//upload image file function
public string UploadImageFile(HttpPostedFileBase file)
{
var allowedExtensions = new[] { ".Jpg", ".png", ".jpg", ".jpeg" };
string path = "Not Available";
if (file != null)
{
var name = Path.GetFileNameWithoutExtension(file.FileName);
var ext = Path.GetExtension(file.FileName);
if (allowedExtensions.Contains(ext))
{
try
{
string myfile = name + "_" +
DateTime.Now.ToString("dd_MM_yyyy_hh_mm_tt") + ext;
path = Path.Combine(Server.MapPath("~/images/"), myfile);
file.SaveAs(path);
}
}
ShowCornerDetails.cshtml:-
@*List type model*@
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_PRODUCT_CORNER>
@{
ViewBag.Title = "Corner Details"; @*Page title*@
}
<h4>
@ViewBag.Title
@Html.ActionLink("Add Corner", "AddCornerDetails", null, new { @class = "btn
btn-outline-primary float-right" })
</h4>
<hr />
1
@*Condition to check if data is null*@
@if (Model.Count() == 0)
{
<h4>No Details Found...</h4>
}
else
{
@*Table to show data*@
<table class="table table-hover table-bordered table-striped table-dark">
<thead>
<tr>
<th>
Category Name
</th>
<th>
Corner
</th>
<th>
Option
</th>
</tr>
</thead>
<tbody>
@*For each loop to show details*@
@foreach (var category in ViewBag.categoryListBag)
{
foreach (var corner in Model.Where(x => x.CORNER_CATEGORY_ID_FK ==
category.CATEGORY_ID))
{
<tr>
<td>
@category.CATEGORY_NAME
</td>
<td>
@corner.CORNER_NAME
</td>
<td>
@Html.ActionLink("Update", "UpdateCornerDetails", new
{ cornerId = corner.CORNER_ID }, new { @class = "btn btn-outline-warning" })
@Html.ActionLink("Delete", "DeleteCornerDetails", new
{ cornerId = corner.CORNER_ID }, new { @class = "btn btn-outline-danger", onclick
= "return confirm('Are you sure you wish to delete this corner detail?');" })
</td>
</tr>
}
}
</tbody>
</table>
}
AddCornerDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_PRODUCT_CORNER @*Model*@
@{
ViewBag.Title = "Add Corner Details";
}
1
@*Add corner details form*@
@using (Html.BeginForm("AddCornerDetails", "ProductSpecification",
FormMethod.Post))
{
<div class="d-flex justify-content-center">
<div class="col-sm-5">
<div class="card">
<div class="card-header">
<h2>@ViewBag.Title</h2>
</div>
<div class="card-body">
<div class="form-group">
<label>Category Name</label>
@Html.DropDownListFor(x =>
x.CORNER_CATEGORY_ID_FK,
ViewBag.categoryListBag as SelectList, "-----Select-----", new { @class = "form-
control" })
@Html.ValidationMessageFor(x => x.CORNER_CATEGORY_ID_FK,
"", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Corner Name</label>
@Html.TextBoxFor(x => x.CORNER_NAME, new { @class = "form-
control", @placeholder = "Corner Name" })
@Html.ValidationMessageFor(x => x.CORNER_NAME, "", new {
@class = "text-danger" })
</div>
<div class="form-group">
@Html.ActionLink("Back", "ShowCornerDetails", null, new {
@class = "btn btn-outline-warning" })
<input type="submit" class="btn btn-outline-success float-
right" value="Create" />
</div>
</div>
</div>
</div>
</div>
}
UpdateCornerDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_PRODUCT_CORNER @*Model*@
@{
ViewBag.Title = "Update Corner Details"; @*Page title*@
}
1
<label>Category Name</label>
@Html.DropDownListFor(x =>
x.CORNER_CATEGORY_ID_FK,
ViewBag.categoryListBag as SelectList, "-----Select-----", new { @class = "form-
control" })
@Html.ValidationMessageFor(x => x.CORNER_CATEGORY_ID_FK,
"", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Corner Name</label>
@Html.TextBoxFor(x => x.CORNER_NAME, new { @class = "form-
control", @placeholder = "Corner Name" })
@Html.ValidationMessageFor(x => x.CORNER_NAME, "", new {
@class = "text-danger" })
</div>
<div class="form-group">
@Html.ActionLink("Back", "ShowCornerDetails", null, new {
@class = "btn btn-outline-warning" })
<input type="submit" class="btn btn-outline-success float-
right" value="Update" />
</div>
</div>
</div>
</div>
</div>
}
ShowPaperQualityDetails.cshtml:-
@*List type model*@
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_PRODUCT_PAPER_QUALITY>
@{
ViewBag.Title = "Paper Quality Details"; @*Page title*@
}
<h4>
@ViewBag.Title
@Html.ActionLink("Add Paper Quality", "AddPaperQualityDetails", null, new {
@class = "btn btn-outline-primary float-right" })
</h4>
<hr />
1
Option
</th>
</tr>
</thead>
<tbody>
AddPaperQualityDetails.cshtml:-
@*Model*@
@model OnlinePaperWork_OPW_.Models.tbl_PRODUCT_PAPER_QUALITY
@{
ViewBag.Title = "Add Paper Quality Details"; @*Page title*@
}
1
@Html.ValidationMessageFor(x =>
x.PAPER_QUALITY_CATEGORY_ID_FK, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Paper Quality Name</label>
@Html.TextBoxFor(x => x.PAPER_QUALITY_NAME, new { @class
= "form-control", @placeholder = "Paper Quality Name" })
@Html.ValidationMessageFor(x => x.PAPER_QUALITY_NAME, "",
new { @class = "text-danger" })
</div>
<div class="form-group">
@Html.ActionLink("Back", "ShowPaperQualityDetails", null,
new { @class = "btn btn-outline-warning" })
<input type="submit" class="btn btn-outline-success float-
right" value="Create" />
</div>
</div>
</div>
</div>
</div>
}
UpdatePaperQualityDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_PRODUCT_PAPER_QUALITY @*Model*@
@{
ViewBag.Title = "Update Paper Quality Details"; @*Page title*@
}
1
<input type="submit" class="btn btn-outline-success float-
right" value="Update" />
</div>
</div>
</div>
</div>
</div>
}
ShowSizeDetails.cshtml:-
@*List type details model*@
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_PRODUCT_SIZE>
@{
ViewBag.Title = "Size Details"; @*Page title*@
}
<h4>
@ViewBag.Title
@Html.ActionLink("Add Size", "AddSizeDetails", null, new { @class = "btn btn-
outline-primary float-right" })
</h4>
<hr />
1
@size.SIZE_NAME
</td>
<td>
@Html.ActionLink("Update", "UpdateSizeDetails", new {
sizeId = size.SIZE_ID }, new { @class = "btn btn-outline-warning" })
@Html.ActionLink("Delete", "DeleteSizeDetails", new {
sizeId = size.SIZE_ID }, new { @class = "btn btn-outline-danger", onclick =
"return confirm('Are you sure you wish to delete this size detail?');" })
</td>
</tr>
}
}
</tbody>
</table>
}
AddSizeDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_PRODUCT_SIZE @*Model*@
@{
ViewBag.Title = "Add Size Details"; @*Page title*@
}
1
UpdateSizeDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_PRODUCT_SIZE @*Model*@
@{
ViewBag.Title = "Update Size Details"; @*Page title*@
}
ShowPageDetails.cshtml:-
@*List type model*@
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_PRODUCT_PAGE>
@{
ViewBag.Title = "Page Details"; @*Page title*@
}
<h4>
@ViewBag.Title
@Html.ActionLink("Add Page", "AddPageDetails", null, new { @class = "btn btn-
outline-primary float-right" })
</h4>
1
<hr />
AddPageDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_PRODUCT_PAGE @*Model*@
1
@{
ViewBag.Title = "Add Page Details"; @*Page title*@
}
UpdatePageDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_PRODUCT_PAGE @*Model*@
@{
ViewBag.Title = "Update Page Details"; @*Page title*@
}
1
@Html.HiddenFor(x => x.PAGE_ID)
<div class="form-group">
<label>Category Name</label>
@Html.DropDownListFor(x => x.PAGE_CATEGORY_ID_FK,
ViewBag.categoryListBag as SelectList, "-----Select-----", new { @class = "form-
control" })
@Html.ValidationMessageFor(x => x.PAGE_CATEGORY_ID_FK, "",
new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Page Name</label>
@Html.TextBoxFor(x => x.PAGE_NAME, new { @class = "form-
control", @placeholder = "Page Name" })
@Html.ValidationMessageFor(x => x.PAGE_NAME, "", new {
@class = "text-danger" })
</div>
<div class="form-group">
@Html.ActionLink("Back", "ShowPageDetails", null, new {
@class = "btn btn-outline-warning" })
<input type="submit" class="btn btn-outline-success float-
right" value="Update" />
</div>
</div>
</div>
</div>
</div>
}
ProductSpecificationController.cs
//importing files
using OnlinePaperWork_OPW_.Models;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.Mvc;
1
//show paper details action method http get
public ActionResult ShowPaperQualityDetails()
{
//sending all product paper quality and category details to view from database
ViewBag.categoryListBag = db.tbl_CATEGORY.ToList();
return View(db.tbl_PRODUCT_PAPER_QUALITY.ToList().OrderByDescending(x
=> x.PAPER_QUALITY_ID));
}
1
}
return RedirectToAction("ShowCornerDetails");
}
1
{
1
if (ModelState.IsValid)
{
db.tbl_PRODUCT_SIZE.Add(size);
db.SaveChanges();
TempData["Message"] = "Size Details Added Successfully...";
}
else
{
1
List<tbl_CATEGORY> categoryList = db.tbl_CATEGORY.ToList();
ViewBag.categoryListBag = new SelectList(categoryList, "CATEGORY_ID",
"CATEGORY_NAME");
return View(db.tbl_PRODUCT_CORNER.Where(x => x.CORNER_ID ==
cornerId).FirstOrDefault());
}
//sending paper quality and category details to view from database using paper
quality id
List<tbl_CATEGORY> categoryList = db.tbl_CATEGORY.ToList();
ViewBag.categoryListBag = new SelectList(categoryList, "CATEGORY_ID",
"CATEGORY_NAME");
return View(db.tbl_PRODUCT_PAPER_QUALITY.Where(x => x.PAPER_QUALITY_ID
== paperQualityId).FirstOrDefault());
}
1
//updating corner details in database
try
{
if (ModelState.IsValid)
{
tbl_PRODUCT_PAPER_QUALITY paperQualityDetails =
db.tbl_PRODUCT_PAPER_QUALITY.Where(x => x.PAPER_QUALITY_ID ==
paperQuality.PAPER_QUALITY_ID).FirstOrDefault();
paperQualityDetails.PAPER_QUALITY_NAME =
paperQuality.PAPER_QUALITY_NAME;
paperQualityDetails.PAPER_QUALITY_CATEGORY_ID_FK =
paperQuality.PAPER_QUALITY_CATEGORY_ID_FK;
db.Entry(paperQualityDetails).State = EntityState.Modified;
db.SaveChanges();
ModelState.Clear();
TempData["Message"] = "Paper Quality Details Updated
Successfully...";
}
else
{
TempData["Message"] = "Error, Try Again Later...";
}
}
catch (Exception e)
{
TempData["Message"] = e.Message;
}
return RedirectToAction("ShowPaperQualityDetails");
}
1
TempData["Message"] = "Size Quality Details Updated
Successfully...";
}
else
{
TempData["Message"] = "Error, Try Again Later...";
}
}
catch (Exception e)
{
TempData["Message"] = e.Message;
}
return RedirectToAction("ShowSizeDetails");
}
return RedirectToAction("ShowPageDetails");
}
1
//delete corner details action method http get
public ActionResult DeleteCornerDetails(int cornerId)
{
1
return RedirectToAction("ShowSizeDetails");
}
ShowRawMaterialDetails.cshtml:-
@*List type model*@
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_RAW_MATERIAL>
@{
ViewBag.Title = "Raw Material Details"; @*Page title*@
}
<h4>
@ViewBag.Title
@Html.ActionLink("Add Raw Material", "AddRawMaterialDetails", null, new {
@class = "btn btn-outline-primary float-right" })
</h4>
<hr />
1
Quantity
</th>
<th>
Option
</th>
</tr>
</thead>
<tbody>
AddRawMaterialDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_RAW_MATERIAL @*Model*@
@{
ViewBag.Title = "Add Raw Material Details"; @*Page title*@
}
1
@Html.TextBoxFor(x => x.RAW_MATERIAL_NAME, new {
@class = "form-control", @placeholder = "Material Name" })
@Html.ValidationMessageFor(x => x.RAW_MATERIAL_NAME,
"", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Material Quantity</label>
@Html.TextBoxFor(x => x.RAW_MATERIAL_QUANTITY, new {
@class = "form-control", @placeholder = "Material Quantity" })
@Html.ValidationMessageFor(x =>
x.RAW_MATERIAL_QUANTITY, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Supplier</label>
@Html.DropDownListFor(x => x.SUPPLIER_ID_FK,
ViewBag.supplierListBag as SelectList, "-----Select-----", new { @class = "form-
control" })
@Html.ValidationMessageFor(x => x.SUPPLIER_ID_FK, "",
new { @class = "text-danger" })
</div>
<div class="form-group">
@Html.ActionLink("Back", "ShowRawMaterialDetails",
null, new { @class = "btn btn-outline-warning" })
<input type="submit" class="btn btn-outline-success
float-right" value="Add" />
</div>
</div>
</div>
</div>
</div>
</div>
}
UpdateRawMaterialDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_RAW_MATERIAL @*Model*@
@{
ViewBag.Title = "Update Raw Material Details"; @*Page title*@
}
1
@Html.ValidationMessageFor(x => x.RAW_MATERIAL_NAME,
"", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Material Quantity</label>
@Html.TextBoxFor(x => x.RAW_MATERIAL_QUANTITY, new {
@class = "form-control", @placeholder = "Material Quantity" })
@Html.ValidationMessageFor(x =>
x.RAW_MATERIAL_QUANTITY, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Supplier</label>
@Html.DropDownListFor(x => x.SUPPLIER_ID_FK,
ViewBag.supplierListBag as SelectList, "-----Select-----", new { @class = "form-
control" })
@Html.ValidationMessageFor(x => x.SUPPLIER_ID_FK, "",
new { @class = "text-danger" })
</div>
<div class="form-group">
@Html.ActionLink("Back", "ShowRawMaterialDetails",
null, new { @class = "btn btn-outline-warning" })
<input type="submit" class="btn btn-outline-success
float-right" value="Update" />
</div>
</div>
</div>
</div>
</div>
</div>
}
ShowSupplierDetails.cshtml:-
@*List type model*@
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_SUPPLIER>
@{
ViewBag.Title = "Supplier Details"; @*Page title*@
}
<h4>
@ViewBag.Title
@Html.ActionLink("Add Supplier", "AddSupplierDetails", null, new { @class =
"btn btn-outline-primary float-right" })
</h4>
<hr />
1
<th>
Supplier Name
</th>
<th>
Phone Number
</th>
<th>
Shop Address
</th>
<th>
Option
</th>
</tr>
</thead>
<tbody>
@*For each loop to show details*@
@foreach (var supplier in Model)
{
<tr>
<td>
@supplier.SUPPLIER_NAME
</td>
<td>
@supplier.SUPPLIER_PHONE_NUMBER
</td>
<td>
@supplier.SUPPLIER_SHOP_ADDRESS
</td>
<td>
@Html.ActionLink("Update", "UpdateSupplierDetails", new {
supplierId = supplier.SUPPLIER_ID }, new { @class = "btn btn-outline-warning" })
@Html.ActionLink("Delete", "DeleteSupplierDetails", new {
supplierId = supplier.SUPPLIER_ID }, new { @class = "btn btn-outline-danger",
onclick = "return confirm('Are you sure you wish to delete this supplier
detail?');" })
</td>
</tr>
}
</tbody>
</table>
}
AddSupplierDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_SUPPLIER @*Model*@
@{
ViewBag.Title = "Add Supplier Details"; @*Page title*@
}
1
</div>
<div class="card-body">
<div class="form-group">
<label>Supplier Name</label>
@Html.TextBoxFor(x => x.SUPPLIER_NAME, new { @class
= "form-control", @placeholder = "Supplier Name" })
@Html.ValidationMessageFor(x => x.SUPPLIER_NAME, "",
new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Phone Number</label>
@Html.TextBoxFor(x => x.SUPPLIER_PHONE_NUMBER, new {
@class = "form-control", @placeholder = "Phone Number" })
@Html.ValidationMessageFor(x =>
x.SUPPLIER_PHONE_NUMBER, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Shop Address</label>
@Html.TextAreaFor(x => x.SUPPLIER_SHOP_ADDRESS, new {
@class = "form-control", @placeholder = "Shop Address" })
@Html.ValidationMessageFor(x =>
x.SUPPLIER_SHOP_ADDRESS, "", new { @class = "text-danger" })
</div>
<div class="form-group">
@Html.ActionLink("Back", "ShowSupplierDetails", null,
new { @class = "btn btn-outline-warning" })
<input type="submit" class="btn btn-outline-success
float-right" value="Add" />
</div>
</div>
</div>
</div>
</div>
</div>
}
UpdateSupplierDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_SUPPLIER @*Model*@
@{
ViewBag.Title = "Update Supplier Details"; @*Page title*@
}
1
@Html.ValidationMessageFor(x => x.SUPPLIER_NAME, "",
new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Phone Number</label>
@Html.TextBoxFor(x => x.SUPPLIER_PHONE_NUMBER, new {
@class = "form-control", @placeholder = "Phone Number" })
@Html.ValidationMessageFor(x =>
x.SUPPLIER_PHONE_NUMBER, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Shop Address</label>
@Html.TextAreaFor(x => x.SUPPLIER_SHOP_ADDRESS, new {
@class = "form-control", @placeholder = "Shop Address" })
@Html.ValidationMessageFor(x =>
x.SUPPLIER_SHOP_ADDRESS, "", new { @class = "text-danger" })
</div>
<div class="form-group">
@Html.ActionLink("Back", "ShowSupplierDetails", null,
new { @class = "btn btn-outline-warning" })
<input type="submit" class="btn btn-outline-success
float-right" value="Update" />
</div>
</div>
</div>
</div>
</div>
</div>
}
ShowStaffDetails.cshtml:-
@model IEnumerable<OnlinePaperWork_OPW_.Models.tbl_STAFF> @*List type model*@
@{
ViewBag.Title = "Staff Details"; @*Page title*@
}
<h4>
@ViewBag.Title
@Html.ActionLink("Add Staff", "AddStaffDetails", null, new { @class = "btn
btn-outline-primary float-right" })
</h4>
<hr />
1
Phone Number
</th>
<th>
Address
</th>
<th>
Designation
</th>
<th>
Salary
</th>
<th>
Option
</th>
</tr>
</thead>
<tbody>
AddStaffDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_STAFF @*Model*@
@{
ViewBag.Title = "Add Staff Details"; @*Page title*@
}
1
@*Add staff details form*@
@using (Html.BeginForm("AddStaffDetails", "Utility", FormMethod.Post))
{
<div class="container">
<div class="d-flex justify-content-center">
<div class="col-sm-6">
<div class="card">
<div class="card-header">
<h2>@ViewBag.Title</h2>
</div>
<div class="card-body">
<div class="form-group">
<label>Staff Name</label>
@Html.TextBoxFor(x => x.STAFF_NAME, new { @class =
"form-control", @placeholder = "Staff Name" })
@Html.ValidationMessageFor(x => x.STAFF_NAME, "", new
{ @class = "text-danger" })
</div>
<div class="form-group">
<label>Phone Number</label>
@Html.TextBoxFor(x => x.STAFF_PHONE_NO, new { @class
= "form-control", @placeholder = "Phone Number" })
@Html.ValidationMessageFor(x => x.STAFF_PHONE_NO, "",
new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Address</label>
@Html.TextAreaFor(x => x.STAFF_ADDRESS, new { @class
= "form-control", @placeholder = "Address" })
@Html.ValidationMessageFor(x => x.STAFF_ADDRESS, "",
new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Designation</label>
@Html.TextBoxFor(x => x.STAFF_DESIGNATION, new {
@class = "form-control", @placeholder = "Designation" })
@Html.ValidationMessageFor(x => x.STAFF_DESIGNATION,
"", new { @class = "text-danger" })
</div>
<div class="form-group">
<label>Salary</label>
@Html.TextBoxFor(x => x.STAFF_SALARY, new { @class =
"form-control", @placeholder = "Salary" })
@Html.ValidationMessageFor(x => x.STAFF_SALARY, "",
new { @class = "text-danger" })
</div>
<div class="form-group">
@Html.ActionLink("Back", "ShowStaffDetails", null, new
{ @class = "btn btn-outline-warning" })
<input type="submit" class="btn btn-outline-success
float-right" value="Add" />
</div>
</div>
</div>
</div>
</div>
</div>
}
1
UpdateStaffDetails.cshtml:-
@model OnlinePaperWork_OPW_.Models.tbl_STAFF @*Model*@
@{
ViewBag.Title = "Update Staff Details"; @*Page title*@
}
1
</div>
</div>
</div>
</div>
</div>
</div>
}
UtilityController.cs
//importing files
using OnlinePaperWork_OPW_.Models;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.Mvc;
1
try
{
if (ModelState.IsValid)
{
tbl_RAW_MATERIAL rawMaterialDetails = new tbl_RAW_MATERIAL();
rawMaterialDetails.RAW_MATERIAL_NAME =
material.RAW_MATERIAL_NAME;
rawMaterialDetails.RAW_MATERIAL_QUANTITY =
material.RAW_MATERIAL_QUANTITY;
rawMaterialDetails.SUPPLIER_ID_FK = material.SUPPLIER_ID_FK;
db.tbl_RAW_MATERIAL.Add(rawMaterialDetails);
db.SaveChanges();
ModelState.Clear();
TempData["Message"] = "Raw Material Details Added
Successfully...";
}
else
{
TempData["Message"] = "Error, Try Again Later...";
}
}
catch (Exception e)
{
TempData["Message"] = e.Message;
}
return RedirectToAction("ShowRawMaterialDetails");
}
1
db.Entry(rawMaterialDetails).State = EntityState.Modified;
db.SaveChanges();
ModelState.Clear();
TempData["Message"] = "Raw Material Details Updated
Successfully...";
}
else
{
TempData["Message"] = "Error, Try Again Later...";
}
}
catch (Exception e)
{
TempData["Message"] = e.Message;
}
return RedirectToAction("ShowRawMaterialDetails");
}
1
//adding supplier details in database
try
{
if (ModelState.IsValid)
{
tbl_SUPPLIER supplierDetails = new tbl_SUPPLIER();
supplierDetails.SUPPLIER_NAME = supplier.SUPPLIER_NAME;
supplierDetails.SUPPLIER_PHONE_NUMBER =
supplier.SUPPLIER_PHONE_NUMBER;
supplierDetails.SUPPLIER_SHOP_ADDRESS =
supplier.SUPPLIER_SHOP_ADDRESS;
db.tbl_SUPPLIER.Add(supplierDetails);
db.SaveChanges();
ModelState.Clear();
TempData["Message"] = "Supplier Details Added
Successfully...";
}
else
{
TempData["Message"] = "Error, Try Again Later...";
}
}
catch (Exception e)
{
TempData["Message"] = e.Message;
}
return RedirectToAction("ShowSupplierDetails");
}
2
TempData["Message"] = "Supplier Details Updated
Successfully...";
}
else
{
TempData["Message"] = "Error, Try Again Later...";
}
}
catch (Exception e)
{
TempData["Message"] = e.Message;
}
return RedirectToAction("ShowSupplierDetails");
}
2
tbl_STAFF staffDetails = new tbl_STAFF();
staffDetails.STAFF_NAME = staff.STAFF_NAME;
staffDetails.STAFF_PHONE_NO = staff.STAFF_PHONE_NO;
staffDetails.STAFF_ADDRESS = staff.STAFF_ADDRESS;
staffDetails.STAFF_DESIGNATION = staff.STAFF_DESIGNATION;
staffDetails.STAFF_SALARY = staff.STAFF_SALARY;
db.tbl_STAFF.Add(staffDetails);
db.SaveChanges();
ModelState.Clear();
TempData["Message"] = "Staff Details Added Successfully...";
}
else
{
TempData["Message"] = "Error, Try Again Later...";
}
}
catch (Exception e)
{
TempData["Message"] = e.Message;
}
return RedirectToAction("ShowStaffDetails");
}
2
catch (Exception e)
{
TempData["Message"] = e.Message;
}
return RedirectToAction("ShowStaffDetails");
}
Models:-
Administrator:-
namespace OnlinePaperWork_OPW_.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
2
public virtual ICollection<tbl_PRODUCT_CORNER> tbl_PRODUCT_CORNER { get;
set; }
public virtual ICollection<tbl_PRODUCT_PAGE> tbl_PRODUCT_PAGE { get; set;
}
public virtual ICollection<tbl_PRODUCT_PAPER_QUALITY>
tbl_PRODUCT_PAPER_QUALITY { get; set; }
public virtual ICollection<tbl_PRODUCT> tbl_PRODUCT { get; set; }
public virtual ICollection<tbl_PRODUCT_SIZE> tbl_PRODUCT_SIZE { get; set;
}
}
}
Customer:-
namespace OnlinePaperWork_OPW_.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
2
[StringLength(50, MinimumLength = 10, ErrorMessage = "Enter Email id
between 10 to 50 character")]
public string CUSTOMER_EMAIL_ID { get; set; }
[Required(ErrorMessage = "Enter Address")]
[StringLength(150, MinimumLength = 15, ErrorMessage = "Enter Address
between 15 to 150 character")]
public string CUSTOMER_ADDRESS { get; set; }
Category:-
namespace OnlinePaperWork_OPW_.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
2
Product:-
namespace OnlinePaperWork_OPW_.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
2
public int ORDER_CORNER_ID_FK { get; set; }
public int ORDER_PAPER_QUALITY_ID_FK { get; set; }
public int ORDER_SIZE_ID_FK { get; set; }
public int ORDER_QUANTITY { get; set; }
public Nullable<int> ORDER_PAGE_ID_FK { get; set; }
public string ORDER_REFERENCE_IMAGE { get; set; }
public string ORDER_REFERENCE_PDF { get; set; }
public int ORDER_TOTAL_PRICE { get; set; }
public string ORDER_PAYMENT_TYPE { get;
set; } public string ORDER_STATUS { get; set;
} public string ORDER_DESCRIPTION { get; set;
}
namespace OnlinePaperWork_OPW_.Models
{
public class OrderDetailsModel
{
public int CUSTOMER_ID { get; set; }
public string CUSTOMER_NAME { get; set;
}
public string CUSTOMER_PHONE_NO { get;
set; } public string CUSTOMER_EMAIL_ID
{ get; set; } public string CUSTOMER_ADDRESS
{ get; set; }
2
public int? ORDER_PAGE_ID { get; set; }
[Required(ErrorMessage = "Enter Description")]
public string ORDER_DESCRIPTION { get; set; }
2
[RegularExpression(@"([a-zA-Z0-9\s_\\.\-:])+(.jpg|.JPG|.jpeg|.JPEG)$",
ErrorMessage = "Select Only Jpg Or Jpeg File Formet")]
public HttpPostedFileBase postIMAGE { get; set; }
[RegularExpression(@"([a-zA-Z0-9\s_\\.\-:])+(.pdf|.PDF)$", ErrorMessage
=
"Select Only Pdf File Formet")]
public HttpPostedFileBase postPDF { get; set; }
public string ORDER_REFERENCE_IMAGE { get; set; }
public string ORDER_REFERENCE_PDF { get; set; }
ID Proof:-
namespace OnlinePaperWork_OPW_.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web;
Id Proof Model:-
using System.ComponentModel.DataAnnotations;
using System.Web;
namespace OnlinePaperWork_OPW_.Models
{
public class IdProofModel
{
public int ID_PROOF_ORDER_ID_FK { get; set; }
[Required(ErrorMessage = "Select Document Type")]
public string ID_PROOF_DOCUMENT_TYPE { get; set; }
2
[RegularExpression(@"([a-zA-Z0-9\s_\\.\-:])+(.jpg|.JPG|.jpeg|.JPEG)$",
ErrorMessage = "Select Only Jpg Or Jpeg File Formet")]
public HttpPostedFileBase postIMAGE { get; set; }
}
}
Payment:-
namespace OnlinePaperWork_OPW_.Models
{
using System;
using System.Collections.Generic;
Corner:-
namespace OnlinePaperWork_OPW_.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
Paper Quality:-
namespace OnlinePaperWork_OPW_.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
2
public partial class tbl_PRODUCT_PAPER_QUALITY
{
public tbl_PRODUCT_PAPER_QUALITY()
{
this.tbl_PRINT_JOB_ORDER = new HashSet<tbl_PRINT_JOB_ORDER>();
}
Size:-
namespace OnlinePaperWork_OPW_.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
Page:-
namespace OnlinePaperWork_OPW_.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
2
public tbl_PRODUCT_PAGE()
{
this.tbl_PRINT_JOB_ORDER = new HashSet<tbl_PRINT_JOB_ORDER>();
}
Supplier:-
namespace OnlinePaperWork_OPW_.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
Raw Material:-
namespace OnlinePaperWork_OPW_.Models
{
2
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
Staff:-
namespace OnlinePaperWork_OPW_.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
Feedback:-
namespace OnlinePaperWork_OPW_.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
2
[Required(ErrorMessage = "Select Feedback Type")]
public string FEEDBACK_TYPE { get; set; }
[Required(ErrorMessage = "Enter Your Feedback
Message")]
[StringLength(150, MinimumLength = 20, ErrorMessage = "Enter Message
between 20 to 150 character")]
public string FEEDBACK_MESSAGE { get; set; }
public int FEEDBACK_CUSTOMER_ID_FK { get; set; }
_ViewStart.cshtml:-
@{
var controller =
HttpContext.Current.Request.RequestContext.RouteData.Values["Controller"].ToString
();
string ShareLayout = null;
if (controller == "Customer")
{
ShareLayout = "~/Views/Shared/_LayoutCustomer.cshtml";
}
else
{
ShareLayout = "~/Views/Shared/_LayoutAdministrator.cshtml";
}
Layout = ShareLayout;
}
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor"
type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup,
System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35">
<section name="host"
type="System.Web.WebPages.Razor.Configuration.HostSection,
System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages"
type="System.Web.WebPages.Razor.Configuration.RazorPagesSection,
System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc,
Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
2
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
<add namespace="OnlinePaperWork_OPW_" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode"
type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>
2
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"
/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Optimization"
publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages"
publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234"
/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<connectionStrings>
<add name="OnlinePaperWorkEntities"
connectionString="metadata=res://*/Models.OnlinePaperWorkModel.csdl|res://*/Models
.OnlinePaperWorkModel.ssdl|res://*/Models.OnlinePaperWorkModel.msl;provider=System
.Data.SqlClient;provider connection string="data source=.;initial
catalog=OnlinePaperWork;integrated
security=True;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory
type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory,
EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
</configuration>
Packages.config:-
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Antlr" version="3.4.1.9004" targetFramework="net45" />
<package id="bootstrap" version="4.3.1" targetFramework="net45" />
<package id="EntityFramework" version="5.0.0" targetFramework="net45" />
<package id="jQuery" version="3.4.1" targetFramework="net45" />
<package id="jQuery.Validation" version="1.8.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Mvc" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.Razor" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.1"
targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages" version="3.0.0" targetFramework="net45"
/>
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.11"
targetFramework="net45" />
2
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0"
targetFramework="net45" />
<package id="Modernizr" version="2.6.2" targetFramework="net45" />
<package id="Newtonsoft.Json" version="5.0.6" targetFramework="net45" />
<package id="popper.js" version="1.14.3" targetFramework="net45" />
<package id="Respond" version="1.2.0" targetFramework="net45" />
<package id="WebGrease" version="1.5.2" targetFramework="net45" />
</packages>
BundleConfig.cs
using System.Web.Optimization;
namespace OnlinePaperWork_OPW_
{
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery.site.js",
"~/Scripts/jquery.validate.js",
"~/Scripts/jquery.validate.unobtrusive.js"))
;
bundles.Add(new
ScriptBundle("~/bundles/modernizr").Include( "~
/Scripts/modernizr-*"));
bundles.Add(new
ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js"));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/site.css"));
}
}
}
Global.asax.cs:-
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
namespace OnlinePaperWork_OPW_
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
2
}
2
AssemlyInfo.cs
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to
COM
[assembly: Guid("969efd8c-8316-4bff-8858-f8914c26cd13")]
Site.css
.zoom:hover {
-ms-transform: scale(5); /* IE 9 */
-webkit-transform: scale(5); /* Safari 3-8 */
transform: scale(10);
}
.loader{
position: fixed;
left: 0px;
top: 0px;
width:100%;
height:100%;
z-index: 9999;
background: url('pageLoader.gif') 50% 50% no-repeat rgb(249,249,249);
}
2
Bootstrap.css
.container {
width: 100%;
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
@media (min-width: 576px) {
.container {
max-width: 540px;
}
}
.container-fluid {
width: 100%;
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
.row {
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
margin-right: -15px;
margin-left: -15px;
}
.form-control-file{
display: block;
width: 100%;
}
2
padding-right: 15px;
padding-left: 15px;
}
.table {
width: 100%;
margin-bottom: 1rem;
color: #212529;
}
.table-dark {
color: #fff;
background-color: #343a40;
}
.table-bordered {
border: 1px solid #dee2e6;
}
.form-control {
display: block;
width: 100%;
height: calc(1.5em + 0.75rem + 2px);
padding: 0.375rem 0.75rem;
2
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #495057;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ced4da;
border-radius: 0.25rem;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
.form-control {
transition: none;
}
}
.form-inline {
display: -ms-flexbox;
display: flex;
-ms-flex-flow: row wrap;
flex-flow: row wrap;
-ms-flex-align: center;
align-items: center;
}
.form-inline .form-check {
width: 100%;
}
.form-group {
margin-bottom: 1rem;
}
.form-row {
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
margin-right: -5px;
margin-left: -5px;
}
.btn {
display: inline-block;
font-weight: 400;
color: #212529;
text-align: center;
vertical-align: middle;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-color: transparent;
border: 1px solid transparent;
padding: 0.375rem 0.75rem;
font-size: 1rem;
line-height: 1.5;
border-radius: 0.25rem;
2
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-
color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.btn-outline-primary {
color: #007bff;
border-color: #007bff;
}
.btn-outline-primary:hover {
color: #fff;
background-color: #007bff;
border-color: #007bff;
}
.btn-outline-success {
color: #28a745;
border-color: #28a745;
}
.btn-outline-success:hover {
color: #fff;
background-color: #28a745;
border-color: #28a745;
}
.btn-outline-info {
color: #17a2b8;
border-color: #17a2b8;
}
.btn-outline-info:hover {
color: #fff;
background-color: #17a2b8;
border-color: #17a2b8;
}
.btn-outline-warning {
color: #ffc107;
border-color: #ffc107;
}
.btn-outline-warning:hover {
color: #212529;
background-color: #ffc107;
border-color: #ffc107;
}
.btn-outline-danger {
color: #dc3545;
border-color: #dc3545;
}
.btn-outline-danger:hover {
color: #fff;
background-color: #dc3545;
border-color: #dc3545;
2
}
.btn-block {
display: block;
width: 100%;
}
.collapse:not(.show) {
display: none;
}
.dropdown-toggle {
white-space: nowrap;
}
.dropdown-toggle::after {
display: inline-block;
margin-left: 0.255em;
vertical-align: 0.255em;
content: "";
border-top: 0.3em solid;
border-right: 0.3em solid transparent;
border-bottom: 0;
border-left: 0.3em solid transparent;
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z- index:
1000; display:
none; float:
left;
min-width: 10rem;
padding: 0.5rem 0;
margin: 0.125rem 0 0;
font-size: 1rem;
color: #212529;
text-align: left;
list-style: none;
background-color: #fff;
background-clip: padding-box;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 0.25rem;
}
.dropright .dropdown-toggle:empty::after {
margin-left: 0;
}
.dropright .dropdown-toggle::after {
vertical-align: 0;
}
.dropdown-divider {
height: 0;
margin: 0.5rem 0;
overflow: hidden;
border-top: 1px solid #e9ecef;
2
}
.dropdown-item {
display: block;
width: 100%;
padding: 0.25rem 1.5rem;
clear: both;
font-weight: 400;
color: #212529;
text-align: inherit;
white-space: nowrap;
background-color: transparent;
border: 0;
}
.dropdown-item:hover, .dropdown-item:focus {
color: #16181b;
text-decoration: none;
background-color: #f8f9fa;
}
.navbar {
position: relative;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-ms-flex-align: center;
align-items: center;
-ms-flex-pack: justify;
justify-content: space-between;
padding: 0.5rem 1rem;
}
.navbar-brand {
display: inline-block;
padding-top: 0.3125rem;
padding-bottom: 0.3125rem;
margin-right: 1rem;
font-size: 1.25rem;
line-height: inherit;
white-space: nowrap;
}
.navbar-brand:hover, .navbar-brand:focus {
text-decoration: none;
}
.navbar-nav {
display: -ms-flexbox;
display: flex;
-ms-flex-direction: column;
flex-direction: column;
padding-left: 0;
margin-bottom: 0;
list-style: none;
}
2
.navbar-collapse {
-ms-flex-preferred-size: 100%;
flex-basis: 100%;
-ms-flex-positive: 1;
flex-grow: 1;
-ms-flex-align: center;
align-items: center;
}
.navbar-toggler {
padding: 0.25rem 0.75rem;
font-size: 1.25rem;
line-height: 1;
background-color: transparent;
border: 1px solid transparent;
border-radius: 0.25rem;
}
.navbar-toggler-icon {
display: inline-block;
width: 1.5em;
height: 1.5em;
vertical-align: middle;
content: "";
background: no-repeat center center;
background-size: 100% 100%;
}
.navbar-expand-lg .navbar-nav {
-ms-flex-direction: row;
flex-direction: row;
}
.navbar-dark .navbar-brand {
color: #fff;
}
.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
color: #fff;
}
2
.navbar-dark .navbar-nav .nav-link {
color: rgba(255, 255, 255, 0.5);
}
.navbar-dark .navbar-toggler-icon {
background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30'
xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)'
stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4
15h22M4 23h22'/%3e%3c/svg%3e");
}
.navbar-dark .navbar-text {
color: rgba(255, 255, 255, 0.5);
}
.navbar-dark .navbar-text a {
color: #fff;
}
.card {
position: relative;
display: -ms-flexbox;
display: flex;
-ms-flex-direction: column;
flex-direction: column;
min-width: 0;
word-wrap: break-word;
background-color: #fff;
background-clip: border-box;
border: 1px solid rgba(0, 0, 0, 0.125);
border-radius: 0.25rem;
}
.card-body {
-ms-flex: 1 1 auto;
flex: 1 1 auto;
padding: 1.25rem;
}
.card-header {
padding: 0.75rem 1.25rem;
margin-bottom: 0;
background-color: rgba(0, 0, 0, 0.03);
border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}
.card-img-top {
width: 100%;
border-top-left-radius: calc(0.25rem - 1px);
border-top-right-radius: calc(0.25rem - 1px);
}
.text-white {
color: #fff !important;
}
2
.bg-info {
background-color: #17a2b8 !important;
}
.bg-light {
background-color: #f8f9fa !important;
}
.bg-dark {
background-color: #343a40 !important;
}
.border {
border: 1px solid #dee2e6 !important;
}
.text-danger {
color: #dc3545 !important;
}
.d-flex {
display: -ms-flexbox !important;
display: flex !important;
}
.justify-content-center {
-ms-flex-pack: center !important;
justify-content: center !important;
}
.float-left {
float: left !important;
}
.float-right {
float: right !important;
}
.p-2 {
padding: 0.5rem !important;
}
.mr-auto{
margin-right: auto !important;
}
.my-2 {
margin-bottom: 0.5rem !important;
}
.ml-1 {
margin-left: 0.25rem !important;
}
.mt-1{
margin-top: 0.25rem !important;
}
2
.mt-3{
margin-top: 1rem !important;
}
.text-center {
text-align: center !important;
}
Jquery.site.js
function show(input) {
if (input.files && input.files[0]) {
var filerdr = new FileReader();
filerdr.onload = function (e) {
$('#the_img').attr('src', e.target.result);
}
filerdr.readAsDataURL(input.files[0]);
}
}
$(function () {
$('#urlFuntion').change(function () {
var url = $(this).val();
if (url != null && url != '') {
window.location.href = url;
}
});
});
$(function () {
$('#calculate').text("* " + $(selectedNumber).val() + " = " +
parseInt($('#price').html()) + " Pec");
});
$(function () {
$('#selectedNumber').change(function () {
var price = parseInt($
('#price').html()); var quantity = $
(selectedNumber).val(); if (quantity ==
null) {
quantity = 1;
2
}
else if (quantity < 1) {
quantity = 1;
}
else if (quantity > 10) {
quantity = 10;
}
$('#selectedNumber').val(quantity);
$('#calculate').text("* " + quantity + " = " + quantity * price + " Pec");
});
});
$(window).on('load', function () {
$('.loader').fadeOut("slow");
});
$(window).on('beforeunload', function () {
$('.loader').fadeIn(50);
});
2
3.5. TESTING
3.5.1. Test techniques and Testing Strategies used:-
Test Approaches:-
Functionality Testing
Implementation Testing
2
3.5.2. Test Cases:-
T01 Create an account with Customer should receive Customer recevied a Pass
valid data a message of account message successfully
successfully created as expected
2
T10 Create an account by Customer should receive Customer recevied a Pass
entering only one an validation error of validation errors as
character or more than “enter valid email id” expected
50 character for email id
or entering invalid email
id
T11 Create an account by Customer should receive Customer recevied a Pass
entering only one an validation error of validation errors as
character or more “enter address between 15 expected
than to 150 character”
150 character for
address
T01 Check customer login Customer should login Customer loged in Pass
with valid login id successfully successfully as expected
and password
T05 Check customer login Customer should receive Customer received Pass
without filling login id validation error of enter validation error as
and password login id and enter expected
password
T06 Check customer login Customer should receive Customer received a Pass
by entering only one a validation error of validation error as
character for login id or “login id must be expected
entering more than fifty between 3 to 50
character character”
T07 Check customer login Customer should receive Customer received a Pass
by entering only one a validation error of validation error as
character for password “password must be expected
or entering more than between 5 to 50
fifty character character”
2
Customer Booking Order Test Case:-
T01 Book order with Order should book Order booked Pass
selecting valid successfully successfully as expected
specification and
entering valid
details
T02 Book order without Customer should receive Customer received Pass
selecting valid validation error validation error as
specification or entering expected
valid details
T03 Book order without Order should book Order booked Pass
uploading any reference successfully successfully as expected
image or pdf document
(which is optional)
T01 Cancel Booked order by Customer should receive Customer received Pass
clicking cancel order a confirmation alert of confimation alert as
button “Are you sure you wish to expected
cancel this order”
T02 Cancel Booked order by Order status should Order status changed Pass
clicking cancel order changed from booked to successfully, cancel
button then selecting ok canceled, cancel order order disappeared and
button for confirmation button should disappear customer received
and customer should message as expected
receive message of
“Order canceled
successfully”
2
Customer Payment Test Case:-
T01 Select cash on delivery Customer should receive Customer received Pass
option from drop an messsage of “Payment message as expected
down list type recoreded”
T02 Select debit/credit card Customer should reach to Customer reached to Pass
option from drop down debit/credit card payment payment gate way
list and making page, after filling all the page, after filling all
payment with valid details, customer should details & pressing
details press payment button and payment button
a message pop up of customer received
“Payment has been done” message as expected
T03 Select debit/credit card Customer should reach to Customer reached to Pass
option from drop down debit/credit card payment payment gate way
list and making page, after filling all the page, after filling all
payment with invalid details, customer should details & pressing
details press payment button and payment button
should receive an error customer received
message “Invalid Details” message as expected
T04 Select Net Banking card Customer should reach to Customer reached to Pass
option from drop down net banking payment payment gate way
list and making page, after filling all the page, after filling all
payment with valid details, customer should details & pressing
details press payment button and payment button
a message should pop up customer received
of “Payment has been message as expected
done”
T04 Select Net Banking card Customer should reach to Customer reached to Pass
option from drop down net banking payment payment gate way
list and making page, after filling all the page, after filling all
payment with invalid details, customer should details & pressing
details press payment button and payment button
should receive an error customer received
message “Invalid Details” message as expected
2
Administrator Login Test Case :-
T01 Check admin login with Admin should login Admin loged in Pass
valid login id and successfully successfully as expected
password
T02 Check admin login with Admin should receive a Admin received a error Pass
invalid login id and error of “wrong user id as expected
password or password”
T03 Check admin login with Admin should receive a Admin received a error Pass
valid login id but error of “wrong user id as expected
invalid password or password”
T04 Check admin login with Admin should receive a Admin received a error Pass
invalid login id but error of “wrong user id as expected
valid password or password”
T05 Check admin login Admin should receive Admin received Pass
without filling login id validation error of enter validation error as
and password login id and enter expected
password
T06 Check admin login by Admin should receive a Admin received a Pass
entering only one validation error of validation error as
character for login id or “login id must be expected
entering more than fifty between 3 to 50
character character”
T07 Check admin login by Admin should receive a Admin received a Pass
entering only one validation error of validation error as
character for password “password must be expected
or entering more than between 5 to 50
fifty character character”
2
T03 Update category with Category should be as expected Pass
valid data updated and an message
should pop up of
“Category updated
successfully”
T04 Update category with Admin should receive as expected Pass
invalid data an validation error
2
T06 Delete product and Product should not be as expected Pass
confirm by pressing deleted and
cancel button confirmation box should
disappear
T01 Add utility with valid Utility should be added as expected Pass
details and an message should
pop up of process
successfull
T02 Add utility with invalid Admin should received as expected Pass
details validation errors
T03 Update utility with valid Utility should be as expected Pass
details updated and an message
should pop up of
process successfull
T04 Update utility with Admin should received as expected Pass
invalid details validation errors
T05 Delete utility and Utility should be deleted as expected Pass
confirm by pressing ok and a message should
button pop up of process
successfull
T06 Delete utility and Utility should not be as expected Pass
confirm by pressing deleted and
cancel button confirmation box should
disappear
2
T03 Update specification Specification should be as expected Pass
with valid details updated and an message
should pop up of
process successfull
T04 Update specification Admin should received as expected Pass
with invalid details validation errors
T05 Delete specification and Specification should be as expected Pass
confirm by pressing ok deleted and an message
button should pop up of
process successfull
T06 Delete specification and Specification should not as expected Pass
confirm by pressing be deleted and
cancel button confirmation box should
disappear
2
3.6. SECURITY MECHANISMS
Here ‘User id’ and ‘Password’ mechanism is used for login in the online
paper work (OPW). Every person use a different user id and password to access
the system. If a person have correct user id and password combination then it
can access the website otherwise it is not allowed to access.
The database of the system is second and most important part of the system
after the whole system, if system crashes or destroys later it can fix or create but
the data of the system if destroys it is very hard to recover, so it is an important
place where security has to be implemented to secure the date.
Here also ‘User id’ and ‘Password’ mechanism is needed to the secure server
side. Only authorized person can access the data by using their user id and
password which make the system’s privacy, confidentiality, integrity of data
and unauthorized access of the data.
2
8.6.1. Database/data security:-
Customer:-
2
Administrator:-
2
3.7. COST ESTIMATION OF THE PROJECT ALONG
WITH COST ESTIMATION MODEL
For any new software project, it is necessary to know how much it will cost to
develop and how much development time will it take. These estimates are
needed before development is initiated. Several estimation procedures have
been developed and are having the following attributes in common.
2
3.8. REPORT GENERATION
ONLINE PAPER WORK (OPW) will generate the following reports which
is given below:
4. CATEGORY REPORT: - List of all categories and their details will show
by this report.
5. PRODUCT REPORT: - This report contains the list of all the products
and their details.
6. PRINT JOB ORDER REPORT: - This report show the customer’s
booked orders.
7. ID PROOF REPORT: - Customers uploaded id proof show by this report.
8. PAYMENT REPORT: - Customer’s payment details will show by this
report.
9. FEEDBACK REPORT: - This report show the customers feedback.
10.CORNER REPORT: - Corner details show by this report.
11.PAPER QUALITY REPORT: - Paper quality details show by this
reports.
12.SIZE REPORT: - Size details show by this report.
13.PAGE DESIGN REPORT: - Page design details show by this
reports. 11.SUPPLIER REPORT: - This report show suppliers details.
14. RAW MATERIAL REPORT: - Raw material details will show by this
report.
15. STAFF REPORT: - All Staff’s details will show by this report.
2
Category Report:-
2
Products of single category (Visiting Card) Report:-
2
Printing Job Order Report:-
2
Feedback Details Report:-
2
Size Details Report:-
2
Raw Material Details Report:-
2
3.9. FUTURE SCOPE
The system Online Paper Work (OPW) is developed for automate the
booking process of order for printing of paper products. This system not only save
time but also save the money of both parties the end users of the system and as
well as the business.
It is the law of nature, for living long time we need to adept new habits, rules
and technology and need update over self every time to time. For the long life
of this system we will also adept some new feature like more modules, more
testing phase, improving of graphics and design, reducing the code etc.
Online Paper Work (OPW) will adopt the following features in future for
enhancing the project: