Professional Documents
Culture Documents
“EVET ORGAIZER”
1
PROPOSAL
I. Introduction
Clover Company
2
II. Current System
Customer order
Customer places their order by calling the company. Then, the customer will tell
the contact person from Clover Company what event they want to have, what
theme, the budget, and any specification for the event. Then the contact person
will record it or write it down on a book.
Job Distribution
After they get the order, the contact person will pass the order to the head of the
company. The head will then distribute the job to each department to check the
availability for the event preparation. For example: who will contact the food
supplier, who will contact the printing company to print the invitations, etc.
Payment Method
The customer will have to make the payment manually, and then a staff from the
Clover Company will receive the payment, take note and write a receipt.
Account Management
The staff of finance department will note all the company’s transaction and
produce the financial report for a period of time. E.g. monthly or yearly report
3
III. Problems and Limitation:
There are some problems faced by the Clover Company with their current system:
Ineffective communication
Because the EO team consists of so many persons who have different tasks, the
head will need to get report from each person by calling them one by one.
And if there is any changes of requirement from the customer (e.g. changes of
place), the head will need to call the person who is in charge of it.
4
IV. Objective of the New System
Due to the problems and limitations faced by the company by using the current
system, so there is a growing need to develop and use a new system that not only
eliminates all the problems and limitations caused by the current system but also increase
the company’s business productivity and efficiency.
The problems of the old system are in terms of getting orders from customer,
doesn’t support effective communication between team and communication to customer,
no proper database to keep data and produce reports needed by the company, and also
doesn’t facilitate up to date information to synchronize the Clover Company with its
affiliated companies.
Apart from the problems mentioned earlier, the current system also not
sophisticated enough to help the company to promote and advertise its business. That’s
why it’s hard to expand the business coverage area of the company. The new system that
replaces the current system should be able to eliminate all these problems and limitation
caused by the current system.
The new system should be able to help the Clover Company not just in one field
but in every aspect involved in the company’s business. The new system should help to
give better service for the customer so customers will be more satisfied with the
company’s service. For example, easier access for customer to place their order, track the
status and progress of the order, ability to provide the customer with easier and
convenient way to make payment, payment tracking, etc.
Beside that, the new system needs to help the Clover Company in its affiliation
with other companies (e.g. Food Supplier Company, Printing Company, Instrument
rental, etc.). The new system must be able to eliminate the current communication and
schedule synchronization problem with these affiliate companies by providing a
convenient service for these companies to give up to date information about their
availability to the Clover Company.
Finally, the new system must be able to increase internal productivity of the
Clover Company. The current system that uses papers and pen to document all activities
and information must be replaced by the new system. The new system needs to provide a
digital database that keeps all the company’s record and information. This database will
reduce the cost of buying papers and pen, save more spaces, and also cut working time as
all the needed information is ready anytime a specific report needs to be produced. This
will help the company to review its records and to make a decision on how to improve
the company’s productivity. The new system also has to help the company’s financial
department by providing a financial report about the company’s income, outcome, and
profits in a certain period of time (e.g. monthly, weekly, or yearly).
So, the objectives of the new system are:
Provides better service for customer.
Support communication between company, customer, and affiliate companies
Provides Database that able to generate report for the company
Capable of promoting the company’s business
Reduce expenses and increase company’s productivity
Support the company’s financial reporting.
5
V. Description of the New System
In order to be a useful and productive system, the new system must be a better
system compared to the old system. The new system will be equipped with useful
features that will eliminate the existing problems and limitations caused by the current
system.
The new system will be an online system. It is a website that can be used by the
customer, the Clover Company, and also the affiliate companies. So, it is not just a
simple website to show general information but an online system that can be used to
manage the company’s business and increase its productivity.
4. Database
The system will have a database to keep various records and information of the
company’s business. This database will be the central data warehouse, so the
company can access and finds any needed information easily.
6
5. Affiliate Companies module
As stated before that one of the current system’s problem is that it is hard to keep the
schedule of the Clover Company and the affiliate companies synchronized. So the
answer of this problem is a module for affiliate companies that are implemented in
this new system. This module will allow a person from any affiliate company to login
to the system. After they login into the system, they can use some functions of the
system. First, they will be able to edit their own profile and for the second, they are
able to check about the order that has placed for them. For example; they need to
confirm an order if they are able to do it and if they are not able to provide their
service for certain event, they have to give an explanation about why they are not able
to do it.
8. Secured Access
Since the system database keeps a lot of important and confidential information of the
company, so the system also enforce security to make sure that only an authorized
user can view the information. This is implemented by using a login with
combination of user ID and password in order to see the data on the database. Of
course not everyone who login can see all the information in the database, for
example a customer will just be able to see information for his/her own order status,
but the system administrator or the Clover Company staff can see a lot more
information from the database.
9. Up to date news
Apart from all the system function that requires the user to login, there is also a public
part of the website that can be accessed by everyone without need to register or login.
These parts of the website will contain various information and news about the
company. This will help the company’s publication and attract new customers with a
huge coverage area, which cannot be done by the current system.
7
VI. Benefits of the New system
1. Improved customer service
The new system can deliver a better service for the customer. Features like online
registration, online order, online payment, order status and progress check, edit order
specification online, etc. These features are far better than the current system, that
will result in increased customer satisfaction level, increase the company’s reputation,
and also attract new customers.
8
6. Easier to educate the customers and give information that they need
When a customer wants to make an order, there are many choices that he/she has to
make. The choice is like what is the type of the event that he/she wants, when is the
event date, and the widest option is on which affiliate company that the customer
wants to use for the event. For example there are some food supplier company
affiliated with the Clover Company, the current system will require a staff to explain
each company choice to the customer, this process takes long time and big effort.
With the new system, the customer can see the information about each choice on the
website itself, so the company doesn’t need a staff just to describe and explain each
choice to the customer. This will safe time and effort, thus increase productivity.
7. Inspiring customer
The new system will give news about the latest events that is organized by the
Company; this news will give inspiration for the customer to make their choice. This
will make the customers happier with the company and find that the company’s
website is helpful for them. All of these things can lead to more loyal customers.
9
VII. Initial Specification
The system is an online system with web pages programmed using PHP and
HTML as the front-end and a mySQL database as the back-end. The system will have 4
main areas. They are:
A. Public Area that can be accessed and viewed by all Internet users.
B. Customer Area for registered customer with proper user id and password.
C. Affiliate Company Area for affiliate companies.
D. Administrator Area that used by the Clover Company’s staffs.
A. Public Area
Public Area is part of the website that can be accessed and viewed by all Internet
users because there is no need to enter password or register to see this part. This is the
part of the website that will be first displayed. This part also plays an important role
on the company’s publication in order to attract new customers.
A.6. Sitemap
Sitemap is provided in this website to make it easier for the user to understand
the structure of the website and jumps quickly from one page to another page.
10
A.8. Customer Login
Customer login page is where a registered customer can use his/her user id and
password to login to the customer area.
B. Customer Area
After a registered customer successfully login from customer login page, he/she can
now access the customer area.
11
Customers can give feedback to the company if they see that there is a room for
improvements. Then the submitted feedback can be followed up by the
management team of the company.
D. Administrator Area
Administrator area is used by internal staff of the Clover Company. It requires user id
and password to enter this area. But for security sake, there is no visible interface to
login to this area from the home page of the website. If a staff wants to login, he/she
must type a special address to open the login page to the administrator area.
12
the customer if there is any change to the order specification through this
module.
D.7. Database
The system’s database is used to store all the data needed by the company. It
stores customer data, affiliate company data, orders data, transaction data, and
financial data. The security of the database is ensured by protecting it using
password so it will prevent unauthorized person to access the information inside
the database.
13
VIII. Work Distribution
1. System Analyst
Our system analyst is David. He has many years of experience in this field. He is
a highly self-motivated person with good communication skills. In this project, he
will meet our customer to identify problem suffered by the customer’s current system.
Beside that, David will perform analysis to the current system for clearly understand
workflow of the current system, current system’s features, its drawback and
constraints. This information will allow our team to decide what improvement should
be made in the new system. To achieve this objective, David will have to gather
information from different method such as reviewing current system’s document,
interviewing involved staff person, and observing current system’s work activities.
After gathering sufficient information, he will perform feasibility study to examine
the acceptance of the new system. This will include few factor such as current
technology available, user’s operating skills and customer’s budget. David also makes
decision together with other team member in determine new system specification.
The team member will list out any hardware and software needed in the new system.
Based on gathered information, David will perform the cost benefit analysis. He will
list out what benefits will the new system bring, and the cost of implementing new
system. David has to prepare proposal for present our new system concept to
customer. At the system implementing and evaluation stages, David will conduct with
other team member to evaluate the newly implemented system. Together, they will
analyze the new system performance, user acceptance and customer satisfaction, and
then produce a system review report.
2. Programmer
Our team programmer is Thomas. He has enough experience in this field. Master
in some programming language makes him able to fulfill each project objective in
most economic and creative ways. In this project, he will determine the specification
of the new system along with other team member. As usual, he will select the best
tools like pseudo code, flow chart and CASE tools to planning how to design the new
system. Thomas also has to choose suitable programming language to construct the
new system and meets document requirements. After selecting desired programming
language, the entire team member will begin to code the new system. During system
development phase, Thomas will document the pseudo code, flow chart, system-
operating manual, and procedures in the system document. When the system is
developed, Thomas will perform a system test to the new system along with database
14
administrator. They will test the new system with available test data and also live test
data provided by the customer. The new system will not be implemented until it is
100% functional and free from any kind of errors. If an error is occurred, Thomas will
revise the new system according to the detected error. Thomas will play his role when
the system is implemented. First, he will implement the system with other team
member. If training is conducted, he will responsible for training the user based on
the system-operating manual. While the system is fully operated at customer site,
Thomas and other team member will conduct a system review on the implemented
system.
3. Database Designer/Administrator
Our team’s Database Designer/Administrator is Keith. He has adequate education
and experience in this field. In this project, Keith will work with other team member
to determine system specification. Then, he will plan the database with the aid of
database development tools such as data flow diagram, data dictionary and decision
tree. With the aid of those tools, he will decide the how many database is needed,
relationship between each database, data integrity control etc. Keith needs to choose
suitable database programming language to use in this project. Then, he will construct
the database with the selected language. Beside that, he will join other team member
to codes the system. While the system development in progress, Keith will help
Thomas to prepare the system document. He needs to make the database
documentation which recording the database structure, coding, database maintaining
procedure. When the system is completed, he will join other team member to perform
system test to the new system. At the system implementing and evaluation phase,
Keith will review the new system with other team member.
15
IX. Cost Benefit Analysis
16
X. Expected Benefits of the New System (Intangible)
Benefits Costs(SGD$)
Increase the efficiency of information
5000
process by using computer bas system
Time Efficiency 2000
Improve the decision making 4000
17
Annual Return
System First year Second year Third year Fourth year Fifth year Total Return
Cost of Project
= Payback Period
Annual Cash Inflow
18
XI. Return on Investment (ROI)
New System:
ROI = [23900-17500] / 17500
= 36.57%
19
XII. Hardware specification
The minimum hardware specification to operate this system is:
1. Intel Pentium IV processor or better
2. Minimum 512 Mb RAM
3. Color Monitor
4. Keyboard
5. Mouse with scroll button
6. 160 GB hard disk
7. DSL Internet connection
8. Laser Printer or Dot Matrix Printer
For the web server itself, we will host the website on another commercial web
server, so we don’t need to buy the expensive web server computer for the
company.
Operational Software
The minimum requirement of the software to operate the system:
1. Windows XP or Windows Vista
2. Internet Browser (Mozilla Firefox v.2 or Internet Explorer 7)
20
XIV. Gantt Chart
XV. Conclusion
In Conclusion, we can conclude that the Clover Company needs to solve the
problems and limitations in its business that is caused by using the current system.
Developing a new system is the answer to eliminate all the problems and limitations of
the current system. The new system will be an online based system with PHP and HTML
as the front end, and a mySQL database as the back-end. The new system will be able to
increase the company’s business productivity, save money, and attract new customers.
So, the new system will play a crucial part for the company when it is implemented.
21
TABLE OF COTET
I. FACT FIDIG.................................................................................................. 25
I.A. Interview ........................................................................................................... 25
I.B. Questionnaire ................................................................................................... 38
II. ARRATIVE................................................................................................... 40
1. System’s narrative ................................................................................................. 40
2. Hardware Requirements........................................................................................ 42
3. Software Requirements ......................................................................................... 42
III. PROCESS FLOW ........................................................................................... 43
1. Proposed System Context Diagram ............................................................... 43
2. Proposed System 1st level Data Flow Diagram ............................................. 44
3. 2nd level Data Flow Diagram (1.0 Receive Order)........................................ 45
4. 2nd level Data Flow Diagram (2.0 Sales Process) .......................................... 45
4. 2nd level Data Flow Diagram (2.0 Sales Process) .......................................... 46
5. 2nd level Data Flow Diagram (3.0 Update) .................................................... 47
6. 2nd level Data Flow Diagram (4.0 Report)......................................................... 47
6. 2nd level Data Flow Diagram (4.0 Report)......................................................... 48
IV. ILLUSTRATIVE SUPPORTIVE ....................................................................... 48
IV. ILLUSTRATIVE SUPPORTIVE ....................................................................... 49
V. PROBLEMS & LIMITATIOS.......................................................................... 51
VI. SCOPE & COSTRAITS ........................................................................... 52
a. Project Scope ................................................................................................... 52
b. Project Constraints ......................................................................................... 52
DOCUMETATIO DESIG...................................................................................... 54
I. Description Of ew System .................................................................................... 54
I. a. arrative........................................................................................................... 54
I. b. Illustration Supporting arrative.................................................................. 56
I. c. Process Flows.................................................................................................... 57
II. Detailed Design ....................................................................................................... 63
II. a. Entity Relationship Diagram ........................................................................ 63
II. c. Architectural Design ...................................................................................... 67
II. d. Procedural Design.......................................................................................... 68
II. d. Procedural Design.......................................................................................... 69
II. e. Interface Design.............................................................................................. 79
III. Hardware and Software Selection....................................................................... 99
III. a. Hardware specification ................................................................................... 99
III. b. Software Requirements................................................................................ 99
4. DEVELOPMET AD IMPLEMETATIO..................................................... 100
4.1 Software Development Testing .......................................................................... 100
Justification of testing technique ......................................................................... 100
4.2 Implementation: Conversion and Training Plan ............................................. 154
4.3 Implementation : User Guide............................................................................. 157
4.3.1 Installation and Running the System. ........................................................ 157
4.3.2 Operating Guide........................................................................................... 159
4.5 Critical Appraisal: Individual............................................................................ 173
22
Critical Appraisal by: David Irawan Adhiguna 018800004337........................ 173
Critical Appraisal by: Keith ishan Fernandez 018800004402........................ 174
Critical appraisal by Thomas Setiabudi (018800004137).................................. 175
5. Program Listing (Source Code) ............................................................................... 176
23
EXECUTIVE SUMMARY
We create this documentation is that we can provide the information about the system
that we have created, which is Clover Event Organizer.
We need 8 months to finish this project which means two terms. We do all the coding and
documentation and we do a lot of research and trial to do this project. Finally after all the
consideration which programming language that we want to do the project with, we
choose PHP.net and MySQL.
After we formed the team, we make a meeting to discuss about the project. But our
meeting is not organized like twice in a week or something like that. We arrange our
meeting if something is very important that we need to discuss or if we want to split the
work into the team. On the first term, our team has already finished until the Analysis
Documentation and the second term we start with doing the Design Documentation and
then the coding. One of our member often sick so we have to somehow manage our work
so that it will not postponed too long because it will affect the project time.
This is online-based system so that all people can access it from anywhere as long as
there is internet connection there. That is one of advantage by using the online-based
system. That is the reason why we choose the online-based system which is to make
wider relation.
There are others benefit that the organization can get from this new online-based system
such as benefit that we do not have to do manually task like: add record, search record,
manage record, etc. Although this documentation already has the user guide book to
guide the user about this new system, we suggest you to let us give training about how to
use the new system because it will be more effective.
In that website, they can see how the website look like and what function that the website
has.
24
DOCUMETATIO AALYSIS
I. FACT FIDIG
The purpose of performing fact finding activities in this project is to get a better
understanding of the current system’s problem and limitation and also what is expected
from the new system.
Our fact finding activity will involve the staffs of the Clover Company which is
the event organizer company. There are two kinds of fact finding technique that we
perform here, they are interview and questionnaire. The interview will be conducted to
find an in depth information from some staff of the company, while the questionnaire will
be given to all the staff of the company in order to get general information from all the
company’s staffs.
I.A. Interview
Interview is the first fact finding method that we perform. There are nine staffs
from three departments that we interviewed, 3 staffs from each department. The three
departments are marketing, financial, and logistic department. Staffs from these three
departments are interviewed because these departments will get the biggest impact when
the new system is implemented in the future.
25
I.A.ii. Interview for Financial Department
The questions that we will ask to staff from marketing department are:
a) Is there anything you like to feedback about the system here?
b) What do you think about the internal communication in the company?
c) What are your difficulties when preparing a financial report?
d) What will you suggest for the company’s new system?
Interviewer : Mr. Santoso, Is there anything you like to feedback about the
system here?
Santoso : Yes of course! Currently I feel that the system in this company is
a bit slow, especially to support us in the financial department.
Santoso : Well… you know, this company is dealing with so many people,
the customers, the affiliate companies, and also the internal staffs.
Sometimes it’s a bit tough to do our job as a financial department
to collect information about financial data such as payment from
customers or payment to the affiliate companies. We need to
collect these information from various staffs in the company, and
getting information from many people is not as easy as flipping
your hand. Sometimes one of the staff is in MC and cannot be
contacted, another time a staff that I need to ask to is not in the
office as he/she needs to prepare the event place or to consult with
an affiliate company. Things like that happen quite often here.
Interviewer : Mr. Santoso, what do you think about the internal communication
in the company?
26
Santoso : Actually there is no serious problem of communication or relation
problem between the staffs here. But, as some staffs especially the
marketing and logistic department that needs to go out quite often,
it’s not easy to meet them and ask them to update us with the most
recent progress of a customer’s order.
Santoso : let’s see… For me, I have quite used to this system’s way to
make a financial report using pen and papers since we have do it
this way for years.
Santoso : Yes, you can say that. I never feels that this is bad, but when there
is a lot of orders and make us needs to make a lot of financial
reports for the company, sometimes I feel like I wanted a better
system to make the financial report production process become
faster.
Interviewer : Mr. Santoso, as you know that we developing a new system for
this company, so what will you suggest for the company’s new
system?
Santoso : Yes, I heard about it. Well, of course as I said earlier that we have
some problems here in the financial department. So, I hope that the
new system will be consider to help our department too so we can
have a better work performance. In my opinion, I think the new
system should be able to facilitate the communication between
staffs here in the company, so we from the financial department
can get financial information faster.
Interviewer : Thank you Mr. Santoso, that’s all that we want to ask from you.
27
2) Interview with Fendy
Interviewer : Good afternoon Mr. Fendy. We appreciate that you want to spare
your time for an interview session with us here.
Fendy : No problem.
Interviewer : Mr. Fendy, Is there anything you like to feedback about the
system here?
Fendy : Yes, I think that there are a lot of things that we need to improve
from the company’s current system. Because I feel some problems
from this system now.
Interviewer : Mr. Fendy, What do you think about the internal communication
in the company?
Interviewer : Ok, I get your point. Now let’s talk about your job as a staff in
financial department, you need to prepare some financial reports
for the company right?
28
Fendy : All right, preparing a lot of financial report is very hard to be
done now as we make it in very slow speed. The use of pen and
papers is very tiresome when there is a lot of financial report that
needs to be done quickly. The slow information update from
another department concerning financial information like income
and expenses also adds the problem.
Interviewer : I see… Mr. Fendy, as you know that we developing a new system
for this company, so what will you suggest for the company’s new
system?
Fendy : Oh, yes that is very good news that I heard! I really hope that the
new system will be able to help us here in the financial department.
I suggest that the new system equipped with features that help the
internal communication within the company and also help us to
produce a financial report faster.
29
3) Interview with Siti
Interviewer : Good afternoon Mrs. Siti. We appreciate that you want to spare
your time for an interview session with us here.
Interviewer : Thank you. First of all, we want to ask, is there anything you like
to feedback about the system here?
Siti : Oh, I’m quite new here but I think that the current system here for
the financial department is horrible!
Siti : I tell you. The first time I started to work here, I was surprised
that I have to work in a financial department without any
accounting software! So what we do is we collect all the
information that we need then we start to make the financial report
by writing it using pen on a piece of paper. And then the archive is
kept in a big pile of file holders. It is very frustrating to look for a
single piece of old financial report, and also we cannot keep too
many archive due to limited office space, so we need to throw
away old documents periodically. This is very bad for a company
with so many customers like this; they really need to improve it.
Interviewer : Ok we note down that. Now we would like to ask you, what do
you think about the internal communication in the company?
Siti : Well, actually I don’t really know about it, because the other two
staffs in the financial company do the information collecting and
my job was only to write the reports based on the collected
information.
Interviewer : Oh I see… but do you think that there is any problem in this area?
30
Interviewer : Yes, maybe we should get more information about this from the
other two staffs in the financial department.
Interviewer : Anyway, let’s move on to the next question. What are your
difficulties when preparing a financial report?
Interviewer : Yes Mrs. Siti, as you say that the company needs a better system,
we would like to ask you, what will you suggest for the company’s
new system?
31
I.A.iii. Interview for Logistic Department
The questions that we will ask to staff from marketing department are:
a) Is there anything you like to feedback about the system here?
b) What are the problems when you communicate with the affiliated companies?
c) What do you think about the company’s working procedure?
d) What is your suggestion for company’s new system?
Interviewer : That’s good to hear…Ok now let’s start it…First of all I want to
ask about what do you think of the current system?
Mr. Iya : I am not quite satisfied with current system because I think it’s
not effective enough to do it.
Mr. Iya : Because when there is a customer that wants to create a party,
they tell us about what they need and then we have to contact
our affiliate company that can provide what we need. We have
to contact them by phone or email and sometimes these two
ways got delay to get reply. That is why I say that this system
ineffective.
Interviewer : I see…so can you tell me about the detail the communication
between you and the affiliated company?
32
Interviewer : I see…I will write down that…And what do you think about the
company’s working procedure?
Mr. Iya : There are several people in this department so we have to work
together to do the task. Actually we often get some trouble
when we have to contact the other person. That’s pretty
annoying for me.
Interviewer : I’m sure it is…The last question is what will you suggest for the
new system?
33
2) Interview with Ayi
Interviewer : Good afternoon Mrs. Ayi…How are you today? Thank you for
your time here…
Interviewer : What do you think about the current system in the company?
Mrs. Ayi : I will tell the truth here…The system very annoying…
Mrs. Ayi : Ok I give you a picture…If the order came, we have to contact
the affiliated company, and my duty is to come to the affiliated
company itself not like other people in this department who
just give a call or send an email to the affiliated company. It is
very wasting our time and energy.
Interviewer : I see…that is very tiring and pretty hard for you…
Interviewer : Can you describe the detail about the communication with the
affiliated company?
Mrs. Ayi : I don’t know about the other people who work in this
department but for me, it is very annoying when you have to go
to the affiliated company but when you reached there, they told
me to come back some few days later because they closed for
some reason. Then I have to go back to that company again
few days later.
Mrs. Ayi : I think it is fine but you know…some people often do mistakes
and they give a wrong information to me and when there is an
update about something, they late to inform me.
34
Interviewer : Ok…That one is very troublesome…if there will be new system
to replace the current system, what will you suggest?
Interviewer : I note down that…thank you for the interview…have a nice day
Mrs. Ayi!
35
3) Interview with Ajeb
Interviewer : Good Afternoon Mr. Ajeb…How are you today? Thank you for
your time here…
Interviewer : Let’s start with your opinion about the current system?
Mr. Ajeb : In my opinion, the current system is a bit not satisfied because
we have a problem when we have to contact the affiliated
company.
Mr. Ajeb : Hmm…like this… if you want to contact the affiliated company
there are two ways to do it, by phone or email from the
company and go to the affiliated company itself. Luckily, I do
the first one that is give a call or send an email to the affiliated
company. The affiliated company sometimes late to give a
reply to us, it is still not a problem if the deadline is still long
enough but the problem is when the time almost reach a point
that is the affiliated company must give reply now or else the
project will be delayed. When that time comes, we got stressed
because after that we have to do everything rushed.
Interviewer : Ok…I got your point…What do you think about the company’s
working procedure?
Mr. Ajeb : Hmm…I’m not so sure about it but I will tell you what I
know…The procedure is simple that is to give the order to the
affiliated company then they will give us their availability then
we can confirm it with the customer. But sometimes the
affiliated company already gives an answer to the one of our
person in this department but that person is forgot to tell the
other staff that the affiliated company already gives an answer,
so the other staff will ask a reply from the affiliated company.
This is one of example for wasting our energy. So the
company’s working procedure is not effective for me.
Interviewer : I take a note from that…What will you suggest if there is a new
system to replace the current system?
36
Mr. Ajeb : Hmm…Maybe I will suggest a system that can give us an
effective way to communicate and update the information more
quickly so we don’t have to waste our time and energy. That is
all.
Interviewer : Thank you for your suggestion and time Mr. Ajeb…Have a nice
day!!
37
I.B. Questionnaire
The questionnaire that we spread to all the Clover Company’s staffs is:
38
14. If there is a new system, which aspect of the company that need to be emphasized?
Financial Department Logistic Department
Marketing Department Others, please specify________________
15. How do you describe the need of new company system in a 1 to 5 scale (1 unimportant, 5
important)?
1 3
2 4
5
16. Which Type Of ew System That You Prefer?
Offline System Online System
39
II. ARRATIVE
1. System’s narrative
Clover Company’s Online System
This online system will be able to facilitate the company’s customer to place their
order online. So virtually the customer will be able to access the system anywhere as long
as the customer has an internet access. Before a customer can place their order, he/she
has to register first by filling the registration form. After the customer submits the
registration form, the system will send an e-mail to the customer’s e-mail to verify the
registration. After the registration is verified, now the customer can place their order.
While filling the order form, the customer will get many options to customize his/her
order specification, such as options for catering company, event documentation, event
place, etc. The customer will also able to make online payment for their order.
All the data and information inputted in this system will be stored in a database.
Data about the customer registration, order data, online payment data, company’s
financial data, and also data about the affiliate companies is stored in the system’s
database. Besides storing data, the database will also used to generate various reports
according to the company’s need.
Another system’s features for the customer are order tracking feature and
customer feedback feature. Firstly, the order tracking feature allows the customer to get
up to date information about the progress of his/her order. The customer will also be able
to make changes to his/her order specification or get informed by the company if the
order’s specification must be changed. Secondly, the customer can give a feedback to the
company through the system if the customer is not satisfied by the company’s service or
system or if the customer sees a room for improvement. This customer feedback will be
reviewed by the company and be considered as suggestion to improve the company’s
system or service.
Besides providing services for the company’s customer, the online system will
also helps the company’s relation with its affiliate companies such as food Supplier
Company, logistic company, event documenter company, printing company, etc. The
online system will provide feature for a representative of each affiliate company to login
into the system. After the affiliate company’s representative has login to the system, now
he/she can use the system’s features for the affiliate company. There are some system
feature for the affiliate company, they are: User Profile Module, Booking Status Module,
and Feedback Module. The User Profile Module is used to display the detail information
about the affiliate company, the user can edit or update some of this information if there
is any changes in the affiliate company’s profile like contact number or address.
The last part of the system is the administrator area, this part is used by the staffs
of the Clover Company and no unauthorized person can access this area as this area is
secured using password and the login page is not appear in the website’s main page. So,
the staff of the company will need to open the login page, enter the user id and password,
and then login to the system. After the staff login in the system, then he/she can use the
40
features of the system that are: order management module, customer management
module, affiliate company management module, company schedule and reminder, report
generator, and finance report module.
Using the order management module provides ability for the Clover Company’s
staff to manage all the orders from the customers. The staff can see each order detail and
update the order preparation progress when it’s necessary. The Clover Company can tell
the customer if there is any change to the order specification through this module.
Customer management module will help the company to manage its customer data. The
availability schedule from each affiliate company can be checked using affiliate company
management module. The Clover Company also can check which companies available
are for a certain date. Additionally, the Clover Company can check the status of an
affiliate company about how many order that request its service, whether all the request
have been confirmed, etc. The Clover Company also can send e-mail to any affiliate
company if there is something urgent to ask. Moreover, the company can see its schedule
and get reminded for upcoming events by the system too. While, for report generation
there are report generator module and finance report module. Report generator module is
used generate many kind of reports from the system database. It can produce reports like
customer data report, affiliate companies report, report about the orders received in a
certain period, etc. These reports can be used for an onscreen viewing only or printed to
be used as meeting materials. And finally, The Company’s finance department can use
finance report module to generate the company’s financial report. It has many categories
of what period of time should the report show and also report for general condition or
report on per case basis (e.g. report for each order).
41
2. Hardware Requirements
The minimum hardware specification to operate this system is:
9. Intel Pentium IV processor or better
10. Minimum 512 Mb RAM
11. Color Monitor
12. Keyboard
13. Mouse with scroll button
14. 160 GB hard disk
15. DSL Internet connection
16. Laser Printer or Dot Matrix Printer
For the web server itself, we will host the website on another commercial web server, so
we don’t need to buy the expensive web server computer for the company.
3. Software Requirements
Development Software
The software that is used to develop this new system:
1. Notepad ++
2. PHP editor
3. PHP (Personal Home Page)
4. phpMyAdmin
5. FileZilla
6. Apache HTTP server
7. MySQL
8. Adobe Dreamweaver
9. Adobe Photoshop
10. Core FTP
Operational Software
The minimum requirement of the software to operate the system:
1. Windows XP or Windows Vista
2. Internet Browser (Mozilla Firefox v.2 or Internet Explorer 7)
42
III. PROCESS FLOW
The DFD (Data Flow Diagram) of the system is as follows:
1. Proposed System Context Diagram
Order Confirmation
Order
Customer Affiliate Company
Receipt
Order Updated
management
Financial Data Data
Adjustment
Request Report
Management
Adjust Finance Report
data
Finance Request
Report
Report
Financial Management
Updated Finance
Data
43
2. Proposed System 1st level Data Flow Diagram
Confirmation
Confirmation
1.0
Customer Receive Affiliate Company
Order Order
Order
Payment
Order
Receipt Data
System Data
Center
Update
Financial data
3.0
Adjust Finance Data Update
Adjustment
Updated Updated
Finance Management
Data
Data
4.0
Request Report Request Report
Report
Management Report
44
3. 2nd level Data Flow Diagram (1.0 Receive Order)
Customer
4.
Order
Customer detail
Order 1.1
Customer Detail
Confirm
confirmation
Customer
Detail
New customer detail
Order Confirmation
Availability detail
1.2
Confirm
Availability
Schedule
Update schedule
Confirmation
Affiliate Company
45
2nd level Data Flow Diagram (2.0 Sales Process)
Customer
Payment
Receipt
2.1
Process
Payment
Order Detail
Update Order Detail
Payment
Status
2.2
Prepare
Update
Documentation Order Detail
Order Data
Update
Sales Data
Sales
46
5. 2nd level Data Flow Diagram (3.0 Update)
Adjustment
Financial Management
Schedule
Adjustment
Updated Finance Data
Sales
Requested Data 3.1
Receive
Order Data Data Requested Data
Schedule
Requested Data
New Data
47
6. 2nd level Data Flow Diagram (4.0 Report)
Schedule
Schedule
Sales Detail Order Data
4.1
Sales detail Collect & Order detail
Sort
Information
Relevant information
Request
report Request
4.2 report
Prepare
Report
48
IV. ILLUSTRATIVE SUPPORTIVE
INPUT OUTPUT PROCESS CONTROL
CONTENT Registration Receipt Register new Validate
Form Order customer customer
Order Confirmation Issue order registration
Payment Order confirmation Log in, user ID
Schedule Finance report Receive and password
Order Updated payment Confirm
Confirmation finance data Generate schedule
Financial Data Updated payment Payment
Report request management receipt reminder
(financial) data Select Validate order
Finance data Management payment detail
adjustment report method Validate
Management Check financial data
data Payment Validate
adjustment Method finance report
Report request Check Validate
(management) availability management
schedule data
Issue order to adjustment
affiliate
company
Receive
confirmation
Receive
financial data
Receive
financial
report request
Update
financial data
Generate
financial
report
Receive
management
report request
Generate
management
report
Receive
management
data
adjustment
Update
management
data
VOLUME About 3 orders Same volume
per month as customer
49
About 10 registration
payments per Same volume
month as payment
About 10
customer
registration per
month
TIMING As and when As soon as Real time
customer possible, processing
register timing is
As and when crucial to Batch
customer make customer Processing
order and registration,
payment order, and
payment
Generate
monthly
financial
report
Generate
monthly
management
report
FREQUENCY Daily – Daily – Performed on
customer customer order demand
registration, confirmation
order, and and receipt
payment Monthly –
Monthly – financial
Report report and
Request management
report
EQUIPMENT Registration E-mail PCs Form with
form Phone Printers verification
Order form Printed code
Phones Hardcopies
E-mail
LOCATION Clover Clover Respective Respective
company’s company’s areas areas
website website (Customer, (Customer,
affiliate, and affiliate, and
administrator administrator
area) area)
PEOPLE Customers Customers Customers Department
Finance Staff Finance Staff Finance Staff managers
Logistic Staff Logistic Staff Logistic Staff System
Management Management Management administrator
Affiliate Affiliate Affiliate
company’s company’s company’s
staffs staffs staffs
50
V. PROBLEMS & LIMITATIOS
There are some problems faced by the Clover Company with their current system:
Ineffective communication
Because the EO team consists of so many persons who have different tasks, the
head will need to get report from each person by calling them one by one.
And if there is any changes of requirement from the customer (e.g. changes of
place), the head will need to call the person who is in charge of it.
51
VI. SCOPE & COSTRAITS
a. Project Scope
This project will develop an online system to help Clover Company as an event
organizer company, to make their working procedure more effective in certain areas.
These areas include:
1) Order management
2) Customer management
3) Receive online payment
4) Schedule synchronization with affiliate companies
5) Generate reports for financial and management
So, this system won’t help the company to do its technical works on the field, such as
surveying the event place, choosing the right persons to do certain things, etc.
b. Project Constraints
There are some constraints for this system:
i) Time Constraint
There are two types of time constraints, present and future. Present time
constraints are requirement that must be met as soon as the system is developed or
implemented, while future time constraints are the requirements that will be
necessary at some time in the future.
The present constraint of the system is that the system must be able to take over
the old manual functions from the current system. Example: manage orders,
manage customers, receive payments, and synchronize schedule with the affiliate
companies. These constraints must be met as soon as the system is implemented
because these requirements are crucial for the company’s daily operation.
On the other hand, the future constraints of the system are to make
synchronization between the main office with the branch offices, which is not
important now because the company haven’t had any branch yet.
52
iii) Mandatory Constraint
The mandatory constraints of the system are constraints that are absolutely
essential to be met because if these requirements is failed to be satisfied, then the
company’s operation will be suspended.
53
DOCUMETATIO DESIG
This online system will be able to facilitate the company’s customer to place their
order online. So virtually the customer will be able to access the system anywhere as long
as the customer has an internet access. Before a customer can place their order, he/she
has to register first by filling the registration form. After the customer submits the
registration form, the system will send an e-mail to the customer’s e-mail to verify the
registration. After the registration is verified, now the customer can place their order.
While filling the order form, the customer will get many options to customize his/her
order specification, such as options for catering company, event documentation, event
place, etc. The customer will also able to make online payment for their order.
All the data and information inputted in this system will be stored in a database.
Data about the customer registration, order data, online payment data, company’s
financial data, and also data about the affiliate companies is stored in the system’s
database. Besides storing data, the database will also used to generate various reports
according to the company’s need.
Another system’s features for the customer are order tracking feature and
customer feedback feature. Firstly, the order tracking feature allows the customer to get
up to date information about the progress of his/her order. The customer will also be able
to make changes to his/her order specification or get informed by the company if the
order’s specification must be changed. Secondly, the customer can give a feedback to the
company through the system if the customer is not satisfied by the company’s service or
system or if the customer sees a room for improvement. This customer feedback will be
reviewed by the company and be considered as suggestion to improve the company’s
system or service.
Besides providing services for the company’s customer, the online system will
also helps the company’s relation with its affiliate companies such as food Supplier
Company, logistic company, event documenter company, printing company, etc. The
online system will provide feature for a representative of each affiliate company to login
into the system. After the affiliate company’s representative has login to the system, now
he/she can use the system’s features for the affiliate company. There are some system
feature for the affiliate company, they are: User Profile Module, Booking Status Module,
and Feedback Module. The User Profile Module is used to display the detail information
about the affiliate company, the user can edit or update some of this information if there
is any changes in the affiliate company’s profile like contact number or address.
54
The last part of the system is the administrator area, this part is used by the staffs
of the Clover Company and no unauthorized person can access this area as this area is
secured using password and the login page is not appear in the website’s main page. So,
the staff of the company will need to open the login page, enter the user id and password,
and then login to the system. After the staff login in the system, then he/she can use the
features of the system that are: order management module, customer management
module, affiliate company management module, company schedule and reminder, report
generator, and finance report module.
Using the order management module provides ability for the Clover Company’s staff
to manage all the orders from the customers. The staff can see each order detail and
update the order preparation progress when it’s necessary. The Clover Company can tell
the customer if there is any change to the order specification through this module.
Customer management module will help the company to manage its customer data. The
availability schedule from each affiliate company can be checked using affiliate company
management module. The Clover Company also can check which companies available
are for a certain date. Additionally, the Clover Company can check the status of an
affiliate company about how many order that request its service, whether all the request
have been confirmed, etc. The Clover Company also can send e-mail to any affiliate
company if there is something urgent to ask. Moreover, the company can see its schedule
and get reminded for upcoming events by the system too. While, for report generation
there are report generator module and finance report module. Report generator module is
used generate many kind of reports from the system database. It can produce reports like
customer data report, affiliate companies report, report about the orders received in a
certain period, etc. These reports can be used for an onscreen viewing only or printed to
be used as meeting materials. And finally, The Company’s finance department can use
finance report module to generate the company’s financial report. It has many categories
of what period of time should the report show and also report for general condition or
report on per case basis (e.g. report for each order).
55
I. b. Illustration Supporting arrative
I. b. 1. Company’s Organization Chart
Top
Management
Financial Logistic
Marketing
Market
Research & Treasurer Agent
Analyst
56
I. c. Process Flows
I. c. 1. Proposed System Context Diagram
Order Confirmation
Order
Customer Affiliate Company
Receipt
Schedule
Order Updated
management
Financial Data Data
Adjustment
Request Report
Management
Adjust Finance Report
data
Finance Request
Report
Report
Financial Management
Updated Finance
Data
57
I. c. 2. Proposed System 1st level Data Flow Diagram
Confirmation
Confirmation
1.0
Customer Receive Affiliate Company
Order Order
Order
Payment
Order
Receipt Data
System Data
Center
Update
Financial data
3.0
Adjust Finance Data Update
Adjustment
Updated Updated
Finance Management
Data
Data
4.0
Request Report Request Report
Report
Management Report
58
I. c.3. 2nd level Data Flow Diagram (1.0 Receive Order)
Customer
Order
Customer detail
Order 1.1
Customer Detail
Confirm
confirmation
Customer
Detail
New customer detail
Order Confirmation
Availability detail
1.2
Confirm
Availability
Schedule
Update schedule
Confirmation
3.0
59
I. c. 4. 2nd level Data Flow Diagram (2.0 Sales Process)
Customer
Payment
Receipt
2.1
Process
Payment
Order Detail
Update Order Detail
Payment
Status
2.2
Prepare
Update
Documentation Order Detail
Order Data
Update
Sales Data
Sales
60
I. c. 5. 2nd level Data Flow Diagram (3.0 Update)
Adjustment
Financial Management
Schedule
Adjustment
Updated Finance Data
Sales
Requested Data 3.1
Receive
Order Data Data Requested Data
Schedule
Requested Data
New Data
61
I. c. 6. 2nd level Data Flow Diagram (4.0 Report)
Schedule
Schedule
Sales Detail Order Data
4.1
Sales detail Collect & Order detail
Sort
Information
Relevant information
Request
report Request
4.2 report
Prepare
Report
62
II. Detailed Design
II. a. Entity Relationship Diagram
Customer
Schedule_distribution Schedule
Affiliate Service
Entities:
a. Customer
i. customer_id
ii. name
iii. gender
iv. date_of_birth
v. e-mail
vi. phone
vii. ic/passport number
viii. password
b. Affiliate
i. affiliate_id
ii. name
iii. phone
iv. e-mail
v. password
vi. service
vii. address
viii. description
63
c. Order
i. order_id
ii. customer_id
iii. schedule_id
iv. event
v. event_date
vi. event_time
vii. additional_info
viii. date
ix. pay_mode
x. pay_status
d. Schedule
i. schedule_id
ii. date
e. Payment
i. payment_id
ii. order_id
iii. date
iv. amount
v. remain
f. Event
i. Event
ii. Description
iii. Price
iv. Venue
v. Food
vi. Documentation
vii. Publication
viii. Entertainment
g. Service
i. service
ii.service_desc
h. Schedule_Distribution
i. schedule_id
ii. affiliate_id
iii. order_id
iv. confirmation
v. note
64
b. Data Structure
a. Customer
Detail information of the customer
Data Element Data Type Size Description Validation
customer_id Integer 5 Primary Key No duplicate
name Varchar 100 Customer name -
gender Varchar 1 Customer gender M/F
date_of_birth Date - Customer date of birth dd/mm/yyyy
e-mail Varchar 100 Customer e-mail e-mail format
IC/Passport no. Varchar 20 Customer IC/Passport -
Password Varchar 20 Customer Password -
Phone Varchar 10 Customer phone no. Number
b. Affiliate
Data Element Data Type Size Description Validation
affiliate_id Integer 5 Primary Key No duplicate
name Varchar 100 Affiliate name -
Phone Varchar 20 Affiliate phone no. Number
e-mail Varchar 100 Affiliate e-mail e-mail format
Password Varchar 20 Affiliate Password -
Service Varchar 100 Affiliate company’s -
service
Address Text - Affiliate address
Description Text - Affiliate description
c. Order
Data Element Data Type Size Description Validation
Order_id Integer 5 Primary Key No duplicate
Date Date - Order’s date dd/mm/yyyy
customer_id Integer 5 Customer’s id Valid id
Schedule_id Integer 5 Schedule’s id Valid id
Event Varchar 50 Event description -
Event_date Date - Event Date -
Event_time Time - Event time -
Additional_info Text - Additional info about -
event
Pay_mode Varchar 10 Customer payment -
mode
Pay_status Varchar 10 Customer payment -
status
d. Schedule
Data Element Data Type Size Description Validation
schedule_id Integer 5 Primary Key No duplicate
65
Date Date - Available date dd/mm/yyyy
e. Payment
Data Element Data Type Size Description Validation
payment_id Integer 5 Primary Key No duplicate
Order_id Integer 5 Payment type Valid id
date Date - Payment date dd/mm/yyyy
Amount Decimal 20 Amount of payment Numeric
remain Decimal 20 Customer’s id Valid id
f. Admin
Data Element Data Type Size Description Validation
admin_id Integer 5 Primary Key No duplicate
e-mail Varchar 100 Affiliate e-mail e-mail format
Password Varchar 100 Affiliate Password -
Name Varchar 100 Affiliate Name -
g. ews
Data Element Data Type Size Description Validation
news_id Integer 5 Primary Key No duplicate
news title Varchar 100 News title -
News content Memo - News content -
Picture Varchar 100 News picture address -
news_date Date - Date of the news dd/mm/yyyy
News_time Time - Time of the news Hh/mm
News_days Varchar 100 Day of the news -
Counter Integer 5 Number the website -
visited
66
II. c. Architectural Design
*
Start Body End
o o o
News Login Register
o o
Customer Administrator
o o o o o o
Profile Make Order Order Status Payment Report Manage
o
Affiliates
o o o
Profile Order Status
67
Main Menu
Profile Reports
Profile
Make Order Order Maintenance
Confirm
Check Order
68
II. d. Procedural Design
II. d. 1. System Flowchart
Start
Display
Main Menu
Get
Choice
End
Display
News
A B
69
A
Get Information
Display
Information
Add to database
Display Main
Menu
70
B
Display
login screen
Get
Choice
Yes
Yes Yes
Get
Id & password
Compare with
database
Correct No
Yes
C D E
71
C
Display
welcome screen
Get
Choice
No Make No No Order No
profile order payment status logout
Display
C1 C2 C3 C4 Main Menu
72
C1 C3
C4
Display form
Display Display
profile data profile data
Get info
Get choice Get choice
No Update
Change Database No
C Change C
Display
Display form Confirmation
Display form
C2
Get data C Get data
Display form
Update database Update database
Get info
Update
Database
Display
Confirmation
C 73
D
Display
welcome screen
Get
Choice
No Order No
profile status logout
Display
D1 D2 Main Menu
74
D1 D2
Display
profile data Display
order status
Get choice
Get choice
No
Change D
No
Confirm Get reason
Update
database
Get data
D
Update database
75
E
Display
welcome screen
Get
Choice
Display
E1 E2 E3 E4 Main Menu
76
E2
E1
Display
Display order list
Menu
No
Make report Order E
from
database
Display
order menu
Display
Report
Get choice
E
Edit
Display
form
Get info
Update
database
E2 77
E3 E4
Display Display
order list news list
No No
Order E Order E
Display Display
order menu order menu
Edit Edit
Display Display
form form
Update Update
database database
E3 78 E4
II. e. Interface Design
In this part, we will show rough design of the system’s interface. The system will
be displayed to the user as web pages, so it will more or less have the typical design of a
web page such as header and left panel with buttons or hyperlinks. The buttons and text
that will be shown here is just the essential buttons and text in the system. The actual
system will have decorative elements such as pictures, texts, and features.
II. e. 1. i. header
header
Header image
79
II. e. 1. ii. left panel
Left panel
Hyperlink 1
Hyperlink 2
Hyperlink 3
Hyperlink 4
Hyperlink 5
Hyperlink 6
Hyperlink 7
Hyperlink 8
Text 1
80
II. e. 2. Main Menu
Header
Left
panel
content
Footer
81
II. e. 3. ews
Header
Text 1
Text 2
Left
panel
Text 3
Text 4
hyperlinks
Footer
82
II. e. 4. Login
Header
Text 1
Button
Footer
83
II. e. 5. Customer
Header
Hyperlink 1 Hyperlink 2
Left
panel Hyperlink 3 Hyperlink 4
Hyperlink 5 Hyperlink 6
Hyperlink 7
Footer
84
II. e. 6. Profile
Header
Left Profile
panel
Hyperlink 1 Hyperlink 2
Footer
85
II. e. 7. Make order
Header
Button Hyperlink 1
Footer
86
II. e. 8. Payment
Header
Footer
87
II. e. 9. Order status (Customer)
Header
Text 1 Hyperlink
Text 2 Hyperlink
Left
panel
Text 3 Hyperlink
Footer
88
II. e. 10. Affiliate
Header
Hyperlink 1 Hyperlink 2
Left
panel
Hyperlink 3 Hyperlink 4
Hyperlink 5
Footer
89
II. e. 12. Order status (Affiliate)
Header
Footer
90
II. e. 13. Administrator
Header
Hyperlink 1 Hyperlink 2
Left
panel Hyperlink 3 Hyperlink 4
Hyperlink 6 Hyperlink 7
Hyperlink 8
Footer
91
II. e. 14. Report
Header
Left
panel
Button
Footer
92
II. e. 15. Order management
Header
Text 1 Hyperlink 1
Text 2 Hyperlink 1
Left
panel
Text 3 Hyperlink 1
Footer
93
II. e. 16. Manage customer & affiliate
Header
Hyperlink 1 Hyperlink 2
Hyperlink 3
Left
panel
Text 1 Hyperlink 4
Text 2 Hyperlink 4
Text 3 Hyperlink 4
Footer
94
II. e. 17. Manage ews
Header
Hyperlink 1
Footer
95
II. e. 18. Register
Header
Button Hyperlink 1
Footer
96
II. e. 19. About us
Header
Left
panel
content
Footer
97
II. e. 20. Contact us
Header
Left
panel
content
Footer
98
III. Hardware and Software Selection
For the web server itself, we will host the website on another commercial web
server, so we don’t need to buy the expensive web server computer for the
company.
Operational Software
The minimum requirement of the software to operate the system:
1. Windows XP or Windows Vista
2. Internet Browser (Mozilla Firefox v.2 or Internet Explorer 7)
99
4. DEVELOPMET AD IMPLEMETATIO
Testing is an important phase in system development. We need to test our event organizer
system in order to check and find out about the bugs or errors. The main purpose of our
testing activity is not to show off that our system is error free, but to find out as many
bugs and error as we can and then do a proper debugging activity. Because the faster we
can detect bugs in our system, it will be easier for us as the developer team to debug it, on
the other hand an unidentified bug in the system development process will be hard to
debug if it is uncovered after the system has been implemented. In conclusion, we do this
testing activity in order to find as much bug as possible and debug it, we need to note that
even after thorough testing and debugging process, a completely error free program is
impossible to achieve, so we aim for 98% error free program.
2. Logic Error
Logic error is caused by more human error factor, such as misunderstanding of
the algorithms used, so it will produce an incorrect result. We can’t use any
interpreter or compiler to detect a logic errors as it has nothing to do with the
compilation process of the program.
3. Runtime Error
Runtime error is a kind of error that can only detected by running the program. It
is the same with logic error that we cannot use any interpreter or compiler to
detect this runtime error
4. Semantic Error
Semantic error is caused by the programmer fail to understand the meaning of the
syntax used in the respective programming language.
After looking at those four classification of error, we make our testing strategy in a way
that it will be able to detect all kind of error listed above. Our developed testing strategy
for the event organizer system covers things like choosing the right testing technique;
develop a test plan, test cases, test execution, test result and the test logs. There are many
testing technique available out there, but after closely considering about which testing
100
technique that we would like to implement for our event organizer system testing activity,
we will choose the black box testing technique.
Black box testing, also known as interface testing, is a testing technique where the test
cases is derived from the system’s requirement. So, we will take the event organizer
system’s requirement as a reference to generate the test cases and we will try to see if the
actual system can fulfill its requirements.
In our black box testing activity, we create the test cases based on our system’s
requirement, so what the requirement says that the system can do, the actual system
should be able to do the function as stated in the requirement. Basically, we can decide if
the test is successful or not just by looking whether the stated function in the requirement
can be performed by the system or not.
Our consideration of choosing black box testing as our testing method is because black
box testing can do many things such as:
• Loading, executing, and terminating errors
• Detecting any Interface error
• Find out about performance errors
• Detect bug in data structure
• Detect missing functions
Implementation
Expected results
101
Test Cases
Test Test Objectives Expected results
Cases
1 Check the new customer An alert will appear and the input box
registration process, test the with invalid input value will become red
input validation and the correct input box will become
green.
2 Test if the customer can access The customer can access the customer
the customer page after he/she page.
have activated his/her account.
3 Test the edit profile in customer The customer can edit his/her profile
page using the edit profile
4 Test the “make order” module to Customer can make a new order using
make a new event order the make order module, a notification
will be given to the customer in the
customer page
5 Test if the customer can see The customer’s order(s) displayed. The
his/her order status and customer can see his/her order status and
information using the “order information using the “order status”
status” module module
6 Test if the customer can use the Customer will be redirected to Paypal’s
“payment” module to pay website after clicking the “pay now”
his/her order through Paypal button.
7 Test if the customer will be Customer redirected back to customer
redirected to the website after page with a status message
making payment
8 Test if an affiliate company can Affiliate company can login and
log in and access the affiliate redirected to the affiliate page
page
9 Test if the an affiliate company Affliate company’s profile can be
can change its company changed using “profile” module
information using the “profile”
module
10 Test if the affiliate company can Orders for the respective affiliate
check its order status using company will be displayed
“order status” module
11 Test that an affiliate company A form to fill the rejection reason will
need to give a reason if it want appear before the status is changed as
to reject an order rejected
12 Test that the confirmation status The confirmation status of the order
can be changed to “confirmed” become “confirmed”
13 Test if the affiliate company can A feedback is sent to the administrator’s
send a feedback using the e-mail after the feedback form has been
“feedback” module (also successfully submitted
applicable to customer)
14 Test that the administrator can The administrator can login and access
102
login and access the admin page the admin page
15 Test that the administrator can The selected type of report is displayed
generate the desired report using
“report” module
16 Test the “manage order” module All the order in the database is displayed
to show all the order in the
database
17 Test that administrator can edit The order information is updated after
an order information the editing process
18 Test the “customer & affiliate” The information about customer and
module to show information affiliate company is displayed according
about customers and affiliate to which one is choosen
companies
19 Test that the administrator can The administrator can add a customer to
add a new customer (also the database
applicable to affiliate company)
20 Test that the administrator can New news added to the website and is
add a new news to the website accessible from the “news” page
using the “manage news”
module
103
Test logs
Test Cases Test Result
1 Successful
2 Successful
3 Successful
4 Successful
5 Successful
6 Successful
7 Successful
8 Successful
9 Successful
10 Successful
11 Successful
12 Successful
13 Successful
14 Successful
15 Successful
16 Successful
17 Successful
18 Successful
19 Successful
20 Successful
104
Test Logs
Test case 1
Objectives Check the new customer registration process, test the input validation
Test Action Input a wrong value in the registration form
Expected Test Result An alert will appear and the input box with invalid input value will
become red and the correct input box will become green.
Actual Test Result As shown below
Conclusion Succeeded
Before
Step 1
Step 2
105
Incorrect input
106
After
Step 1
Step 2
107
Test case 2
Objectives Test if the customer can access the customer page after he/she have
activated his/her account.
Test Action Complete the registration form, click on activation link on the e-mail,
and then login from the login page
Expected Test Result The customer can access the customer page after the account is
activated
Actual Test Result As shown below
Conclusion Succeeded
Before
Step 1
Step 2
108
Step 3
After
109
110
Test case 3
Objectives Test the edit profile in customer page
Test Action Change the customer information in the “profile” module then click
save changes
Expected Test Result The customer can edit his/her profile using the edit profile
Actual Test Result As shown below
Conclusion Succeeded
Before
Step 1
Step 2
111
112
After
113
Test case 4
Objectives Test the “make order” module to make a new event order
Test Action Complete the order form inside the “make order” module
Expected Test Result Customer can make a new order using the make order module, a
notification will be given to the customer in the customer page
Actual Test Result As shown below
Conclusion Succeeded
Before
Step 1
Step 2
114
Step 3
After
115
116
Test case 5
Objectives Test if the customer can see his/her order status and information using
the “order status” module
Test Action Click the “order status” module from customer page
Expected Test Result The customer’s order(s) displayed. The customer can see his/her
order status and information using the “order status” module
Actual Test Result As shown below
Conclusion Succeeded
Before
After
117
118
Test case 6
Objectives Test if the customer can use the “payment” module to pay his/her
order through Paypal
Test Action Click the “pay now” button in the “payment” module
Expected Test Result Customer will be redirected to Paypal’s website after clicking the
“pay now” button.
Actual Test Result As shown below
Conclusion Succeeded
Before
After
119
120
Test case 7
Objectives Test if the customer will be redirected to the website after making
payment
Test Action Complete the paypal payment
Expected Test Result Customer redirected back to customer page with a status message
Actual Test Result As shown below
Conclusion Succeeded
Before
After
121
Test case 8
Objectives Test if an affiliate company can log in and access the affiliate page
Test Action Fill the login form with the e-mail and password of an affiliate
company, in this case we use :
Affiliate company name : ABCfood
e-mail : thomaset_2000@yahoo.com
password: abcpass
Expected Test Result Affiliate company can login and redirected to the affiliate page
Actual Test Result As shown below
Conclusion Succeeded
Before
After
122
123
Test case 9
Objectives Test if the an affiliate company can change its company information
using the “profile” module
Test Action Change the affiliate company’s information in the “profile” module
then click save changes
Expected Test Result Affliate company’s profile can be changed using “profile” module
Actual Test Result As shown below
Conclusion Succeeded
Before
Step 1
Step 2
124
125
After
126
Test case 10
Objectives Test if the affiliate company can check its order status using “order
status” module
Test Action Click the “order status” module from affiliate page
Expected Test Result Orders for the respective affiliate company will be displayed
Actual Test Result As shown below
Conclusion Succeeded
Before
After
127
Test case 11
Objectives Test that an affiliate company need to give a reason if it want to reject
an order
Test Action Click reject for one of the order
Expected Test Result A form to fill the rejection reason will appear before the status is
changed as rejected
Actual Test Result As shown below
Conclusion Succeeded
Before
Step 1
Step 2
128
129
After
130
Test case 12
Objectives Test that the confirmation status can be changed to “confirmed”
Test Action Click on the “confirm” for an order
Expected Test Result The confirmation status of the order become “confirmed”
Actual Test Result As shown below
Conclusion Succeeded
Before
After
131
Test case 13
Objectives Test if the affiliate company can send a feedback using the
“feedback” module (also applicable to customer)
Test Action Click the “feedback” module, fill the feedback form, and then click
the “send feedback” button
Expected Test Result A feedback is sent to the administrator’s e-mail after the feedback
form has been successfully submitted
Actual Test Result As shown below
Conclusion Succeeded
Before
Step 1
Step 2
132
133
After
134
Test case 14
Objectives Test that the administrator can login and access the admin page
Test Action Fill the e-mail and password for an administrator from the login page
The data used in this test:
Name : David
e-mail : ngekzzz@hotmail.com
password : cloverpass
Expected Test Result The administrator can login and access the admin page
Actual Test Result As shown below
Conclusion Succeeded
Before
After
135
136
Test case 15
Objectives Test that the administrator can generate the desired report using
“report” module
Test Action Select a report type and the click the “view report” button
Expected Test Result The selected type of report is displayed
Actual Test Result As shown below
Conclusion Succeeded
Before
After
137
Test case 16
Objectives Test the “manage order” module to show all the order in the database
Test Action Click the “manage order” module from admin page
Expected Test Result All the order in the database is displayed
Actual Test Result As shown below
Conclusion Succeeded
Before
After
138
Test case 17
Objectives Test that administrator can edit an order information
Test Action Click “detail” for an order, click the “edit order information” link, fill
the form, and then click submit
Expected Test Result The order information is updated after the editing process
Actual Test Result As shown below
Conclusion Succeeded
Before
Step 1
Step 2
139
140
Step 3
Step 4
141
After
142
Test case 18
Objectives Test the “customer & affiliate” module to show information about
customers and affiliate companies
Test Action Click on the “customer & affiliate” module from admin page
Expected Test Result The information about customer and affiliate company is displayed
according to which one is choosen
Actual Test Result As shown below
Conclusion Succeeded
Before
After
Customer
143
144
Affiliate
145
Test case 19
Objectives Test that the administrator can add a new customer (also applicable to
affiliate company)
Test Action Click “add customer” button, fill the form, and then click submit
Expected Test Result The administrator can add a customer to the database
Actual Test Result As shown below
Conclusion Succeeded
Before
Step 1
Step 2
146
147
Step 3
After
148
149
Test case 20
Objectives Test that the administrator can add a new news to the website using
the “manage news” module
Test Action Click on the “add news” in the “manage news” module, fill the form
and then click the “save” button
Expected Test Result New news added to the website and is accessible from the “news”
page
Actual Test Result As shown below
Conclusion Succeeded
Before
Step 1
Step 2
150
151
Step 3
After
152
153
4.2 Implementation: Conversion and Training Plan
The final stage is that we need to implement the program into the event
organization system so that it will perform its task with efficient and
effective. For this implementation, we can do 4 different technique like :
Parallel Conversion = In this technique, the new system and the old
system will be used at the same time. If the new system is satisfied,
then the old system will be discarded and replaced by the new system.
This is the safest method to implement the new system.
After we see all the advantages and disadvantage of these techniques, I will
consider choosing parallel conversion since it is the safest method to
implement new system. It will cost more for implementation but the entire
data still has a backup in case that some of the new system fail. After all the
new system has been implemented successfully into the organization, the old
system will be discarded. The other reason I choose parallel conversion as a
suitable technique is that because I cannot use the pilot conversion since I do
not have any branch office, I cannot use the direct conversion because that
this technique is too risky. The reason is we do not have any back up if the
new system fails. The last is phased conversion, we cannot use this
154
technique is because that we have to split the program that we have made
and we do not prepare to split the new system program. So the parallel
conversion is the best technique to choose and also the safest way.
Is it the No Debug
expected
result?
Yes
So we already know about the planning to implement the new system to the
organization which is parallel conversion. At first, the old system and new
system will work together which means that if a customer come to the
office, the staff will still need to write it down on a paper then it will input to
the new system.
155
In the conversion plan, people who has to take a part in this plan are :
System Analyst
Programmer
Database Administrator
IT support technician
When doing the conversion, all people will be involved. For programmer
and system analyst who has a big part at the implementation stage, they have
to prepare if something or some errors occur during the implementation
stage.
Another important person who has to involve in this stage is the main
programmer of the new system. He is the one who make the program so if
something happen; he has to make a quick move to resolve the problem.
Also if the user needs assistance when using the new program, the
programmer will be there to guide them. The database administrator holds a
responsibility to ensure that the database is able to add, delete, edit, store and
update.
The last thing is the IT support technician; he is the one that responsible for
the hardware for the new system. For example, installation of the hardware
and also if there is a problem with the internet connection because the
system needs to go online.
156
4.3 Implementation : User Guide.
There are two main ways on how to run our event organizer system:
1. Using the online version
2. Use it locally in a computer
Because using the online version of our system is the simplest way, so we
recommend you to use this method. However, if you want to try to run our system locally
in your computer, you can follow the guide to use the system locally in the next section.
Installation Steps:
1. Step 1
Download and install XAMPP from its website
http://www.apachefriends.org/en/xampp-windows.html
Follow the installation wizard and don’t forget to check the option to install
Apache and Mysql as a service. We recommend to install it in C:/ Drive’
2. Step 2
Download and install Argosoft mail serve from its website
http://www.argosoft.com/RootPages/Download.aspx
Download the Mail server freeware (agsmail.exe)
Follow the installation wizard, run the argosoft mail server. Then you need to do
some configuration.
Click on tools – option – then go under local domains tab
Add two local domains (localhost and localhost.com) as the local domain
Click ok
Click tools – user – add new user
Enter “webmaster” as user name then enter your full name and password
3. Step 3
157
Download and install Mozilla Thunderbird from its website
http://www.mozilla.com/en-US/thunderbird/
Follow the installation wizard.
Then open the Mozilla Thunderbird and do some configurations:
Click file – new – account
Email Account – next
Enter your name as in the argosoft mail server
Enter e-mail address as webmaster@localhost
Click next
Enter “localhost” as the incoming server, click next
Enter your desired incoming name, click next
Enter “webmaster@localhost” as account name, click next
Click Finish
Repeat this configuration with webmaster@localhost.com as the e-mail
address and account name
4. Step 4
Step 4 is installing Mozilla firefox as a web browser, but you can use any other
web browser in your computer, you can download Mozilla firefox from this
website
http://www.mozilla.com/en-US/firefox/all.html
Install and follow the installation wizard
5. Step 5
Copy the “eowebsite” folder found in the CD to “C:\xampp\htdocs” (assumed that
you install the XAMPP in “C:\”
6. Step 6
Copy the “eodb” folder found in the CD to “C:\xampp\mysql\data” (assumed that
you install the XAMPP in “C:\”
7. Step 7
Open your web browser, then type in the address bar
http://localhost/eowebsite
Now you can start to use the website
158
4.3.2 Operating Guide
In this part, we explain about how to use the website. There are 3 sections in this website,
like: Customer page, Administrator page, and Affiliate company page. If you want to
login as a visitor, you have to register first. You can choose register link at the left side of
the website.
The register form will look like this. All you need to do is to fill in the form and then
after you fill the entire box, you just simply click submit to receive the confirmation
email to your email inbox. You need go to your email inbox to activate the account then
you can login to the website as the customer.
159
That is the layout of the user login page. You can login by entering your email address
and your own password. After you login successfully, you will enter this page
In this page, customer is able to change their own profile, make an order, check order
status, make a payment, send a feedback, read the user guide and logout.
160
If customer wants to change their profile, the page will look like this:
After customer make a necessary change in their own profile, they need to save changes
and then customer will be back into customer main page.
If customer chooses to make an order, they can just click the link in the customer main
page and the page will go to this page
In this page, customer needs to choose which event between wedding and birthday party
that they want us to organize then click submit to continue to the other page.
161
In this page customer can choose which packages they want to and if they want to know
about the description of the package they can click the link. After they choose which
package they want, they can go to next page.
In this page, customer needs to fill in the date, the time, and additional info. After that
they just need to submit it.
162
If the customer wants to check their order status, they can choose order status from the
customer main page.
If the customer wants to make a payment, they just need go to payment page.
There is status whether the order has been paid, half-paid or unpaid. The customer can
make a payment by using paypal.
If the customer wants to send a feedback to the organization, they can choose the
feedback module in the customer main page.
163
This is the page of feedback form. Customer need to fill the title box and then write the
feedback to us in the box below title. After the customer finish write about the feedback,
they can send it to our organization.
In this section, I will give the guide about how to use administrator page. All you need to
do is login by using email address and password that has been created by administrator.
The administrator main page will look like this:
There are 7 modules in the administrator section which are reports, manage order,
customer & affiliates, manage news, manage payment, user guide and logout.
If the administrator wants to see the reports of the active order, all payment, the income
of current month, etc. They can access the reports module from the administrator main
page.
164
In this page, administrator can choose which report they want to produce. After choose
certain report to produce, they just need to click ‘view report’ to go to next page.
The administrator can choose to print the report or they just want to see it and then go
back to previous page and look for another report.
If the administrator wants to manage order, they can just go to manage order module in
the administrator main menu.
165
In this page, administrator can check whether the affiliate has been confirmed the order
or not and also they can check the payment that customer has been made whether it has
been fully paid, half-paid, or unpaid. If the administrator wants to see more detail about
the order, he/she can just click the detail link on the right side.
If the administrator wants to see the list of customer data and affiliate data, they need to
go to customer and affiliate module in the administrator main menu.
166
In this page, administrator can choose between customer data or affiliate company data.
Administrator also can add a customer or affiliate company data in this page and also if
they are able to see more detail information about customer and affiliate company.
If administrator wants to manage the news for the main page of this website which is
containing about news of this organization event.
167
In this page, administrator can add, edit or delete the news from the database.
If the administrator wants to manage the payment of the order, they can choose the
manage payment module in the administrator main page. Administrator can add, edit and
delete payment in this module. This module is required for producing the report in the
report module.
There is also user guide module in this administrator main page. This user guide is for a
guide that is similar to this.
In this affiliate company page section, the affiliate company is able to change their
profile, see the order status, send a feedback to the organization, see the user guide and
logout.
168
This is the affiliate company main page. If the affiliate company wants to change their
profile, they can go to profile module in the main page.
This is affiliate company profile page. If they want to change their profile, they can
change it here and after they change the profile, they have to save changes.
169
If the affiliate company wants to see the order detail, they can go to order detail module
in the affiliate company main page.
In this page, Affiliate Company can see about their order detail.
If the affiliate company wants to send a feedback to the organization, they can choose the
feedback module in the customer main page
170
This is the page of feedback form. Affiliate Company needs to fill the title box and then
write the feedback to us in the box below title. After the Affiliate Company finish write
about the feedback, they can send it to our organization.
171
4.4 Critical Appraisal: Combined
There are some major modules that we can see in this system:
By combining PHP.net for the online system and MySQL for database will make this
system is powerful because you can modify the system easily and retrieve information
easily.
This system is built in three section which are user section, administrator section and
affiliate company section. The user section is for customer who wants to use our service.
They have to register first if they want to login. Inside the system, the customer is able to
choose the package they want to choose or they can choose the vendor manually. There is
also payment service PayPal if they want to make an online payment.
The Administrator section is for the administrator who wants to manage the order or
confirm the order that has been accepted by the vendor. We can produce a different
record. For example records like: payment, income of current month, income for the last
three month, etc. There is affiliate and customer module for the list of customer and
affiliate company details. And there is user guide module for people who still need a
guide about how to use the system.
The Affiliate section is for the affiliate company to check the order status or if they want
to change their profile. They also can send a feedback to Clover event organizer if they
feel something is not suitable or something is wrong with the website. There is also a user
guide for Affiliate Company about how to use the website.
We try to make this website is user friendly so that the user is not having a hard time to
access the website. The last thing to do is to create this documentation and user manual
for the end-user so that they can understand about the basic of this system. There are a lot
of problems occurred when we develop this system but in the end, we finally finish it.
This system is not yet a perfect system. There are still some of things that we have to
modify in the future, for example like: Affiliate Company can upload the schedule into
the system, so that they can automatically book from the website.
172
4.5 Critical Appraisal: Individual
At the first time I heard that this project will be a group project, I feel relieved because 2
project before I have to do myself. Then we have to choose whether we want to create an
offline system or online system. I and my group thought and considered which the best
for this project is between online and offline. After all discussion, we finally choose the
online system because it will more challenging for us. We start to make a proposal for the
system, and for the first try, the proposal is need to revised again because of some point is
still not right and we have to change it. The second try, the proposal was accepted and we
were very happy.
We have to finish this project in two terms time so we complete until analysis
documentation in the first term and the second term we start with design documentation.
The second term, we have to do coding and we still do not know about the programming
language for online-based system so we need to study the programming language first.
We choose PHP.net for online programming and MySQL for database. Both language we
need to study first and the time given is very short. At first I thought we are not going to
make it in time because there are too much to do. But with Thomas magnificent brain, we
can overcome the difficulties and we are able to finish it in time. Also there are times that
Keith is not able to attend some time when we work together because he was ill and
cannot make it to our place. So the work was a little bit delayed.
We try to search free hosting website so that we can upload our work there. At first, we
found that we can pay them every month so that we can upload our website. We thought
we want to pay for it for 2 months but the rules said that we need to rent it for minimum
12 months. After read that rules, our spirit is down for a moment but there is a free
hosting website so we still able to upload our website. Thanks God!!
We found many problems when we do the coding because the language is very new for
me and we need to learn the language from the website that is provide a lesson for this
language. There are many challenging situation that we need to think hard to get the logic
so we can get what we want in the coding.
The lesson that I have learned from making this system is that teamwork is much needed
when we have to create a group project because without teamwork, it will never be done
in time. Thank you for Thomas and Keith that we have been working together for this
project.
173
Critical Appraisal by: Keith ishan Fernandez 018800004402
I feel excited when I have to do this project because I and my teammate choose to create
an online system. I really want to do online system from before I go to college because it
looks interesting and fun to do it. We start to do the project and Thomas also starts to
split the work among us. With Thomas capability for leadership in the team, we are able
to do our job but because my health is not in the good condition, sometimes I cannot
attend when we have to gather to think about how the system works and so on.
When we choose to use PHP.net and MySQL to create the system, I a little bit worry
because we need to learn a whole new programming language with very little time. I
worry that time will not be enough for us to do the project but in the end, I am very
relieved that the project is finished in time. That is all thanks to teamwork that we have
been through.
The most important thing in the project that we have to develop in groups is that we have
to have a good leader that can manage the whole team so that all of us are able to work
together so the work will finish faster and more efficient.
174
Critical appraisal by Thomas Setiabudi (018800004137)
Thanks God that our team is able to finish this project. It is a very satisfying feeling to
know that finally we can finish this project. Back then, early term 2 2008, when we start
the C2006 module, I do not have any idea about what system that I should make for this
module. Then, after my group has been formed, we, David, Keith, and I discussed about
what system we should make. We start with a passion and confusion because we
suggested some idea to our project lecturer, Ms. Mullai (Second term lecturer is Mr.
Pala), and she keep saying that our system idea is just too simple, we just don’t know
what we should do that time.
The second week, David come out with an idea about making a system for an event
organizer. This idea comes from his real life friends who set up an event organizing
company. I am interested in this idea and we start to discuss more about this system. The
idea of developing a system for event organizer is very interesting as I think that there is
not many similar projects like this out there.
After we decide that we will make this project as an online system, the next thing that we
need to decide is what programming language we want to use. Luckily, we can make a
fast decision about this matter. We decide to use PHP and use MySql for the database
because I have tried to use PHP and it is quite easy to use. The next thing that I want to
do is to put our project in the Internet, so I searched some free web-hosting website and
we found the host that we use for our project now, www.ueuo.com, it is free and only
have a small number of advertisement.
The process of doing this project is sometimes very stressful and not always runs
smoothly, but we able to keep our commitment and focus to finish this project. My main
part in this project is to do the programming part of the system. It is very challenging to
learn the programming language by myself, but luckily we have learn about javascript,
html, css, and sql in our diploma, so I just need to focus in studying the PHP. There are
some hard times when I just run out of ideas to make some of the system’s process but
luckily David is a very good friend to discuss with. He give me many input and
inspiration about the programming concept of the system so I able to figure out how to do
all the system’s function. The color theme of the website is another thing, I was not so
good about color taste but David also help me to choose the light blue color that
amazingly looks nice for our website.
In conclusion, we have learned many things by the time we finish this two-term project.
We have learn that team work is not always runs smooth, human management,
commitment, and time management is some very important skill that we need to have in
order to survive a long run team project like this. For myself, I have a completely new
experience by learning a new programming language by self-study. Finally, I want to say
that I will never forget my experience in doing this project, my team, and all the pressure
and satisfaction feeling that I get during the project.
175
5. Program Listing (Source Code)
Customer.php
<?php session_start();
if ($_SESSION[status]!="customer")
{
header("location:login.php");
}
else
{
?>
<html>
<head>
<LINK rel="stylesheet" type="text/css" href="config/eowebstyle.css">
<title>Clover Company Site</title>
</head>
<body background="images/elements1.jpg">
<?php include "config/connection.php"; ?>
<div align="center" id="general">
<table width="800" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
<tr>
<?php include "header.php"; ?>
<tr>
<td width="200" valign="top">
<?php include "left_pane.php"; ?>
</td>
<td width="600" valign="top">
<table width="600" border="0" cellspacing="10" cellpadding="0">
<?php
if($_GET[info] == "success")
{
echo"
<tr>
<td colspan='2' align='center'><font
color='green'><b><u></u>Payment process success, please wait maximum of 2 working
days for payment status update.</b></font></td>
</tr>
";
}
elseif($_GET[info] == "dateexist")
{
echo"
<tr>
<td colspan='2' align='center'><font color='red'><b>Order
fail, date already booked</b></font></td>
176
</tr>
";
}
elseif($_GET[info] == "profilesuccess")
{
echo"
<tr>
<td colspan='2' align='center'><font
color='green'><b>Profile Updated Successfully</b></font></td>
</tr>
";
}
elseif($_GET[info] == "ordersuccess")
{
echo"
<tr>
<td colspan='2' align='center'><font
color='green'><b>Your order has been added to database</b></font></td>
</tr>
";
}
else
{
echo" ";
}
?>
<tr>
<td colspan="2">
Welcome <?php echo "<b>$_SESSION[username],</b>"; ?>
<br>This is your <b><font color="blue">Customer
Page</font></b>,
<br>you can click on the modules below to do the corresponding
function:
</td>
</tr>
<tr>
<td align="center">
<table border="0" cellspacing="0" cellpadding="15">
<tr>
<td>
<table>
<tr>
<td align="center"
width="90" height="20" class="modul"><a style="color:white" class="module"
href="profile_cust.php">Profile</a></td>
</tr>
177
</table>
</td>
<td>
<table>
<tr>
<td align="center"
width="90" height="20" class="modul"><a style="color:white" class="module"
href="order_form.php?step=1">Make Order</a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td align="center"
width="90" height="20" class="modul"><a style="color:white" class="module"
href="cust_order_status.php">Order Status</td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td align="center"
width="90" height="20" class="modul"><a style="color:white" class="module"
href="payment.php?">Payment</a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td align="center"
width="90" height="20" class="modul"><a style="color:white" class="module"
href="feedback.php">Feedback</a></td>
</tr>
</table>
</td>
<td>
<table>
<tr>
178
<td align="center"
width="90" height="20" class="modul"><a style="color:white" class="module"
href="customer_guide.php">User guide</a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<table>
<tr>
<td align="center"
width="50" height="20" class="modul"><a style="color:white" class="module"
href="logout.php">Logout</a></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<?php include "footer.php"; ?>
</tr>
</table>
</div>
</body>
</html>
<?php } ?>
Profile_cust.php
<?php session_start();
if ($_SESSION[status]!="customer")
{
header("location:login.php?mode=customer");
}
else
{
?>
<html>
<head>
<LINK rel="stylesheet" type="text/css" href="config/eowebstyle.css">
<title>Clover Company Site</title>
179
<SCRIPT LANGUAGE="JavaScript" src="config/validate_date.js"></script>
</head>
<body background="images/elements1.jpg">
<?php include "config/connection.php";?>
<div align="center" id="general">
<table width="800" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
<tr>
<?php include "header.php"; ?>
<tr>
<td width="200" valign="top">
<?php include "left_pane.php"; ?>
</td>
<td width="600" valign="top">
<form action="cust_prof_process.php" method="post" name="reg_form">
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3">
<center>YOUR PROFILE
<?php if ($_GET[stat]=="empty")
{
echo "<br><font color='red'>Please
fill all the fields</font>";
}
elseif ($_GET[stat]=="none")
{
echo "<br>";
}
else
{
echo "<br>";
}
?>
<?php
$sql = mysql_query ("SELECT *
FROM
customer
WHERE
name = '$_SESSION[username]'");
$userdata = mysql_fetch_array ($sql);
?></center><br><br>
</td>
</tr>
<tr>
<td>Name</td>
<td>:</td>
180
<td><b><?php echo"$userdata[name]"; ?></b></td>
</tr>
<tr>
<td>Gender</td>
<td>:</td>
<td><select name="gender">
<?php
if($userdata[gender]=="M")
{
echo "
<option value='M' selected>Male</option>
<option value='F'>Female</option>";
}
else
{
echo "
<option value='M'>Male</option>
<option value='F' selected>Female</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>date of birth (yyyy-mm-dd)</td>
<td>:</td>
<td><input name="date" type="text" size="10" maxlength="10" value=<?php
echo"$userdata[date_of_birth]"; ?>> </td>
</tr>
<tr>
<td>e-mail address</td>
<td>:</td>
<td><input name="e_mail" type="text" value=<?php echo"$userdata[e_mail]";
?>></td>
</tr>
<tr>
<td>IC / Passport number</td>
<td>:</td>
<td><input name="ic_passport" type="text" value=<?php
echo"$userdata[ic_passport]"; ?>></td>
</tr>
<tr>
<td>Phone number</td>
<td>:</td>
<td><input name="phone" type="text" value=<?php echo"$userdata[phone]";
?>></td>
181
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="password" type="password" value=<?php
echo"$userdata[password]"; ?>></td>
</tr>
<tr>
<td>Confirm Password</td>
<td>:</td>
<td><input name="password_c" type="password" value=<?php
echo"$userdata[password]"; ?>></td>
</tr>
<tr>
<td colspan="3" align="center">
<br><br>
<input name="submit" type="submit" value="save changes" onclick="return
checkRegister2()"> <input name="back" type="button" value="back"
OnClick="javascript:history.go(-1)">
</td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<?php include "footer.php"; ?>
</tr>
</table>
</div>
</body>
</html>
<?php } ?>
Cust_prof_process.php
<?php
session_start();
if ($_SESSION[status]!="customer")
{
header("location:login.php?mode=customer");
}
else
{
if($_POST[gender]=="" || $_POST[date]=="" || $_POST[e_mail]==""||
$_POST[ic_passport]=="" || $_POST[phone]=="" || $_POST[password]=="")
{
182
header("location:profile_cust.php?stat=empty");
}
else
{
include "config/connection.php";
header("location:customer.php?info=profilesuccess");
}
}
?>
Order_detail_cust.php
<?php session_start();
if ($_SESSION[status]!="customer")
{
header("location:login.php");
}
else
{
?>
<html>
<head>
<LINK rel="stylesheet" type="text/css" href="config/eowebstyle.css">
<title>Clover Company Site</title>
</head>
<body background="images/elements1.jpg">
<?php include "config/connection.php";?>
<div align="center" id="general">
183
<table width="800" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
<tr>
<?php include "header.php"; ?>
<tr>
<td width="200" valign="top">
<?php include "left_pane.php"; ?>
</td>
<td width="600" valign="top">
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3"><center>Order Detail</center><br><br></td>
</tr>
<?php
$sql = mysql_query("SELECT * FROM `order` WHERE
`order_id` = '$_GET[id]'");
$order = mysql_fetch_array($sql);
$sql2 = mysql_query("SELECT `affiliate`.`name`,
`affiliate`.`address`
FROM
`schedule_distribution`, `affiliate`
WHERE
`schedule_distribution`.`affiliate_id` = `affiliate`.`affiliate_id`
AND
`schedule_distribution`.`order_id` = '$_GET[id]'
AND `affiliate`.`service` =
'venue'");
$venue = mysql_fetch_array($sql2);
$sql3 = mysql_query("SELECT * FROM `customer` WHERE
`customer_id` = '$order[customer_id]'");
$customer = mysql_fetch_array($sql3);
$sql4 = mysql_query("SELECT * FROM `event` WHERE `event`
= '$order[event]'");
$event = mysql_fetch_array($sql4);
$sql5 = mysql_query("SELECT `affiliate`.`name`,
`affiliate`.`service`, `schedule_distribution`.`confirmation`
FROM `affiliate`,
`schedule_distribution`
WHERE
`affiliate`.`affiliate_id` = `schedule_distribution`.`affiliate_id` AND
`schedule_distribution`.`order_id` = '$order[order_id]'
");
?>
<tr>
<td align="left"><b>Order Id</b></td>
<td>:</td>
<td align="left"><?php echo"$order[order_id]" ?></td>
184
</tr>
<tr>
<td align="left"><b>Order Made on</b></td>
<td>:</td>
<td align="left"><?php echo"$order[date]" ?></td>
</tr>
<tr>
<td align="left"><b>Customer Name / id</b></td>
<td>:</td>
<td align="left"><?php echo"$customer[name] / $customer[customer_id]"
?></td>
</tr>
<tr>
<td colspan="3"><hr></td>
</tr>
<tr>
<td align="left"><b>Event Package</b></td>
<td>:</td>
<td align="left"><?php echo"$order[event]" ?></td>
</tr>
<tr>
<td align="left"><b>Package Description</b></td>
<td>:</td>
<td align="left"><?php echo"$event[description]" ?></td>
</tr>
<tr>
<td align="left"><b>Event Date</b></td>
<td>:</td>
<td align="left"><?php echo"$order[event_date]" ?></td>
</tr>
<tr>
<td align="left"><b>Event Time</b></td>
<td>:</td>
<td align="left"><?php echo"$order[event_time]" ?></td>
</tr>
<tr>
<td align="left"><b>Venue</b></td>
<td>:</td>
<td align="left"><?php echo"$venue[name]" ?></td>
</tr>
<tr>
<td align="left"><b>Venue Address</b></td>
<td>:</td>
<td align="left"><?php echo"$venue[address]" ?></td>
</tr>
<tr>
185
<td colspan="3"><hr></td>
</tr>
<tr>
<td align="left"><b>Service Price</b></td>
<td>:</td>
<td align="left"><?php echo"$event[price]" ?></td>
</tr>
<tr>
<td align="left"><b>Payment Mode</b></td>
<td>:</td>
<td align="left"><?php echo"$order[pay_mode]" ?></td>
</tr>
<tr>
<td align="left"><b>Payment Status</b></td>
<td>:</td>
<td align="left"><?php echo"$order[pay_status]" ?></td>
</tr>
<tr>
<td colspan="3"><hr></td>
</tr>
<tr>
<td colspan="3"><b><u>Affiliate Company / Vendor Information</u></b></td>
</tr>
<?php
while($affiliate = mysql_fetch_array($sql5))
{
echo "
<tr>
<td align='left'><b>$affiliate[service]
vendor</b></td>
<td>:</td>
<td>$affiliate[name]</td>
</tr>
<tr>
<td align='left'><b>Status</b></td>
<td>:</td>
<td>$affiliate[confirmation]</td>
</tr>
<tr>
<td colspan='3' align='center'> </td>
</tr>
";
}
?>
<tr>
<td colspan="3"><hr></td>
186
</tr>
<tr>
<td colspan="3"><b>Additional Note From Customer</b></td>
</tr>
<tr>
<td colspan="3"><?php echo"$order[additional_info]";?><br><br></td>
</tr>
<tr>
<td colspan="3" align="center">
<a href="javascript:window.print();">Print</a> - <a
href="javascript:history.go(-1);">Back</a>
<br><br>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<?php include "footer.php"; ?>
</tr>
</table>
</div>
</body>
</html>
<?php
}
?>
Feedback.php
<?php session_start();
if ($_SESSION[status]!="customer" && $_SESSION[status]!="affiliate")
{
header("location:login.php");
}
else
{
?>
<html>
<head>
<LINK rel="stylesheet" type="text/css" href="config/eowebstyle.css">
<SCRIPT LANGUAGE="JavaScript" src="config/validate_date.js"></script>
<title>Clover Company Site</title>
</head>
<body background="images/elements1.jpg">
<?php include "config/connection.php";?>
<div align="center" id="general">
187
<table width="800" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
<tr>
<?php include "header.php"; ?>
<tr>
<td width="200" valign="top">
<?php include "left_pane.php"; ?>
</td>
<td width="600" valign="top">
<form action="feedback_process.php" name="feedback_form" method="post">
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" colspan="3"><b><h2>Feedback
Form</h2></b></td>
</tr>
<tr>
<td>Title</td>
<td>:</td>
<td><input name="title" type="text" size="30"></td>
</tr>
<tr>
<td colspan="3">Write Your Feedback in the box below then click
"send feedback"</td>
</tr>
<tr>
<td colspan="3"><textarea name="feedback" cols="60"
rows="10"></textarea></td>
</tr>
<tr>
<td colspan="3" align="center">
<input type="submit" name="submit" value="send
feedback" onclick="return checkFeedback()">
<input type="button" onclick="javascript:history.go(-1)"
value="cancel">
</td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<?php include "footer.php"; ?>
</tr>
</table>
</div>
</body>
</html>
188
<?php
}
?>
Admin.php
<?php session_start();
if ($_SESSION[status]!="admin")
{
header("location:login.php?mode=admin");
}
else
{
?>
<html>
<head>
<LINK rel="stylesheet" type="text/css" href="config/eowebstyle.css">
<title>Clover Company Site</title>
</head>
<body background="images/elements1.jpg">
<?php include "config/connection.php"; ?>
<div align="center" id="general">
<table width="800" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
<tr>
<?php include "header.php"; ?>
<tr>
<td width="200" valign="top">
<?php include "left_pane.php"; ?>
</td>
<td width="600" valign="top">
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2">
Welcome <?php echo "<b>$_SESSION[username],</b>";
?>
<br>This is your <b><font color="blue">Administrator
Page</font></b>,
<br>you can click on the modules below to do the
corresponding function:
</td>
</tr>
<tr>
<td align="center">
<table border="0" cellspacing="0" cellpadding="15">
<tr>
<td>
189
<table>
<tr>
<td align="center"
width="90" height="20" class="modul"><a style="color:white" class="module"
href="report_generator_ad.php">Reports</a></td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td align="center"
width="90" height="20" class="modul"><a style="color:white" class="module"
href="manage_order_ad.php">Manage Order</a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td align="center"
width="90" height="20" class="modul"><a style="color:white" class="module"
href="cust_aff.php?mode=customer">Customer & Affiliate</a></td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td align="center"
width="90" height="34" class="modul"><a style="color:white" class="module"
href="manage_news_ad.php">Manage News</a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td align="center"
width="90" height="20" class="modul"><a style="color:white" class="module"
href="manage_payment_ad.php">Manage Payment</a></td>
</tr>
190
</table>
</td>
<td>
<table>
<tr>
<td align="center"
width="90" height="34" class="modul"><a style="color:white" class="module"
href="admin_guide.php">User Guide</a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<table>
<tr>
<td align="center"
width="50" height="20" class="modul"><a style="color:white" class="module"
href="logout.php">Logout</a></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<?php include "footer.php"; ?>
</tr>
</table>
</div>
</body>
</html>
<?php
}
?>
Report_generator_ad.php
<?php session_start();
if ($_SESSION[status]!="admin")
{
header("location:login.php?mode=admin");
}
191
else
{
?>
<html>
<head>
<LINK rel="stylesheet" type="text/css" href="config/eowebstyle.css">
<title>Clover Company Site</title>
</head>
<body background="images/elements1.jpg">
<?php include "config/connection.php";?>
<div align="center" id="general">
<table width="800" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
<tr>
<?php include "header.php"; ?>
<tr>
<td width="200" valign="top">
<?php include "left_pane.php"; ?>
</td>
<td width="600" valign="top">
<table width="600" border="0" cellspacing="0" cellpadding="0">
<?php
if($_GET[module] == "select" || $_GET[module] == "")
{
echo"
<tr>
<td><center><b>REPORT
SELECTOR</b></center><br><br></td>
</tr>
<tr>
<td>
<form action='?module=report'
method='post'>
<table width='600' border='0' cellspacing='0'
cellpadding='0'>
<tr>
<td align='center'>Select
Report Type:<br><br></td>
</tr>
<tr>
<td align='center'>
<select name='type'>
<option
value='order_all'>All Order</option>
<option
value='order_active'>Active Order</option>
192
<option
value='order_inactive'>Inactive Order</option>
<option
value='event_frequency'>Favourite Event Package</option>
<option
value='affiliate_frequency'>Favourite Affiliate Company</option>
<option
value='customer_order'>Customer & Order</option>
<option
value='payment_all'>All Payment</option>
<option
value='payment_thismonth'>Current Month Income</option>
<option
value='payment_last3months'>Income from last three months</option>
<option
value='payment_receivable'>Expected Income</option>
</select><br><br>
</td>
</tr>
<tr>
<td align='center'><input
type='submit' name='submit' value='View Report'></td>
</tr>
</table>
</form>
</td>
</tr>
";
}
elseif($_GET[module] == "report" && $_POST[type] ==
"order_all")
{
echo"
<tr>
<td align='center'>
<b>All Order Report</b>
</td>
</tr>
<tr>
<td>
";
$sql = mysql_query("SELECT *
FROM `order`
");
while($order_data = mysql_fetch_array($sql))
{ echo"
193
<br>
<table width='600' border='1' cellspacing='0'
cellpadding='0'>
<tr>
<th bgcolor='yellow'>Order id</th>
<th bgcolor='yellow'>Event
package</th>
<th bgcolor='yellow'>Event
date</th>
<th bgcolor='yellow'>Time</th>
<th bgcolor='yellow'>Payment
mode</th>
<th bgcolor='yellow'>Payment
status</th>
<th bgcolor='yellow'>Action</th>
</tr>
<tr>
<td>$order_data[order_id]</td>
<td>$order_data[event]</td>
<td>$order_data[event_date]</td>
<td>$order_data[event_time]</td>
<td>$order_data[pay_mode]</td>
<td>$order_data[pay_status]</td>
<td><a
href='order_detail_ad.php?id=$order_data[order_id]'>Detail</a></td>
</tr>
<tr>
<th colspan='3'
bgcolor='#91b9fc'>Vendor name</th>
<th bgcolor='#91b9fc'>Service</th>
<th colspan='3'
bgcolor='#91b9fc'>Status</th>
</tr>
";
194
<tr>
<td colspan='3'
align='center'>$vendor_data[name]</td>
<td>$vendor_data[service]</td>
<td
colspan='3'>$vendor_data[confirmation]</td>
</tr>
";
}
echo"
</table>
";
}
echo"
</td>
</tr>
<tr>
<td align='center'>
<br><br><a
href='javascript:window.print()'>Print This Report</a> -
<a
href='report_generator_ad.php?module=select'>Back</a>
</td>
</tr>
";
}
elseif($_GET[module] == "report" && $_POST[type] ==
"order_active")
{
echo"
<tr>
<td align='center'>
<b>Active Order Report</b>
</td>
</tr>
<tr>
<td>
";
$today = date("Y/m/d");
$sql = mysql_query("SELECT *
FROM `order`
WHERE `event_date`> '$today'
");
while($order_data = mysql_fetch_array($sql))
{ echo"
<br>
195
<table width='600' border='1' cellspacing='0'
cellpadding='0'>
<tr>
<th bgcolor='yellow'>Order id</th>
<th bgcolor='yellow'>Event
package</th>
<th bgcolor='yellow'>Event
date</th>
<th bgcolor='yellow'>Time</th>
<th bgcolor='yellow'>Payment
mode</th>
<th bgcolor='yellow'>Payment
status</th>
<th bgcolor='yellow'>Action</th>
</tr>
<tr>
<td>$order_data[order_id]</td>
<td>$order_data[event]</td>
<td>$order_data[event_date]</td>
<td>$order_data[event_time]</td>
<td>$order_data[pay_mode]</td>
<td>$order_data[pay_status]</td>
<td><a
href='order_detail_ad.php?id=$order_data[order_id]'>Detail</a></td>
</tr>
<tr>
<th colspan='3'
bgcolor='#91b9fc'>Vendor name</th>
<th bgcolor='#91b9fc'>Service</th>
<th colspan='3'
bgcolor='#91b9fc'>Status</th>
</tr>
";
196
<td colspan='3'
align='center'>$vendor_data[name]</td>
<td>$vendor_data[service]</td>
<td
colspan='3'>$vendor_data[confirmation]</td>
</tr>
";
}
echo"
</table>
";
}
echo"
</td>
</tr>
<tr>
<td align='center'>
<br><br><a
href='javascript:window.print()'>Print This Report</a> -
<a
href='report_generator_ad.php?module=select'>Back</a>
</td>
</tr>
";
}
elseif($_GET[module] == "report" && $_POST[type] ==
"order_inactive")
{
echo"
<tr>
<td align='center'>
<b>Inactive Order Report</b>
</td>
</tr>
<tr>
<td>
";
$today = date("Y/m/d");
$sql = mysql_query("SELECT *
FROM `order`
WHERE `event_date`< '$today'
");
while($order_data = mysql_fetch_array($sql))
{ echo"
<br>
197
<table width='600' border='1' cellspacing='0'
cellpadding='0'>
<tr>
<th bgcolor='yellow'>Order id</th>
<th bgcolor='yellow'>Event
package</th>
<th bgcolor='yellow'>Event
date</th>
<th bgcolor='yellow'>Time</th>
<th bgcolor='yellow'>Payment
mode</th>
<th bgcolor='yellow'>Payment
status</th>
<th bgcolor='yellow'>Action</th>
</tr>
<tr>
<td>$order_data[order_id]</td>
<td>$order_data[event]</td>
<td>$order_data[event_date]</td>
<td>$order_data[event_time]</td>
<td>$order_data[pay_mode]</td>
<td>$order_data[pay_status]</td>
<td><a
href='order_detail_ad.php?id=$order_data[order_id]'>Detail</a></td>
</tr>
<tr>
<th colspan='3'
bgcolor='#91b9fc'>Vendor name</th>
<th bgcolor='#91b9fc'>Service</th>
<th colspan='3'
bgcolor='#91b9fc'>Status</th>
</tr>
";
198
<td colspan='3'
align='center'>$vendor_data[name]</td>
<td>$vendor_data[service]</td>
<td
colspan='3'>$vendor_data[confirmation]</td>
</tr>
";
}
echo"
</table>
";
}
echo"
</td>
</tr>
<tr>
<td align='center'>
<br><br><a
href='javascript:window.print()'>Print This Report</a> -
<a
href='report_generator_ad.php?module=select'>Back</a>
</td>
</tr>
";
}
elseif($_GET[module] == "report" && $_POST[type] ==
"event_frequency")
{
echo"
<tr>
<td align='center'>
<b>Event Package Order Frequency
Report</b>
</td>
</tr>
<tr>
<td>
<br>
<table width='600' border='1' cellspacing='0'
cellpadding='0'>
<tr>
<th bgcolor='#91b9fc'
align='center'>Event Package</th>
<th bgcolor='#91b9fc'
align='center'>Frequency Ordered</th>
</tr>
199
";
$sql = mysql_query("SELECT `event`.`event`, Count(*)
AS Frequency
FROM `event`,
`order`
WHERE
`event`.`event` = `order`.`event`
GROUP BY
`event`.`event`
ORDER BY
Count(*)");
while($data = mysql_fetch_array($sql))
{
echo"
<tr>
<td align='center'>$data[event]</td>
<td
align='center'>$data[Frequency]</td>
</tr>
";
}
echo"
</table>
</td>
</tr>
<tr>
<td align='center'>
<br><br><a
href='javascript:window.print()'>Print This Report</a> -
<a
href='report_generator_ad.php?module=select'>Back</a>
</td>
</tr>
";
}
elseif($_GET[module] == "report" && $_POST[type] ==
"affiliate_frequency")
{
echo"
<tr>
<td align='center'>
<b>Favourite Affiliate Company
Report</b>
</td>
</tr>
<tr>
200
<td>
<br>
<table width='600' border='1' cellspacing='0'
cellpadding='0'>
<tr>
<th bgcolor='#91b9fc'
align='center'>Id</th>
<th bgcolor='#91b9fc'
align='center'>Name</th>
<th bgcolor='#91b9fc'
align='center'>Service</th>
<th bgcolor='#91b9fc'
align='center'>Total order</th>
</tr>
";
$sql = mysql_query("SELECT `affiliate`.`affiliate_id` ,
`affiliate`.`name` , `affiliate`.`service` , Count( * ) AS Frequency
FROM `affiliate` ,
`schedule_distribution`
WHERE
`affiliate`.`affiliate_id` = `schedule_distribution`.`affiliate_id`
GROUP BY
`affiliate`.`name`
ORDER BY Count( *
) DESC");
while($data = mysql_fetch_array($sql))
{
echo"
<tr>
<td
align='center'>$data[affiliate_id]</td>
<td align='center'>$data[name]</td>
<td
align='center'>$data[service]</td>
<td
align='center'>$data[Frequency]</td>
</tr>
";
}
echo"
</table>
</td>
</tr>
<tr>
<td align='center'>
201
<br><br><a
href='javascript:window.print()'>Print This Report</a> -
<a
href='report_generator_ad.php?module=select'>Back</a>
</td>
</tr>
";
}
elseif($_GET[module] == "report" && $_POST[type] ==
"customer_order")
{
echo"
<tr>
<td align='center'>
<b>Customer & Order Report</b>
</td>
</tr>
<tr>
<td>
";
$sql = mysql_query("SELECT * FROM `customer`");
while($data = mysql_fetch_array($sql))
{
echo"
<br>
<table width='600' border='1' cellspacing='0'
cellpadding='0'>
<tr>
<th bgcolor='#91b9fc'
align='center'>Id</th>
<th bgcolor='#91b9fc'
align='center' colspan='2'>Name</th>
<th bgcolor='#91b9fc'
align='center' colspan='2'>E-mail</th>
<th bgcolor='#91b9fc'
align='center' colspan='2'>Phone</th>
</tr>
<tr>
<td
align='center'>$data[customer_id]</td>
<td align='center'
colspan='2'>$data[name]</td>
<td align='center'
colspan='2'>$data[e_mail]</td>
<td align='center'
colspan='2'>$data[phone]</td>
202
</tr>
<tr>
<th bgcolor='#91b9fc'
align='center'>Order_id</th>
<th bgcolor='#91b9fc'
align='center'>Date</th>
<th bgcolor='#91b9fc'
align='center'>Event</th>
<th bgcolor='#91b9fc'
align='center'>Event date</th>
<th bgcolor='#91b9fc'
align='center'>Time</th>
<th bgcolor='#91b9fc'
align='center'>Pay mode</th>
<th bgcolor='#91b9fc'
align='center'>Status</th>
</tr>
";
$sql2 = mysql_query("SELECT * FROM `order`
WHERE `customer_id` = '$data[customer_id]'");
while($data2 = mysql_fetch_array ($sql2))
{
echo"
<tr>
<td
align='center'>$data2[order_id]</td>
<td
align='center'>$data2[date]</td>
<td
align='center'>$data2[event]</td>
<td
align='center'>$data2[event_date]</td>
<td
align='center'>$data2[event_time]</td>
<td
align='center'>$data2[pay_mode]</td>
<td
align='center'>$data2[pay_status]</td>
</tr>
";
}
$sql3 = mysql_query("SELECT Count(*) AS Total
FROM `order` WHERE `customer_id`='$data[customer_id]'");
$data3 = mysql_fetch_array($sql3);
echo"
<tr>
203
<td align='center'
colspan='5'>Total no. of order</td>
<td align='center'
colspan='2'>$data3[Total]</td>
</tr>
</table>
";
}
echo"
</td>
</tr>
<tr>
<td align='center'>
<br><br><a
href='javascript:window.print()'>Print This Report</a> -
<a
href='report_generator_ad.php?module=select'>Back</a>
</td>
</tr>
";
}
elseif($_GET[module] == "report" && $_POST[type] ==
"payment_all")
{
echo"
<tr>
<td align='center'>
<b>All Payment Report</b>
</td>
</tr>
<tr>
<td>
<br>
<table width='600' border='1' cellspacing='0'
cellpadding='0'>
<tr>
<th bgcolor='#91b9fc'
align='center'>Id</th>
<th bgcolor='#91b9fc'
align='center'>Order id</th>
<th bgcolor='#91b9fc'
align='center'>Date</th>
<th bgcolor='#91b9fc'
align='center'>Amount</th>
<th bgcolor='#91b9fc'
align='center'>Remain</th>
204
</tr>
";
$sql = mysql_query("SELECT * FROM `payment`");
while($data = mysql_fetch_array($sql))
{
echo"
<tr>
<td
align='center'>$data[payment_id]</td>
<td
align='center'>$data[order_id]</td>
<td align='center'>$data[date]</td>
<td
align='center'>$data[amount]</td>
<td
align='center'>$data[remain]</td>
</tr>
";
}
echo"
</table>
</td>
</tr>
<tr>
<td align='center'>
<br><br><a
href='javascript:window.print()'>Print This Report</a> -
<a
href='report_generator_ad.php?module=select'>Back</a>
</td>
</tr>
";
}
elseif($_GET[module] == "report" && $_POST[type] ==
"payment_thismonth")
{
echo"
<tr>
<td align='center'>
<b>Current Month Income Report</b>
</td>
</tr>
<tr>
<td>
<br>
205
<table width='600' border='1' cellspacing='0'
cellpadding='0'>
<tr>
<th bgcolor='#91b9fc'
align='center'>Id</th>
<th bgcolor='#91b9fc'
align='center'>Order id</th>
<th bgcolor='#91b9fc'
align='center'>Date</th>
<th bgcolor='#91b9fc'
align='center'>Amount</th>
<th bgcolor='#91b9fc'
align='center'>Remain</th>
</tr>
";
$year = date("Y");
$month = date("m");
$sql = mysql_query("SELECT * FROM `payment`
WHERE Year(`date`) = '$year' AND Month(`date`) = '$month' ");
while($data = mysql_fetch_array($sql))
{
echo"
<tr>
<td
align='center'>$data[payment_id]</td>
<td
align='center'>$data[order_id]</td>
<td align='center'>$data[date]</td>
<td
align='center'>$data[amount]</td>
<td
align='center'>$data[remain]</td>
</tr>
";
}
echo"
</table>
</td>
</tr>
<tr>
<td align='center'>
<br><br><a
href='javascript:window.print()'>Print This Report</a> -
<a
href='report_generator_ad.php?module=select'>Back</a>
</td>
206
</tr>
";
}
elseif($_GET[module] == "report" && $_POST[type] ==
"payment_last3months")
{
echo"
<tr>
<td align='center'>
<b>Last 3 Months Income Report</b>
</td>
</tr>
<tr>
<td>
<br>
<table width='600' border='1' cellspacing='0'
cellpadding='0'>
<tr>
<th bgcolor='#91b9fc'
align='center'>Id</th>
<th bgcolor='#91b9fc'
align='center'>Order id</th>
<th bgcolor='#91b9fc'
align='center'>Date</th>
<th bgcolor='#91b9fc'
align='center'>Amount</th>
<th bgcolor='#91b9fc'
align='center'>Remain</th>
</tr>
";
$year = date("Y");
$month = date("m");
$pmonth = $month - 3;
$sql = mysql_query("SELECT * FROM `payment`
WHERE Year(`date`) = '$year' AND Month(`date`) BETWEEN '$pmonth' AND '$month'
");
while($data = mysql_fetch_array($sql))
{
echo"
<tr>
<td
align='center'>$data[payment_id]</td>
<td
align='center'>$data[order_id]</td>
<td align='center'>$data[date]</td>
207
<td
align='center'>$data[amount]</td>
<td
align='center'>$data[remain]</td>
</tr>
";
}
echo"
</table>
</td>
</tr>
<tr>
<td align='center'>
<br><br><a
href='javascript:window.print()'>Print This Report</a> -
<a
href='report_generator_ad.php?module=select'>Back</a>
</td>
</tr>
";
}
elseif($_GET[module] == "report" && $_POST[type] ==
"payment_receivable")
{
echo"
<tr>
<td align='center'>
<b>Expected Income Report</b>
</td>
</tr>
<tr>
<td>
<br>
<table width='600' border='1' cellspacing='0'
cellpadding='0'>
<tr>
<th bgcolor='#91b9fc'
align='center'>Order id</th>
<th bgcolor='#91b9fc'
align='center'>Date</th>
<th bgcolor='#91b9fc'
align='center'>Event</th>
<th bgcolor='#91b9fc'
align='center'>Event date</th>
<th bgcolor='#91b9fc'
align='center'>pay_mode</th>
208
<th bgcolor='#91b9fc'
align='center'>Price</th>
<th bgcolor='#91b9fc'
align='center'>Payable</th>
</tr>
";
$total = 0;
$sql = mysql_query("SELECT *
FROM `order`
WHERE `pay_status`
= 'unpaid' OR `pay_status` = 'half'
");
while($data = mysql_fetch_array($sql))
{
echo"
<tr>
<td
align='center'>$data[order_id]</td>
<td align='center'>$data[date]</td>
<td align='center'>$data[event]</td>
<td
align='center'>$data[event_date]</td>
<td
align='center'>$data[pay_mode]</td>
";
if($data[pay_mode] == "half")
{
$divide = 2;
}
else
{
$divide = 1;
}
$sql2 = mysql_query ("SELECT `price`,
`price`/$divide AS Payable FROM `event` WHERE `event` = '$data[event]'");
$data2 = mysql_fetch_array($sql2);
echo"
<td
align='center'>$data2[price]</td>
<td
align='center'>$data2[Payable]</td>
</tr>
";
$total = $total + $data2[Payable];
}
echo"
209
<tr>
<td bgcolor='#91b9fc' align='center'
colspan='5'>Total</td>
<td bgcolor='#91b9fc' align='center'
colspan='2'>SGD $total</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align='center'>
<br><br><a
href='javascript:window.print()'>Print This Report</a> -
<a
href='report_generator_ad.php?module=select'>Back</a>
</td>
</tr>
";
}
?>
</table>
</td>
</tr>
<tr>
<?php include "footer.php"; ?>
</tr>
</table>
</div>
</body>
</html>
<?php
}
?>
Edit_order_process_ad.php
<?php session_start();
if ($_SESSION[status]!="admin")
{
header("location:login.php?mode=admin");
}
else
{
include "config/connection.php";
210
$order_ori = mysql_fetch_array($esql);
$sql2 = mysql_query("SELECT * FROM `schedule` WHERE `date` =
'$_POST[date]' AND `date` NOT IN('$order_ori[event_date]')");
$sched_exist = mysql_num_rows($sql2);
if($sched_exist >= 1)
{
header("location:admin.php?info=fail");
}
else
{
if($order_ori[event_date] == $_POST[date])
{
$sched_id = $order_ori[schedule_id];
}
else
{
$add_sched = mysql_query("INSERT INTO `schedule` (`date`)
VALUES ('$_POST[date]')");
$get_sched = mysql_query("SELECT * FROM `schedule`
WHERE `date` = '$_POST[date]'");
$sched_data = mysql_fetch_array($get_sched);
$sched_id = $sched_data[schedule_id];
}
$today_date = date("Y/m/d");
211
`pay_status` =
'$_POST[pay_status]'
WHERE
`order`.`order_id` =$_POST[id]");
if($_POST[venue] != "")
{
$check_aff = mysql_query("SELECT
`schedule_distribution`.`affiliate_id`, `affiliate`.`name`, `affiliate`.`e_mail`
FROM
`schedule_distribution`,`affiliate`
WHERE
`schedule_distribution`.`affiliate_id` = `affiliate`.`affiliate_id`
AND
`schedule_distribution`.`order_id` = '$_POST[id]'
AND
`affiliate`.`service` = 'venue'
");
$affiliate_ori = mysql_fetch_array($check_aff);
if($affiliate_ori[name] == $_POST[venue])
{
$to = $affiliate_ori[e_mail];
mail ($to,$title,$message,$from);
}
else
{
$delete = mysql_query("DELETE FROM
`schedule_distribution`
WHERE
`schedule_distribution`.`order_id` = '$_POST[id]'
AND
`schedule_distribution`.`affiliate_id` = '$affiliate_ori[affiliate_id]'
LIMIT 1
");
$venue_vendor = mysql_query("SELECT * FROM
`affiliate` WHERE `name` = '$_POST[venue]'");
212
$venue_data = mysql_fetch_array($venue_vendor);
$venue_id = $venue_data[affiliate_id];
$sql3 = mysql_query ("INSERT INTO
`schedule_distribution` (`schedule_id`,`affiliate_id`,`order_id`)
VALUES
('$sched_id','$venue_id','$_POST[id]')");
$to = $venue_data[e_mail];
mail ($to,$title,$message,$from);
}
}
if($_POST[food] != "")
{
$check_aff = mysql_query("SELECT
`schedule_distribution`.`affiliate_id`, `affiliate`.`name`, `affiliate`.`e_mail`
FROM
`schedule_distribution`,`affiliate`
WHERE
`schedule_distribution`.`affiliate_id` = `affiliate`.`affiliate_id`
AND
`schedule_distribution`.`order_id` = '$_POST[id]'
AND
`affiliate`.`service` = 'food'");
$affiliate_ori = mysql_fetch_array($check_aff);
if($affiliate_ori[name] == $_POST[food])
{
$to = $affiliate_ori[e_mail];
mail ($to,$title,$message,$from);
}
else
{
$delete = mysql_query("DELETE FROM
`schedule_distribution`
WHERE
`schedule_distribution`.`order_id` = '$_POST[id]'
AND
`schedule_distribution`.`affiliate_id` = '$affiliate_ori[affiliate_id]'
");
$food_vendor = mysql_query("SELECT * FROM
`affiliate` WHERE `name` = '$_POST[food]'");
$food_data = mysql_fetch_array($food_vendor);
$food_id = $food_data[affiliate_id];
$sql4 = mysql_query ("INSERT INTO
`schedule_distribution` (`schedule_id`,`affiliate_id`,`order_id`)
VALUES
('$sched_id','$food_id','$_POST[id]')");
213
$to = $food_data[e_mail];
mail ($to,$title,$message,$from);
}
}
if($_POST[documentation] != "")
{
$check_aff = mysql_query("SELECT
`schedule_distribution`.`affiliate_id`, `affiliate`.`name`, `affiliate`.`e_mail`
FROM
`schedule_distribution`,`affiliate`
WHERE
`schedule_distribution`.`affiliate_id` = `affiliate`.`affiliate_id`
AND
`schedule_distribution`.`order_id` = '$_POST[id]'
AND
`affiliate`.`service` = 'documentation'");
$affiliate_ori = mysql_fetch_array($check_aff);
if($affiliate_ori[name] == $_POST[documentation])
{
$to = $affiliate_ori[e_mail];
mail ($to,$title,$message,$from);
}
else
{
$delete = mysql_query("DELETE FROM
`schedule_distribution`
WHERE
`schedule_distribution`.`order_id` = '$_POST[id]'
AND
`schedule_distribution`.`affiliate_id` = '$affiliate_ori[affiliate_id]'
");
$doc_vendor = mysql_query("SELECT * FROM `affiliate`
WHERE `name` = '$_POST[documentation]'");
$doc_data = mysql_fetch_array($doc_vendor);
$doc_id = $doc_data[affiliate_id];
$sql5 = mysql_query ("INSERT INTO
`schedule_distribution` (`schedule_id`,`affiliate_id`,`order_id`)
VALUES
('$sched_id','$doc_id','$_POST[id]')");
$to = $doc_data[e_mail];
mail ($to,$title,$message,$from);
}
}
if($_POST[publication] != "")
{
214
$check_aff = mysql_query("SELECT
`schedule_distribution`.`affiliate_id`, `affiliate`.`name`, `affiliate`.`e_mail`
FROM
`schedule_distribution`,`affiliate`
WHERE
`schedule_distribution`.`affiliate_id` = `affiliate`.`affiliate_id`
AND
`schedule_distribution`.`order_id` = '$_POST[id]'
AND
`affiliate`.`service` = 'publication'");
$affiliate_ori = mysql_fetch_array($check_aff);
if($affiliate_ori[name] == $_POST[publication])
{
$to = $affiliate_ori[e_mail];
mail ($to,$title,$message,$from);
}
else
{
$delete = mysql_query("DELETE FROM
`schedule_distribution`
WHERE
`schedule_distribution`.`order_id` = '$_POST[id]'
AND
`schedule_distribution`.`affiliate_id` = '$affiliate_ori[affiliate_id]'
");
$pub_vendor = mysql_query("SELECT * FROM `affiliate`
WHERE `name` = '$_POST[publication]'");
$pub_data = mysql_fetch_array($pub_vendor);
$pub_id = $pub_data[affiliate_id];
$sql6 = mysql_query ("INSERT INTO
`schedule_distribution` (`schedule_id`,`affiliate_id`,`order_id`)
VALUES
('$sched_id','$pub_id','$_POST[id]')");
$to = $pub_data[e_mail];
mail ($to,$title,$message,$from);
}
}
if($_POST[entertainment] != "")
{
$check_aff = mysql_query("SELECT
`schedule_distribution`.`affiliate_id`, `affiliate`.`name`, `affiliate`.`e_mail`
FROM
`schedule_distribution`,`affiliate`
WHERE
`schedule_distribution`.`affiliate_id` = `affiliate`.`affiliate_id`
215
AND
`schedule_distribution`.`order_id` = '$_POST[id]'
AND
`affiliate`.`service` = 'entertainment'");
$affiliate_ori = mysql_fetch_array($check_aff);
if($affiliate_ori[name] == $_POST[entertainment])
{
$to = $affiliate_ori[e_mail];
mail ($to,$title,$message,$from);
}
else
{
$delete = mysql_query("DELETE FROM
`schedule_distribution`
WHERE
`schedule_distribution`.`delete_id` = '$_POST[id]'
AND
`schedule_distribution`.`affiliate_id` = '$affiliate_ori[affiliate_id]'
");
$ent_vendor = mysql_query("SELECT * FROM `affiliate`
WHERE `name` = '$_POST[entertainment]'");
$ent_data = mysql_fetch_array($ent_vendor);
$ent_id = $ent_data[affiliate_id];
$sql7 = mysql_query ("INSERT INTO
`schedule_distribution` (`schedule_id`,`affiliate_id`,`order_id`)
VALUES
('$sched_id','$ent_id','$_POST[id]')");
$to = $ent_data[e_mail];
mail ($to,$title,$message,$from);
}
}
header("location:admin.php?info=success");
}
}
?>
216