Professional Documents
Culture Documents
Final Document For Department
Final Document For Department
December 2017
DECLARATION
This is to declare that this project work which is done under the supervision of Mekonnen
Geremew and having the title Design and Implementation of Web Based Procurement
i|Page
Management System, the case of FDRE Public Procurement and Property Administration
Agency is the sole contribution of:
Daniel Demeke
Million Haile
Yonas Beyene
No part of the project work has been reproduced illegally (copy and paste) which can be
considered as Plagiarism. All referenced parts have been used to argue the idea and have
been cited properly. We will be responsible and liable for any consequence if violation of this
declaration is proven.
Date:_____________________
Group Members:
ii | P a g e
CERTIFICATE
I certify that this BSc final project report entitled Design and Implementation of Web Based
Procurement Management System, the case of FDRE Public Procurement and Property
Administration Agency by:
Daniel Demeke
Million Haile
Yonas Beyene
is approved by me for submission. I certify further that, to the best of my knowledge, the
report represents work carried out by the students.
_________________________ ____________________________________
iii | P a g e
ACKNOWLEDGEMENT
We, the group members take this opportunity to give thank for God for all things that he did
for us.
We, also take this opportunity to express our profound gratitude and deep regards to our
advisor Mekonen Geremew for his exemplary guidance, monitoring and constant
encouragement throughout his project.
We are obliged to staff members of PPA, for the valuable information provided by them in
their respective positions. We are grateful for their cooperation during the period of our
assignment.
iv | P a g e
ABSTRACT
The purpose of this research is to identify the current system of agency and to device a well-
designed and organized automated procurement service giving software. The first phase of
the project involves a screening interview where we identify current working environment of
the agency. We also use observation of the working environment and related documents to
have a clear know how on the main activities of the agency.
v|Page
PREFACE
This project discusses the requirement analysis and elicitation of the working environment of
FDRE public procurement and property administration agency. Followed by the software
design document and object design document.
vi | P a g e
Contents
DECLARATION........................................................................................................................i
CERTIFICATE........................................................................................................................iii
ACKNOWLEDGEMENT........................................................................................................iv
ABSTRACT..............................................................................................................................v
PREFACE.................................................................................................................................vi
TABLE CONTENT.................................................................................................................xii
ACRONYMS.........................................................................................................................xiii
CHAPTER ONE........................................................................................................................1
INTRODUCTION.....................................................................................................................1
1.1 INTRODUCTION..........................................................................................................1
1.2 STATEMENT OF THE PROBLEM AND JUSTIFICATION...........................................2
1.3 PROJECT OBJECTIVE......................................................................................................3
1.3.1 General objective..........................................................................................................3
1.3.2 Specific objectives........................................................................................................3
1.4 SCOPE OF THE PROJECT................................................................................................4
1.5 METHODOLOGY..............................................................................................................4
1.5.1 Investigation (Fact-finding) Method.............................................................................4
1.5.2 Development Methodology..........................................................................................4
1.6 SIGNIFICANCE OF THE PROJECT.................................................................................6
1.7 BENEFICIARIES................................................................................................................6
1.8 TIME SCHEDULE..............................................................................................................6
CHAPTER TWO.......................................................................................................................9
REQUIREMENT ANALYSIS..................................................................................................9
2.1 INTRODUCTION...............................................................................................................9
2.2 CURRENT SYSTEM..........................................................................................................9
2.2.1 Major Function of the Current System/ Current System Description........................10
2.2.1.1 Director General..................................................................................................10
2.2.1.3 Government Procurement Directorate.................................................................10
2.2.1.4 Government Property Management Directorate..................................................11
vii | P a g e
2.2.1.5 Government Procurement and Property Management to investigate a complaint
Directorate.......................................................................................................................11
2.2.1.6 Information Technology /IT/Unit........................................................................11
2.2.2 Scenario..................................................................................................................11
2.2.3 Problems of Existing System......................................................................................19
2.3 REQUIREMENT GATHERING......................................................................................20
2.3.1 Requirement Gathering Methodology........................................................................20
2.3.2 Result Found...............................................................................................................20
2.4 PROPOSED SYSTEM......................................................................................................21
2.4.1 Overview.....................................................................................................................21
2.4.2 Functional Requirements............................................................................................21
2.4.3 Non-Functional Requirement.....................................................................................22
2.4.3.1 User Interface and Human Factors......................................................................22
2.4.3.2 Documentation.....................................................................................................22
2.4.3.3 Hardware Consideration......................................................................................23
2.4.3.4 Performance Characteristics................................................................................23
2.4.3.5 Error Handling and Extreme Conditions.............................................................23
2.4.3.6 Quality Issues.......................................................................................................23
2.4.3.7 System Modification............................................................................................23
2.4.3.8 Physical Environment..........................................................................................23
2.4.3.9 Security Issues.....................................................................................................24
2.5 CONSTRAINTS/ PSEUDO REQUIREMENTS..............................................................24
2.6 SYSTEM MODELS..........................................................................................................24
2.6.1 Use Case Models........................................................................................................24
2.6.1.1 Use Case Diagrams..............................................................................................24
2.6.1.2 Description of use case model.............................................................................25
2.6.3 Object Model..............................................................................................................35
2.6.3.1 Data Dictionary....................................................................................................36
2.6.3.2 Class Modeling....................................................................................................40
2.6.4.1 Sequence Diagram...............................................................................................41
2.6.4.2 State chart diagram..............................................................................................51
viii | P a g e
2.6.4.2 User Interface.......................................................................................................52
CHAPTER THREE.................................................................................................................62
SYSTEM DESING..................................................................................................................62
3.1 INTRODUCTION.....................................................................................................62
3.2 CURRENT SOFTWARE ARCHITECTURE...................................................................62
3.3 PROPOSED SOFTWARE ARCHITECTURE.................................................................62
3.3.1 Overview.....................................................................................................................63
3.3.2 Subsystem Decomposition..........................................................................................64
3.3.4 Persistent Data Management......................................................................................67
3.3.5. Access Control and Security......................................................................................74
3.3.6 Subsystem Services...............................................................................................77
3.4 Detailed Class Diagram.....................................................................................................80
3.5 packages.............................................................................................................................84
3.5.1 Description of Package...............................................................................................84
User management package..............................................................................................84
Bid management package................................................................................................84
Post management package...............................................................................................84
Interface package.............................................................................................................84
Message management package........................................................................................84
3.5.2 Dependency of Package.....................................................................................86
CHAPTER FIVE.....................................................................................................................87
IMPLEMENTATION..............................................................................................................87
5.1 Introduction........................................................................................................................87
5.2 Testing Plan.......................................................................................................................87
5.2.1 Features to be tested....................................................................................................87
5.2.2 Features not to be tested........................................................................................88
5.2.3 Pass Fail Criteria.........................................................................................................88
5.2.3.1 System Testing.....................................................................................................88
5.2.3.2 Integration testing................................................................................................88
5.2.3.3 Unit testing...........................................................................................................88
5.2.4 Approach.....................................................................................................................89
ix | P a g e
5.2.4.1 Testing Levels......................................................................................................89
5.2.4.2 System/Integration Testing..................................................................................89
5.2.4.3 Unit Testing.........................................................................................................89
5.2.4.4 Integration Testing Strategy................................................................................89
5.2 Testing Procedure..........................................................................................................90
5.3 Sample Code......................................................................................................................91
Post Management.................................................................................................................91
Post class..........................................................................................................................91
Bid Management..............................................................................................................95
Message management....................................................................................................100
Account management....................................................................................................104
Comment management..................................................................................................114
File Management...........................................................................................................117
System Log Management..............................................................................................117
CHAPTER SIX......................................................................................................................117
CONCLUSION......................................................................................................................117
REFERENCE........................................................................................................................119
x|Page
Figure 2.13 Search...................................................................................................................49
Figure 2.14 Create bid.............................................................................................................49
Figure 2.15 Apply on bid.........................................................................................................50
Figure 2.16 Approve bid request.............................................................................................50
Figure 2.17 Save document.....................................................................................................51
Figure 2.18 Delete account......................................................................................................51
Figure 2.19 Password Recovery by admin..............................................................................52
Figure 2.20 Password Recovery by user..................................................................................53
Figure 2.21 system log............................................................................................................54
Figure 2.22 State chart of supplier and buyer..........................................................................55
Figure 2.23 State chart of public body and worker of agency.................................................55
Figure 2.24 Registration form screen mock-up.......................................................................56
Figure 2.25 Profile mock-up....................................................................................................57
Figure 2.26 Notification screen mock-up................................................................................57
Figure 2.27 Login form screen mock-up.................................................................................58
Figure 2.28 Bid document screen mock-up.............................................................................59
Figure 2.29 Worker of age.......................................................................................................60
Figure 3.1 subsystem decomposition.......................................................................................65
Figure 3.2 hardware/software mapping...................................................................................66
Figure 3.3 ER diagram.............................................................................................................68
Figure 3.4 detail class diagram six.........................................................................................84
Figure 3.5 Package diagram....................................................................................................86
Figure 3.6 package dependency...............................................................................................87
TABLE CONTENT
Table 1.1 Project activities Time table......................................................................................8
Table 2.1 supplier and buyer data dictionary...........................................................................38
Table 2.2 data dictionary of public body.................................................................................39
Table 2.3 data dictionary of agency worker............................................................................39
Table 2.4 data dictionary of message......................................................................................39
Table 2.5 data dictionary of saved document..........................................................................40
Table 2.6 data dictionary of bid document..............................................................................41
Table 2.7 data dictionary of post.............................................................................................41
Table 2.8 data dictionary of system log file............................................................................42
Table 3.1 Access control..........................................................................................................77
Table 3.2 subsystem service....................................................................................................80
xi | P a g e
Table 5.1 test procedure table
xii | P a g e
ACRONYMS
Bid Document: - Documents required to be submitted to the agency from the buyer or
supplier in response to an invitation to bid. These include the prescribed bid form,
drawings, specifications, time lines, charts, price breakdowns, etc.
Buyer: - organization who makes a purchase from the public body.
Common use items: - is a type of materiel that is required for use by more than one
activity by the public body. In the agency policy the following are the common use
item:- Vehicle, Stationery Items, Computers, Printers, Office Furniture, Cleaning
Materials, Medicines and Drugs, Books and Magazines, Uniforms, Electrical
Equipment’s, Laboratory Supplies and Equipment, Pipes and Fittings, Filing
Cabinet, Herbicide and Insecticide, Laboratory Chemicals.
Complains: - the supplier, buyer or public body expresses their dissatisfaction or
annoyance about something for the agency.
PPA:- federal democratic republic of Ethiopia Public Procurement and Property
Administration Agency
Procurement:- means the purchasing, hiring, or obtaining by any other contractual
means of goods, works and services.
Procurement plan: - procurement management template to define how you are going
to purchase goods and services from suppliers. It prepared by public body.
Public body: it is the governmental organization in the federal level where it
procurement and asset management is done by the agency
Supplier: - organization that provides something needed such as a product or service
for the public body.
xiii | P a g e
CHAPTER ONE
INTRODUCTION
1.1 INTRODUCTION
The Federal Public Procurement and Property Administration Agency is one of the Federal
Agency found in the city Of Addis Ababa around sidist killo. The agency has different
departments that do the different work processes. We didn’t focus on all departments that
exist in the agency; we only focus on the departments that have connection with the
procurement process and Asset management.
Procurement means the purchasing, hiring, or obtaining by any other contractual means of
goods, works and services. Public procurement is the process of the acquisition, usually by
means of a contractual arrangement after public competition, of goods, services, works and
other supplies by the public entity. The procurement process spans the whole life cycle from
initial conception and definition of the needs through the end of the useful life of an asset or
the end of a contract.
In procurement process and asset management process there are different actors that
participate on it. We define some the actors that have relationship with our system:
1|Page
PROJECT PROPOSAL
The reason why we are interested to develop a system for the public Procurement Agency
(PPA) is the current system of the agency is paper based and because of this the Procurement
process takes long time and it is requires high cost to complete. If the agency system
becomes computerized, the process of procurement and asset management takes small time
and cost, the agency can manage easily and it reduces paper work.
In the above paragraph we tried to describe the problem of the current system of the agency
from the agency point of view. In this paragraph we will try to describe the problem of the
current system from the public body point of view. The process of procurement takes a long
period of time due to this the public body can’t get the required service or the goods at
required time, almost all works are done on a paper, the way of sending request and receiving
answer from the agency also takes a long period of time, the rate of the order request error is
high and if the error happens the public body must send the request again, the relationship
between the public body, the agency and the supplier is not strong due to this the exchange of
the information between them is not strong.
2|Page
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
We will also try to describe the problem of the current system from the supplier and buyer
point of view in this paragraph. The suppliers can register online on the website of the
agency this is the good side of the current system but the buyer registration is no included on
the current system. Only the supplier registration is computerized other process is still done
on paper due to this the process of sending complaints and getting information is hard, like
mention before the relationship between the three bodies is not strong because of this the
exchange of information between the three body is low, the current system takes long period
of time and high amount of cost.
Elicit requirements.
To prepare requirement analysis document.
Design the objects of the system.
3|Page
PROJECT PROPOSAL
1.5 METHODOLOGY
Observation
Interview
Document analysis
Under this section we are going to describe the methods used to build this project.
Development Approach: we have selected agile development approach on our project, since
the approach has the following benefits: - there are regular checkups to see that the product is
working during the development, it allows the development team to address issues while
they’re still fresh, small incremental releases with each release building on previous
4|Page
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
functionality can help us build the system based on the functional requirements, each release
is thoroughly tested to ensure software quality is maintained this helps us to work on single
functionality at a time and make sure the functional requirement is met, demonstrating
working functionalities to customers in every sprint can help us get constructive feedback
which will be used to make the system better, it helps create Transparency between the
development team and the end users of the system, it virtually eliminate the chances of
absolute project failure since most functionalities of the system will be done before the
project deadline date.
For the diagrammatic and pictorial representation throughout the document we are going to
use
Visual Paradigm. : Because visual paradigm is an easy tool to represent a system in a
diagrammatic way and explain the diagram to a third person.
IIS server: we are going to use IIS server to develop and test our system before
deployment. We have chosen IIS because.
C#: - handles the server side scripting. C# is popular among the developer community, is
easy to learn and code, recent researches show that C# is the most frequently used server
side scripting language. C# is also powerful with modern features and proper object
oriented programming model.
Bootstrap: well be used to render the display. We selected bootstrap because it is easy
and have many pre-prepared classes that will come in handy in the system development.
5|Page
PROJECT PROPOSAL
JavaScript will be applied to process the client side scripting because processing
everything on the server side will create an overhead on the server.
SQL Server
Razor Script
1.7 BENEFICIARIES
At the end of this project the main beneficiaries are:-
1. The Public Procurement Agency (PPA) is beneficiaries form our system because the
system reduce the paper work, the time that takes to accomplish the procurement
processes and the asset management, our system also decease the rate of duplicated
information in the system, the agency can receive information form the suppliers,
public body easily, the system decrease the cost of the agency and the agency can
easily manage the procurement process and it works became transparent for the
public body and suppliers.
2. Public body is beneficiaries from our system because the system reduces order error
rate, it decrease the paper work, the public body can easily communicate with the
agency or with the suppliers, it decrease the time for the procurement process, the
public body can get any information about the procurement process, the work of the
agency became transparent.
3. Suppliers and buyers is also beneficiaries from our system because the they can get
the information from the agency and can send any complains to the agency easily,
reduce the paperwork, cost and time saving.
6|Page
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
4. Lastly the beneficiary from this project is us. Because will learn how to collect the
data from the customers, the way to prepare document, and the implementation part
has also its own advantage on increasing skill of the group members.
7|Page
PROJECT PROPOSAL
8|Page
CHAPTER TWO
REQUIREMENT ANALYSIS
2.1 INTRODUCTION
The main benefit of our system is reduced the costs and time through various ways, including
the followings: Improved internal efficiency, Cut supplier costs, Reduces order error rate etc.
The most important benefits for management offered by online procurement are: greater
management influence and control over the purchasing process and improved management
information across all areas of purchasing and Asset management.
The public body’s benefits are: the reduced order rate error, they can order to the agency in
simplest way and in short period of time, the paperwork decreased, they can report any
questions or complain easily to the agency.
The supplier’s and buyer benefits are: improved relationships with the buyers, cost and time
savings, reduction of paperwork and duplicated records. From the strategic purchasing
benefits they also mentioned: increased purchasing power and profit margin, improved
efficiency and gaining competitive advantage.
9|Page
REQUIREMENT ANALYSIS
Director General
Deputy Director
General
The deputy director general has the responsibility to administrate the agency and when the
director general is absent the deputy director general is responsible to work as the director
general.
10 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
2.2.2 Scenario
Here we try to describe the as-is scenario. As-is scenario is a story with narrative details on
how the operations are currently being performed on the agency.
11 | P a g e
REQUIREMENT ANALYSIS
12 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
general.
3. The general director sends the procurement plan document to
the deputy general.
4. The deputy general sends the procurement plan document to
the procurement experts.
5. The procurement experts check the procurement plan
document and send their answer to the deputy general
director.
6. The deputy general director sends back to the general
director.
7. If the general director decision is allow the procurement
process. The Government Procurement Directorate prepares
the criterial of trend process to compare the suppliers, select
the procurement method and begin the trend process.
Alternative flow 7.1 If the general directors decision is not allow the procurement
process the agency stop the process here and send the answer to the
public body.
Exit condition The public body gets the answer of the trend document.
13 | P a g e
REQUIREMENT ANALYSIS
Entry condition The Mintesnot first registered on the supplier list of the
agency.
The Government Procurement Directorate makes the bid
invitation to the Mintesnot.
Flow events 1. The Hirut tells bedding information to the Mintesnot.
14 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
15 | P a g e
REQUIREMENT ANALYSIS
16 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
Entry condition The Addis Ababa University send letter to the agency for
consulting.
Flow events 1. If the Addis Ababa University is for procurement
consulting the government procurement directorate gives
advices to the university.
Alternative flow 1.1 If the university request is for the property management the
government property management directorate gives the answers to
the request of the university.
Exit condition The Addis Ababa University gets the answer for their requests.
17 | P a g e
REQUIREMENT ANALYSIS
Entry condition The Addis Ababa university sends the request to agency for
removing expired material.
Flow events 1. The Bekele receives the request.
2. Property management experts Check the request to deiced
whether the expired material removed by the agency or
university.
3. If property management experts deiced to remove the
expired material by the agency they begin the bid process.
Alternative flow 3.1 If the property management expert deiced to remove the
expired material by the university. University organizes
the board that controls the bid process.
3.2 The public body begins the bid process by it own.
Exit condition The Addis Ababa University gets answer from the government
property management directorate for their request.
18 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
We also try to describe the problem of the current system from the supplier point of view in
this paragraph. The suppliers can register online on the website of the agency this is the good
side of the current system but other process is stile done on paper due to this the process of
19 | P a g e
REQUIREMENT ANALYSIS
sending complains and get information is hard, like mention before the relationship between
the three body is not strong because of this the exchange of information between the three
body is low, the current system take long period of time and high amount of cost.
1. By reading the manuals: - the first method of gathering information from the agency
is by reading the manual of the agency. The manuals are prepared by different body
of the agency. Like asset management and procurement management agencies. We
get the manuals from the website and the worker of the agency.
2. By viewing the website of the agency: - the agency has website to register the
suppliers and to post news and also the manuals are download from the website.
3. By interview the workers of the agency: - the other method of gathering information
from the agency is by interview the workers in different department. In this time we
ask the worker different type of question like:-
1. The organization of the current system.
2. The steps of the current procurement process and the way of asset management
3. The responsible of each department that exist on the current system.
4. The authority of the agency.
5. We ask to give for us the paper manual and blushers and we ask others question.
20 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
2. The name and function of the department that participate on the process of procurement
and asset management.
3. The stages of the procurement process and asset management.
4. The way of the public body or the suppliers send complains request to the agency.
5. The required thing from the supplier and buyer to participate on the trend process.
6. The objective and visions of the agency.
7. Polices of the agency in the procurement process and asset management.
8. The type of the procurement process and the way of removing expired materials from
the public body.
2.4 PROPOSED SYSTEM
2.4.1 Overview
The proposed system is aimed at providing simple, efficient, and effective means by which
the procurement process and asset management increases accuracy, minimizes cost and
increases the agency workers, public body and supplier satisfaction. This means the system
facilitates the procurement process, asset management and other activities of the agency.
The functional requirements that the proposed system must fulfill are listed below:-
FR-6:- The system shall allow department of the agency to exchange information through
message.
FR-7:- The system shall allow departments to post data.
21 | P a g e
REQUIREMENT ANALYSIS
FR-8:- The system shall allow user to view, comment and like on posts.
FR-9:- The system shall allow users and agency to exchange message.
FR-11:- The system shall allow Government Procurement Directorate to create bid
process.
FR-12:- The system shall allow supplier or buyer to view and participate on bid process.
FR-13:- The system shall allow Admin to add supplier or buyer to black list.
FR-15:-The system shall allow admin to recover password of any account except supplier
and buyer account.
FR-16: - The system shall allow supplier and buyer to recover their password.
FR-17:- The system shall generate log file that contains any action taken by the user and
any change made in system.
FR-18:- The system shall allow admin to view the log file.
NFR-2:-Users shall provide instructions to the system using mouse and keyboard by clicking
on the menu items and typing into the fields provided by the system.
2.4.3.2 Documentation
NFR-4:-Because system documentation addresses programmers, system developers, owners
and users, the system shall generally provide internal – program source code and use case
22 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
models, the conceptual model and interaction diagrams (activity, sequence, and state
diagrams) documentations.
NFR-11:-Physical threats like theft and natural and human disasters shall be prevented using
guards, backup and physical proofing of the system components.
NFR-13:- The system can be accessed by any type of computer and operating system.
NFR-14:-Parts of the system which are likely the candidates for later modification shall be
user interfaces and the class diagrams of the system which may encounter a change based on
the new requirement of the owner, or new introduction of governmental policies.
NFR-16:-The main server of the system is placed on the office of the agency.
23 | P a g e
REQUIREMENT ANALYSIS
NFR-18:-The system validate the interred information from the supplier or buyer to create
account is correct or not.
NFR-19:- The system installation shall be undertaken by the project deployment team and
the department of the agency Information Technology unit.
NFR-20:-The information technology unit is responsible for the system back up.
24 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
25 | P a g e
REQUIREMENT ANALYSIS
26 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
27 | P a g e
REQUIREMENT ANALYSIS
28 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
29 | P a g e
REQUIREMENT ANALYSIS
31 | P a g e
REQUIREMENT ANALYSIS
32 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
33 | P a g e
REQUIREMENT ANALYSIS
Flow of events 1. The system opens the home page which contains a
form that contains a search field.
2. Admin fills the search constraint on the search text
field.
3. Admin clicks on the search button.
4. The system displays a list of results that meet the
search constraint.
5. Admin clicks on the result.
6. The system displays the profile of result.
7. Admin clicks on delete account button.
8. The system delete the information of the profile or
other document that store by the deleted account.
Exit condition Admin units get notification.
34 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
35 | P a g e
REQUIREMENT ANALYSIS
Public body
36 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
User name CHAR 20 The user name of public body used to login
in his account.
Password VARCHAR 15 The password of the public body account
Fax INT 20 The fax of public body
Telephone INT 15 The telephone of public body manager.
Region CHAR 20 The region of the public body head office
exists.
city CHAR 30 The city of public body head office exists.
wereda/kebele VARCHAR 20 The public body head office location in
terms of wereda and kebele.
Photo STRING 255 The logo of the public body.
Table 2.3 data dictionary of public body
Agency Worker
Message
37 | P a g e
REQUIREMENT ANALYSIS
Bid document
38 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
Date and time Date Contains the date and time of the
document created.
Table 2.6 data dictionary of bid document
Post
39 | P a g e
REQUIREMENT ANALYSIS
Objects are instances of classes that are created, modified and destroyed during the execution
of the system. The class diagram of system is presented as follows.
The dynamic model, represented with Sequence Diagrams, State Chart diagrams, and
Activity Diagram. Activity Diagrams describes the internal behavior of the system. Sequence
Diagrams describe behavior as a sequence of messages exchanged among a set of objects,
whereas State Chart diagrams describe behavior in terms of states of an individual object and
the possible transitions between states.
40 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
objects. The main sequence diagrams identified in our project are presented as follows. The
analysis object model consists of entity, boundary, and control objects Entity
objects represent the persistent information tracked by the system. Boundary objects
represent the interactions between the actors and the system. Control objects represent the
tasks that are performed by the user and supported by the system. Control objects are
responsible for coordinating Boundary and Entity objects. They are responsible for collecting
information from the boundary objects and dispatching it to entity objects. Control objects
usually do not have a concrete counterpart in the real world.
41 | P a g e
REQUIREMENT ANALYSIS
42 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
43 | P a g e
REQUIREMENT ANALYSIS
44 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
45 | P a g e
REQUIREMENT ANALYSIS
46 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
47 | P a g e
REQUIREMENT ANALYSIS
48 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
49 | P a g e
REQUIREMENT ANALYSIS
50 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
51 | P a g e
REQUIREMENT ANALYSIS
52 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
53 | P a g e
REQUIREMENT ANALYSIS
54 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
55 | P a g e
REQUIREMENT ANALYSIS
56 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
57 | P a g e
CHAPTER THREE
SYSTEM DESING
3.1 INTRODUCTION
System design is the process of defining the elements of a system such as the architecture,
modules and components, the different interfaces of those components and the data that goes
through that system to satisfy specific needs and requirements of the organization.
The system design document used the requirement analysis document and its output is used
in the implementation time. Under the system design we try to describe the architecture of
the current system and we will describe the system we proposed to replace the current
system. We have decomposed the system in terms of subsystems; we described the software
hardware mapping of the system, the data storage we implement, the access control and
security type we used.
It is easier to install and maintain. In addition to this the agency has a well- structured
up and running server so we will not have a difficulty during deployment.
62 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
Proper management: - Since resource and files are centralized managing and
administering resources is easy.
Accessibility: - any user can access the system anywhere and at any time in any
devices that supports the internet access.
3.3.1 Overview
This is the brief overview of our proposed system. As the development progresses and the
functionalities are identified the system must be classified and decomposed carefully because
once it is past this level it becomes difficult to understand and implement the system for
developers. So we decomposed the system in into detail subsystems, described the hardware
and software mapping of the system, the persistent data management, access control and
security, subsystem services and detailed class diagram.
63 | P a g e
SYSTEM DESIGN
64 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
65 | P a g e
SYSTEM DESIGN
66 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
We have chosen relational database management system to store data and information
we need. We selected this model because of the reasons of
- It is simple to structure and we are also familiar with the model so it will be
easy to implement.
- It is easy to get data since relational model doesn’t require navigating a rigid
pathway through a tree or hierarchy. We just write a query to retrieve the specific
data and it gets it right away.
- Easy to add tables and requirements emerging in the future. So it is flexible.
The following objects are identified to be stored persistently and the respective tables will be
maintained with the database
1. Supplier and buyer: - this table contains the information about supplier and buyers.
2. Agency worker: - this table is responsible to contain the information of the agency
workers.
3. Public body: - in this table the information of the public body will be stored.
4. File table: - this table contains the files that are uploading by the user to the system.
5. Bid document: - this table is responsible to store the information of bid document.
6. Applier list: - this table is responsible to store the applier list that applies on the bid
process.
7. System log list: - this table contains the system log information.
8. Post: - this table used to store the post.
9. Comment table: - this table is responsible to store comments that are given by the
user on a post.
10. Like list: - this table is responsible to store list of users that like the post.
67 | P a g e
SYSTEM DESIGN
ER Diagram
Under this section we have listed the tables and their cardinality
Normalization
1. First normal: a table is said to be in a first normal form if it only has an atomic value
meaning that it cannot have multiple values for a single attribute.
68 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
2. Second normal: A relation is in 2nd normal form if it is in 1st normal form and no non-
prime attributes is dependent on any proper subset of any candidate key of a relation.
A non-prime attribute is an attribute that is not a subset of a candidate key.
3. Third normal: First of all a relation must be in a second normal form and all attributes
in a table must be identified by the candidate key.
After applying this rule in our entity we get the following tables.
Supplier
buyer
and
licenses no
Business
Wereda/
kebele
House
Constraints:
Email Tin no
Constraints:
69 | P a g e
SYSTEM DESIGN
Constraints:
Agency
worker
Constraints:
Public body
Name User Pass Fax Telepho Regi City sub wereda/ Photo
name word ne on city kebele
Constraints:
File table
File table
Constraints:
70 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
Bid
Document
Bid Id Owner Title Body Type Participant File id Date and time
Constraints:
Applier list
Constraints:
System log
file
71 | P a g e
SYSTEM DESIGN
Constraints:
Post table
Post
Post id Owner Title Body No of comment No of like Date and time Photo File id
Constraints:
Comment table
Comment
table
Constraints:
72 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
Like list
Constraints:
Message table:
Message
Message Id Message title Message body Message Type File id Date and time
Constraints:
Message sender
Message sender
Message id sender
Constraints:
Message Receiver
Message Receiver
73 | P a g e
SYSTEM DESIGN
Message id Receiver
Constraints:
Account login()
Handler logout()
update()
74 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
deleteAccount()
blockAccount()
unblockAccount()
recoverPassword()
System writeReport()
Log readReport()
Managemen search()
t
view()
delete()
read()
privacy()
75 | P a g e
SYSTEM DESIGN
Comment comment()
Handler
update()
delete()
reply()
FileHandler upload()
download()
delete()
delete()
reply
FileHandler upload()
download()
delete()
delete()
privacy()
invite()
76 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
Apply apply()
Handler approved()
delete()
search()
FileHandler upload()
download()
delete()
77 | P a g e
SYSTEM DESIGN
User management Supplier register() Used to register the new supplier and buyers
Public body create() Used to register the public body or the worker of
and worker the agency.
management
search() Used to search the account.
78 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
Management log.
79 | P a g e
SYSTEM DESIGN
80 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
FileHandler upload() Used to upload file to apply the bid process. Or to create
a bid process.
download() Used to download the attached file from bid process
delete() Used to delete the upload file form the bid process.
81 | P a g e
SYSTEM DESIGN
82 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
83 | P a g e
SYSTEM DESIGN
84 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
85 | P a g e
SYSTEM DESIGN
3.5 packages
To reduce the complexity of application domain we identified the small part called class
during analysis. Now we organize this class into package.
Interface package
The interface package contains different classes which control the loading and unloading of
the interfaces with which the users interface different parts of the system.
86 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
87 | P a g e
SYSTEM DESIGN
88 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
CHAPTER FIVE
IMPLEMENTATION
5.1 Introduction
In this section of the document sample codes of some major functionality (classes) and test
cases are documented.
89 | P a g e
SYSTEM DESIGN
90 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
91 | P a g e
SYSTEM DESIGN
Can system allow to publicbody or supplier or buyer to send reports.
92 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
5.2.4 Approach
93 | P a g e
SYSTEM DESIGN
Since we have planned to do the system testing along with the integration testing,
bottom up will help us move slowly from sub-parts (Bottom) to the entire system
(Up).
Since bottom-up testing is more intuitive and natural we follow it.
Bottom-up testing does not need any additional stuff like stubs.
It leads to good performance of testing and it is very simple to perform.
Create
Bid All the operation functions are Expected
Update
management Delete and successful
Apply
Accept
Create
Post All the operation functions are Expected
Update
management Delete and successful
Like
comment
Create
Message All the operation functions are Expected
Update
management Delete and successful
Create
Report All the operation functions are Expected
Update
management Delete and successful
Create
Account All the operation functions are Expected
Update
management Delete and successful
94 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
Proper functionality of each unit of the system is tested through unit testing. The
functionality of the entire system is done with integration testing. The following table
summarizes test results
Moreover query operations of all the units are tested and function successfully.
Post class
namespace PPA.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Web;
95 | P a g e
SYSTEM DESIGN
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<commment> commments { get; set; }
public virtual fileTable fileTable { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<likeList> likeLists { get; set; }
[NotMapped]
public HttpPostedFileBase ImageUpload { get; set; }
[NotMapped]
public HttpPostedFileBase FileUpload { get; set; }
[NotMapped]
public string like { get; set; }
}
}
[HttpGet]
public ActionResult OpenPost(int id)
{
post openPost = ppaDatabase.posts.Where(x => x.id == id).FirstOrDefault();
return View("EditePost",openPost);
}
[HttpPost]
public ActionResult EditePost(post newPost)
{
bool state = false;
if (ModelState.IsValid)
{
ppaDatabase.Entry(newPost).State = EntityState.Modified;
ppaDatabase.SaveChanges();
state = true;
systemLog newLog = new systemLog();
newLog.userName = user.userName;
newLog.actionDone = user.userName + "Edite a post with title " +
newPost.title;
newLog.dateAndTime = DateTime.Now;
ppaDatabase.systemLogs.Add(newLog);
ppaDatabase.SaveChanges();
}
if(state == true)
{
AllPost();
//RedirectToAction("PostDetail", newPost);
//return View("PostDetail",newPost);
return Json(new { success = true, html = PostDetail(newPost), message
= "Submitted Successfully" }, JsonRequestBehavior.AllowGet);
//return Json(new { success = state,, message = "Success fully Edited"
}, JsonRequestBehavior.AllowGet);
}
else
{
return Json(new { success = state, message = "Sorry Error Occured" },
JsonRequestBehavior.AllowGet);
}
}
96 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
[HttpPost]
public ActionResult CreateOrEditPost(post newPost)
{
try
{
newPost.postOwner = user.userName;
newPost.dateAndTime = DateTime.Now.Date;
newPost.noOfComment = 0;
newPost.noOfLike = 0;
newPost = ppaDatabase.posts.Add(newPost);
ppaDatabase.SaveChanges();
systemLog newLog = new systemLog();
newLog.userName = user.userName;
newLog.actionDone = user.userName + "create a post with title " +
newPost.title;
newLog.dateAndTime = DateTime.Now;
ppaDatabase.systemLogs.Add(newLog);
ppaDatabase.SaveChanges();
}
catch (Exception ex)
{
return Json(new { success = false, message = ex.Message },
JsonRequestBehavior.AllowGet);
}
try
{
if (newPost.ImageUpload.ContentLength > 0)
{
string fileName =
Path.GetFileNameWithoutExtension(newPost.ImageUpload.FileName);
string extension =
Path.GetExtension(newPost.ImageUpload.FileName);
fileName = "post" + newPost.id + extension;
newPost.photo = "~/Photo/" + fileName;
newPost.ImageUpload.SaveAs(Path.Combine(Server.MapPath("~/Photo/"), fileName));
ppaDatabase.Entry(newPost).State = EntityState.Modified;
ppaDatabase.SaveChanges();
}
}
catch(Exception ex)
{
Console.Write(ex);
}
try
{
if (newPost.FileUpload.ContentLength > 0)
{
fileTable postFile = new fileTable();
string fileName =
Path.GetFileNameWithoutExtension(newPost.FileUpload.FileName);
string extension = Path.GetExtension(newPost.FileUpload.FileName);
string path = "postFile" + newPost.id + extension;
97 | P a g e
SYSTEM DESIGN
}
catch(Exception ex)
{
Console.Write(ex);
}
return Json(new { success = true, message = "Success fully Created" },
JsonRequestBehavior.AllowGet);
}
public ActionResult Post(int? page)
{
}
if (postDelete.noOfLike != 0)
{
98 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
List<likeList> likeOfpost = ppaDatabase.likeLists.Where(x => x.postId
== postDelete.id).ToList();
foreach (likeList like in likeOfpost)
{
ppaDatabase.likeLists.Remove(like);
ppaDatabase.SaveChanges();
}
}
string temp = postDelete.id.ToString();
List<notificationTable> postNotificaiton =
ppaDatabase.notificationTables.Where(x => x.fileNotification ==
temp).ToList<notificationTable>();
foreach (notificationTable tempNotification in postNotificaiton)
{
ppaDatabase.notificationTables.Remove(tempNotification);
ppaDatabase.SaveChanges();
}
return View("Index");
}
Bid Management
namespace PPA.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Web;
99 | P a g e
SYSTEM DESIGN
[HttpGet]
public ActionResult CreateOrEditBid(int bidId = 0)
{
if (bidId != 0)
{
post oldPost = ppaDatabase.posts.Where(x => x.id ==
bidId).FirstOrDefault();
return View("EditeBid");
}
return PartialView("CreateBid");
}
[HttpPost]
public ActionResult CreateOrEditBid(bid newBid)
{
try
{
newBid.bidOwner = user.userName;
newBid.dateAndTime = DateTime.Now.Date;
newBid.noOfApplier = 0;
newBid = ppaDatabase.bids.Add(newBid);
ppaDatabase.SaveChanges();
systemLog newLog = new systemLog();
newLog.userName = user.userName;
newLog.actionDone = user.userName + "create a bid with title " +
newBid.title;
newLog.dateAndTime = DateTime.Now;
ppaDatabase.systemLogs.Add(newLog);
ppaDatabase.SaveChanges();
}
catch (Exception ex)
{
return Json(new { success = false, message = ex.Message },
JsonRequestBehavior.AllowGet);
}
try
{
if (newBid.FileUpload.ContentLength > 0)
100 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
{
fileTable postFile = new fileTable();
string fileName =
Path.GetFileNameWithoutExtension(newBid.FileUpload.FileName);
string extension = Path.GetExtension(newBid.FileUpload.FileName);
string path = "bidFile" + newBid.id + extension;
postFile.filePath = "~/File/" + path;
postFile.name = fileName;
newBid.FileUpload.SaveAs(Path.Combine(Server.MapPath("~/File/"),
path));
postFile = ppaDatabase.fileTables.Add(postFile);
newBid.fileId = postFile.id;
ppaDatabase.Entry(newBid).State = EntityState.Modified;
ppaDatabase.SaveChanges();
}
}
catch (Exception ex)
{
Console.Write(ex);
}
return Json(new { success = true, message = "Success fully Created" },
JsonRequestBehavior.AllowGet);
}
[HttpGet]
public ActionResult EditeBid(int id)
{
bid openBid = ppaDatabase.bids.Where(x => x.id == id).FirstOrDefault();
return View(openBid);
}
[HttpPost]
public ActionResult EditeBid(bid newBid)
{
bool state = false;
if (ModelState.IsValid)
{
ppaDatabase.Entry(newBid).State = EntityState.Modified;
ppaDatabase.SaveChanges();
systemLog newLog = new systemLog();
newLog.userName = user.userName;
newLog.actionDone = user.userName + "Edite a bid with title " +
newBid.title;
newLog.dateAndTime = DateTime.Now;
ppaDatabase.systemLogs.Add(newLog);
ppaDatabase.SaveChanges();
state = true;
}
[HttpGet]
public ActionResult DeleteBid(int id)
101 | P a g e
SYSTEM DESIGN
{
bid bidDelete = ppaDatabase.bids.Where(x => x.id == id).FirstOrDefault();
return View(bidDelete);
}
[HttpPost]
[ActionName("DeleteBid")]
public ActionResult DeleteByBidId(int id)
{
bid bidDelete = ppaDatabase.bids.Where(x => x.id == id).FirstOrDefault();
if (bidDelete.fileId != null)
{
fileTable bidFile = ppaDatabase.fileTables.Where(file => file.id ==
bidDelete.fileId).FirstOrDefault();
ppaDatabase.fileTables.Remove(bidFile);
ppaDatabase.SaveChanges();
}
if (bidDelete.noOfApplier != 0)
{
List<applierList> bidApplierList = ppaDatabase.applierLists.Where(x =>
x.bidId == bidDelete.id).ToList();
foreach (applierList applier in bidApplierList)
{
if (applier.fileId != null)
{
ppaDatabase.bids.Remove(bidDelete);
ppaDatabase.SaveChanges();
return RedirectToAction("Index");
}
102 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
public ActionResult Bid(int? page)
{
var model = AllBid().OrderByDescending(x => x.dateAndTime); ;
var pageNumber = page ?? 1;
var onePageOfBid = model.ToPagedList(pageNumber, 6);
return View(onePageOfBid);
}
public IEnumerable<ApplierListTable> ApplierList()
{
List<applierList> ApplierList =
ppaDatabase.applierLists.ToList<applierList>();
List<ApplierListTable> applierListTable = new List<ApplierListTable>();
ApplierListTable singleApplierList = new ApplierListTable();
supplierBuyer singleSupplierBuyer = new supplierBuyer();
bid singleBid = new bid();
foreach (var temp in ApplierList)
{
singleApplierList.bidId = Convert.ToInt32(temp.bidId);
singleBid = ppaDatabase.bids.Where(x => x.id ==
temp.bidId).FirstOrDefault<bid>();
singleApplierList.bidTitle = singleBid.title;
singleSupplierBuyer = ppaDatabase.supplierBuyers.Where(x => x.email ==
temp.userName).FirstOrDefault<supplierBuyer>();
singleApplierList.applierUserName = singleSupplierBuyer.email;
singleApplierList.applierName = singleSupplierBuyer.name;
singleApplierList.approved = temp.applyApprove;
singleApplierList.dataAndTime = temp.dateAndTime;
fileTable applierFile = ppaDatabase.fileTables.Where(x => x.id ==
temp.fileId).FirstOrDefault();
singleApplierList.applierFile = applierFile.name;
singleApplierList.applierFilePath = applierFile.filePath;
applierListTable.Add(singleApplierList);
}
return applierListTable;
}
public ActionResult RequestList()
{
return View(ApplierList());
}
public ActionResult RequestAccepted(int bidId = 0)
{
if(bidId != 0)
{
applierList applier = ppaDatabase.applierLists.Where(x => x.bidId ==
bidId).First();
applier.applyApprove = true;
ppaDatabase.Entry(applier).State = EntityState.Modified;
bid Bid = ppaDatabase.bids.Where(x => x.id == bidId).FirstOrDefault();
systemLog newLog = new systemLog();
newLog.userName = user.userName;
newLog.actionDone = user.userName + "Accepted the request of " +
applier.userName + "on the bid of "+Bid.title ;
newLog.dateAndTime = DateTime.Now;
103 | P a g e
SYSTEM DESIGN
ppaDatabase.systemLogs.Add(newLog);
ppaDatabase.SaveChanges();
ppaDatabase.SaveChanges();
}
return View("RequestList", ApplierList());
Message management
namespace PPA.Models
{
using System;
using System.Collections.Generic;
namespace PPA.Models
{
using System;
using System.Collections.Generic;
namespace PPA.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Web;
104 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
}
}
}
public IEnumerable<messageTable> AllMessage()
{
List<messageReceiver> agentMessage =
ppaDatabase.messageReceivers.Where(x => x.receiver ==
user.userName).ToList<messageReceiver>();
List<messageTable> allMessage = new List<messageTable>();
messageTable singeleMessage;
messageSender senderMessage;
foreach (var message in agentMessage)
{
singeleMessage = ppaDatabase.messageTables.Where(x => x.id ==
message.id).FirstOrDefault<messageTable>();
senderMessage = ppaDatabase.messageSenders.Where(x => x.id ==
message.id).FirstOrDefault<messageSender>();
singeleMessage.messagesender = senderMessage.sender;
singeleMessage.messagereceiver = user.userName;
allMessage.Add(singeleMessage);
}
int numberOfMessage = 0;
foreach (var message in allMessage)
{
if (message.messageStatus == false)
{
numberOfMessage++;
}
}
Session["numberOfMessage"] = numberOfMessage;
105 | P a g e
SYSTEM DESIGN
return allMessage;
public PartialViewResult MessageList()
{
return PartialView(AllMessage().Where(x =>
x.messagereceiver==user.userName).Take(5));
}
[HttpGet]
public ActionResult MessageDetail(int ? id)
{
id = id ?? 0;
messageTable Message = new messageTable();
AllMessage();
if (id != 0)
{
if(Message.messagesender != user.userName)
{
Message = ppaDatabase.messageTables.Where(x => x.id ==
id).FirstOrDefault();
Message.messageStatus = true;
Message.seenDateAndTime = DateTime.Now;
ppaDatabase.Entry(Message).State = EntityState.Modified;
ppaDatabase.SaveChanges();
AllMessage();
}
}
return View(Message);
}
public PartialViewResult ReceivedMessage(int? page)
{
var model = AllMessage().Where(x => x.messagereceiver ==
user.userName).OrderByDescending(x => x.reciveDataAndTime); ;
var pageNumber = page ?? 1;
var onePageOfBid = model.ToPagedList(pageNumber, 10);
return PartialView(onePageOfBid);
}
[HttpGet]
public PartialViewResult SendMessage()
{
return PartialView();
}
[HttpPost]
public ActionResult SendMessage(MessageToSend message)
106 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
{
messageTable MessageTable = new messageTable();
messageReceiver MessageReceiver = new messageReceiver();
if (ppaDatabase.accounts.Where(x => x.userName ==
message.messageReciver).FirstOrDefault() == null)
{
return Json(new { success = false, message = "The Message Reciver is
not valide!" }, JsonRequestBehavior.AllowGet);
}
try
{
MessageTable.title = message.messageTitle;
MessageTable.body = message.messageBody;
MessageTable.messageType = message.messageType;
MessageTable.reciveDataAndTime = DateTime.Now;
MessageTable = ppaDatabase.messageTables.Add(MessageTable);
ppaDatabase.SaveChanges();
messageSender MessageSender = new messageSender();
MessageSender.id = MessageTable.id;
MessageSender.sender = user.userName;
ppaDatabase.messageSenders.Add(MessageSender);
ppaDatabase.SaveChanges();
MessageReceiver.receiver = message.messageReciver;
MessageReceiver.id = MessageTable.id;
ppaDatabase.messageReceivers.Add(MessageReceiver);
ppaDatabase.SaveChanges();
107 | P a g e
SYSTEM DESIGN
MessageTable.fileId = postFile.id;
ppaDatabase.Entry(MessageTable).State = EntityState.Modified;
ppaDatabase.SaveChanges();
}
}
catch (Exception ex)
{
Console.Write(ex);
}
return Json(new { success = true, message = "Your Message Sends succesfuly
To " + MessageReceiver.receiver}, JsonRequestBehavior.AllowGet);
}
Account management
namespace PPA.Models
{
using System;
108 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
using System.Collections.Generic;
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<commment> commments { get; set; }
public virtual likeList likeList { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<notificationTable> notificationTables { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<notificationTable> notificationTables1 { get;
set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<systemLog> systemLogs { get; set; }
}
}
namespace PPA.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Web;
109 | P a g e
SYSTEM DESIGN
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<bid> bids { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<post> posts { get; set; }
[NotMapped]
public HttpPostedFileBase ImageUpload { get; set; }
}
}
namespace PPA.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Web;
110 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
namespace PPA.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Web;
namespace PPA.Models
{
using System;
111 | P a g e
SYSTEM DESIGN
using System.Collections.Generic;
namespace PPA.Models
{
using System;
using System.Collections.Generic;
return null;
}
public void ChangeProfile(FormCollection formCollection)
{
112 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
agent userAccount = ppaDatabase.agents.Where(x => x.userName ==
user.userName).First();
userAccount.telephone = formCollection["newValue"];
ppaDatabase.Entry(userAccount).State = EntityState.Modified;
ppaDatabase.SaveChanges();
}
[HttpGet]
public ActionResult UserProfile(string userName)
{
UserProfile profile = new UserProfile();
account userAccount = ppaDatabase.accounts.Where(x => x.userName ==
userName).First();
if(userAccount.accountType == "publicBody")
{
publicBody tempProfile = ppaDatabase.publicBodies.Where(x =>
x.userName == userName).First();
profile.name = tempProfile.name;
profile.userName = tempProfile.userName;
profile.photo = tempProfile.photo;
profile.telephone = tempProfile.telephone;
profile.region = tempProfile.region;
profile.city = tempProfile.city;
profile.weredaKebele = tempProfile.weredaKebele;
profile.fax = tempProfile.fax;
profile.accountType = "publicBody";
}
else if (userAccount.accountType == "agent" || userAccount.accountType ==
"admin")
{
agent tempProfile = ppaDatabase.agents.Where(x => x.userName ==
userName).First();
profile.name = tempProfile.name;
profile.userName = tempProfile.userName;
profile.telephone = tempProfile.telephone;
profile.department = tempProfile.Department;
profile.posision = tempProfile.Position;
profile.officeNo = tempProfile.officeNo;
profile.accountType = "agent";
profile.photo = tempProfile.photo;
}
else
{
supplierBuyer tempProfile = ppaDatabase.supplierBuyers.Where(x =>
x.email == userName).First();
profile.name = tempProfile.name;
profile.userName = tempProfile.email;
profile.telephone = tempProfile.telephone;
profile.userType = tempProfile.userType;
profile.houseNumber = tempProfile.houseNumber;
profile.region = tempProfile.region;
profile.city = tempProfile.city;
profile.weredaKebele = tempProfile.weredaKebele;
profile.fax = tempProfile.fax;
profile.accountType = "supplierBuyer";
profile.photo = tempProfile.photo;
113 | P a g e
SYSTEM DESIGN
}
return View(profile);
}
namespace PPA.Controllers
{
public class LoginController : Controller
{
PPAEntities ppaDatabase = new PPAEntities();
[HttpGet]
public ActionResult Index()
{
if (Session["admin"] != null)
{
return RedirectToAction("Index", "Admin");
}
else if (Session["publicbody"] != null)
{
return RedirectToAction("Index", "PublicBody");
}
else if (Session["agent"] != null)
{
return RedirectToAction("Index", "Agent");
}
else
return View();
}
[HttpPost]
public ActionResult Index(Login loginInfo)
{
account user = new account();
try
{
user = ppaDatabase.accounts.Where(e => e.userName ==
loginInfo.userName.ToString() && e.userPassword ==
loginInfo.password.ToString()).Single();
114 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
else if (user.accountType == "Agent" || user.accountType == "agent")
{
Session["agent"] = user;
return RedirectToAction("Index", "Agent");
}
else if(user.accountType == "supplierBuyer" || user.accountType ==
"supplierBuyer")
{
supplierBuyer data = ppaDatabase.supplierBuyers.Where(x =>
x.email == user.userName).First();
if(data.block == false)
{
Session["supplierBuyer"] = user;
return RedirectToAction("Index", "SupplierBuyer");
}
else
{
return RedirectToAction("Error");
}
}
else
{
ModelState.AddModelError("password", "Wrong Email or Password");
return View(loginInfo);
}
}
catch (Exception ex)
{
ModelState.AddModelError("password", "Wrong Email or Password");
return View(loginInfo);
}
}
[HttpGet]
public ActionResult Register()
{
return View();
}
[HttpPost]
public ActionResult Register(supplierBuyer supplierbuyer)
{
115 | P a g e
SYSTEM DESIGN
116 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
{
mail.Bcc.Add(new MailAddress(bcc));
}
if (!string.IsNullOrEmpty(cc))
{
mail.CC.Add(new MailAddress(cc));
}
mail.Subject = subject;
mail.Body = body;
mail.IsBodyHtml = true;
SendMail(mail);
}
public static void SendMail(MailMessage mail)
{
SmtpClient client = new SmtpClient();
client.Host = "smtp.gmail.com";
client.Port = 587;
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Credentials = new
System.Net.NetworkCredential("ethioppa@gmail.com", "PPA12345ppa");
try
{
client.Send(mail);
}
catch (Exception ex )
{
throw ex;
}
}
}
}
Like Management
namespace PPA.Models
{
using System;
using System.Collections.Generic;
117 | P a g e
SYSTEM DESIGN
notificationTable oldNotification =
ppaDatabase.notificationTables.Where(x => x.actionOwner == user.userName &&
x.fileNotification == item.id.ToString()).FirstOrDefault();
ppaDatabase.notificationTables.Remove(oldNotification);
ppaDatabase.SaveChanges();
}
return Json(item.noOfLike,JsonRequestBehavior.AllowGet);
}
Comment management
namespace PPA.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
118 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
public int id { get; set; }
public Nullable<int> postId { get; set; }
public string commentOwner { get; set; }
public string body { get; set; }
public System.DateTime dateAndTime { get; set; }
public Nullable<int> fileId { get; set; }
}
else if (ownerAccount.accountType == "publicBody")
{
publicBody commentOwner = ppaDatabase.publicBodies.Where(x =>
x.userName == ownerAccount.userName).FirstOrDefault();
item.OwnerName = commentOwner.name;
item.OwnerProfile = commentOwner.photo;
}
else if (ownerAccount.accountType == "supplierbuyer")
{
supplierBuyer commentOwner = ppaDatabase.supplierBuyers.Where(x =>
x.email == ownerAccount.userName).FirstOrDefault();
item.OwnerName = commentOwner.name;
item.OwnerProfile = commentOwner.photo;
}
else
{
continue;
}
119 | P a g e
SYSTEM DESIGN
allComment.Add(item);
}
}
public ActionResult CommentController(FormCollection formCollection)
{
if(Session["postId"] != null)
{
commment newComment = new commment();
newComment.postId = Convert.ToInt32(Session["postId"]);
newComment.commentOwner = user.userName;
newComment.body = formCollection["commentBody"];
newComment.dateAndTime = DateTime.Now;
ppaDatabase.commments.Add(newComment);
ppaDatabase.SaveChanges();
post commentPost = ppaDatabase.posts.Where(x => x.id ==
newComment.postId).FirstOrDefault();
commentPost.noOfComment = commentPost.noOfComment + 1;
ppaDatabase.Entry(commentPost).State = EntityState.Modified;
ppaDatabase.SaveChanges();
AllPost();
if (commentPost.fileId != null)
{
fileTable Temp = ppaDatabase.fileTables.Where(x => x.id ==
commentPost.fileId).FirstOrDefault();
Session["path"] = Temp.filePath.ToString();
Session["fileName"] = Temp.name.ToString();
}
else
{
Session.Remove("path");
Session.Remove("fileName");
}
return View("PostDetail",commentPost);
120 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
}
else
{
return View("Error");
}
}
[HttpPost]
public ActionResult DeleteComment(int id)
{
ppaDatabase.commments.Remove(ppaDatabase.commments.Where(x => x.id ==
id).FirstOrDefault());
ppaDatabase.SaveChanges();
return View();
}
[HttpPost]
public ActionResult EditeComment(int id)
{
return View();
}
[HttpPost]
public ActionResult EditeComment(int id)
{
return View();
}
File Management
namespace PPA.Models
{
using System;
using System.Collections.Generic;
121 | P a g e
SYSTEM DESIGN
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<applierList> applierLists { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<bid> bids { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<commment> commments { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<messageTable> messageTables { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<post> posts { get; set; }
}
}
namespace PPA.Models
{
using System;
using System.Collections.Generic;
122 | P a g e
Design and Implementation of Web based Procurement Management System,
the case of FDRE Public Procurement and Property Administration Agency
CHAPTER SIX
CONCLUSION
This project is intended as Partial Fulfillment of the Requirements for the B.Sc Degree in
Computer Science. The project that we have selected “FDRE Procurement Management
System” is aimed to computerize procumbent and assets Management activities of the
Agency, publicbody, buyers and supplier.
As we have been working in this project we have gone through almost all the phases of
Software Engineering. It gives us a chance to implement our knowledge of Software
Engineering, Database Management System, Programming and Project Management which
we have gained through lesson at HiLCoE and work experience. While working on the
project we have observed many drawbacks associated with the current system and practices
of the agency and build a belief that the actual implementation of this project will assist all
the stakeholders by large. And hence we made an internal and professional commitment to
work on the real implementation of the project after working out the modules and scenarios
left undone
123 | P a g e
SYSTEM DESIGN
REFERENCE
1. International Journal of Emerging Technology and Advanced Engineering
Website: www.ijetae.com (ISSN 2250-2459, ISO 9001:2008 Certified
Journal, Volume 3, Issue 7, July 2013)
2. Regular Expression pocket references, O’reilly® Tony Stubblebin, 2 nd
Edition, July 2007
3. Software Engineering a practitioners approach, 5 th edition, Roger S.
Pressman, Ph.D.
124 | P a g e