ZygurAds.com Classified Ads Website
-
Upload
artur-musin -
Category
Technology
-
view
515 -
download
2
description
Transcript of ZygurAds.com Classified Ads Website
1
Search Engine for “Zygura” Classified Ads
Website
by the “Aspiring Developers”:
Team Leader: Artur Musin
Team Quality Checker: Sean Martinez
Technical Advisors:
Pamela Price & Hong Lin2
Team Roles
• Artur Musin
• Site base
• Ad handling
• Database development
• Sean Martinez
• User handling
• Message handling
• Backend functions3
“Zygura” Features
• Publish Ads
• View Ads as a Listing
• View Ads on the Google Map
• Quick access to Ad details and images
• Flexible search by various criteria
• Handy user-to-user communication 4
“Zygura” Advantages
• Clean & User friendly interface
• Browsing and searching without page reloads
• Quick access to an Ad content and its images
• Quick and simple communication mechanism
• Unobtrusive client-side forms input validation
• Decoupled code base for facilitating Unit Testing5
Problem
• Users have to browse the full ad list
• Ads contain too much information
• Time is wasted skimming through
irrelevant ads 6
Design Patterns used
7
• MVC (Model-View-Controller)
• Unit of Work (Repository)
• Service Locator (Inversion of Control container)
• Composition Root (Modules Dependency Inversion)
• Dependency Injection (Class Constructor Injection)
• Factory pattern
• Iterator pattern
• Observer pattern
• Decorator pattern
• Strategy pattern
• Singleton pattern
• Façade pattern
Design Principles used (S.O.L.I.D.)
8
• Single Responsibility principle
(class should have only one responsibility)
• Open-Closed principle
(class should be opened for extension and closed to modification)
• Liskov Substitution principle
(subtypes should be substitutable for its base types)
• Interface Segregation principle
(interfaces should not be “fat”)
• Dependency Inversion principle
(depend upon abstraction, not upon concretion)
ERD Diagram
9
Architectural Scheme - MVC
10
Modular Scheme
11
Database Entities
Business LogicUser Interface
Modules Decoupling for Unit Testing
12
Search Activity Diagram #1
13
www.zygura.net/ad/search?image=true&categ=car&city=Cupertino&priceMin=100&priceMax=1000&searchText=tesla_model_s
www.zygura.net/ad/search?image=true&categ=car&city=Cupertino&priceMin=100&priceMax=1000&searchText=tesla_model_s
14
Search Activity Diagram #2
Register New User Page
15
Login User Popup
16
Publish Ad UI
17
Ads List Search
18
Advanced Search UI
19
Ads List Page
20
Displaying Single Ad
21
Responding to Ad’s Host
22
Routing Directions Popup
23
Google Map “Radar Search”
24
Map Advanced Search Page
25
Ad Details Page
26
User Profile Ads Management
27
User Messages Page
28
Admin’s Backend Page
29
Unit Testing
30
Integration Testing
Test Data Expected Results Actual ResultsTest Status (Pass, Fail, Not Tested)
Tested By Comments Corrective Action
What data will be used
What should the module do
What actually occurred
Outcome Who did the test Any commentsWhat was done to
fix the problem
Textual information along with images
All manually added Ads must be displayed on the webpage after clicking Search button
List of ads was returned to user
Pass Artur Musin There were no problems
Textual information along with images
All manually added Ads must be displayed on the webpage after clicking Search button
Array of ads was returned to the Google map
Pass Artur Musin There were no problems
Simple text and images
Ad record should be added to the database
A new record appeared in the dbo.Ads table
Pass Artur Musin There were no problems
Already precreated ads in the database
A record should disappear from Database
A record was removed from dbo.Ads table
Pass Artur Musin There were no problems
Already precreated ads in the database
A record should change its state
A record was successfully updated
Pass Artur Musin There were no problems
31
User Acceptance Testing
ActivityLead
ResponsibilityDate Result
Search Engine
workingArtur Musin 6/24/2013 No problems
Map Search
workingArtur Musin 6/24/2013 No problems
Publishing Ads
workingArtur Musin 6/24/2013 No problems
Editing Ads
workingArtur Musin 6/24/2013 No problems
Deleting Ads
working Artur Musin 6/24/2013 No problems
32
Lessons Learned
• Decoupled modules make code editing and updates cleaner
• Interfaces make classes more flexible
• The biggest challenge of the MVC code structure is transferring data from one module to another
33
34