Got tired of long Ads? Spending to much timer searching for relevant Ads? Want to search Ads around your location ? ZygurAds will solve your problems !
You can search Ads using listing search, or search directly on the map around you ("radar search").
http://www.zygurads.com/
Buy "Walking On Clouds" on
2. 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 Lin
2
3. Team Roles
• Artur Musin
• Site base
• Ad handling
• Database development
• Sean Martinez
• User handling
• Message handling
• Backend functions
3
4. “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
5. “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 Testing
5
6. Problem
• Users have to browse the full ad list
• Ads contain too much information
• Time is wasted skimming through
irrelevant ads 6
7. 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
8. 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)
31. Integration Testing
Test Data Expected Results Actual Results
Test 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 comments
What 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
32. User Acceptance Testing
Activity
Lead
Responsibility
Date Result
Search Engine
working
Artur Musin 6/24/2013 No problems
Map Search
working
Artur Musin 6/24/2013 No problems
Publishing Ads
working
Artur Musin 6/24/2013 No problems
Editing Ads
working
Artur Musin 6/24/2013 No problems
Deleting Ads
working
Artur Musin 6/24/2013 No problems
32
33. 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