ZygurAds.com Classified Ads Website

34
1

description

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

Transcript of ZygurAds.com Classified Ads Website

Page 1: ZygurAds.com Classified Ads Website

1

Page 2: ZygurAds.com Classified Ads Website

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

Page 3: ZygurAds.com Classified Ads Website

Team Roles

• Artur Musin

• Site base

• Ad handling

• Database development

• Sean Martinez

• User handling

• Message handling

• Backend functions3

Page 4: ZygurAds.com Classified Ads Website

“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

Page 5: ZygurAds.com Classified Ads Website

“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

Page 6: ZygurAds.com Classified Ads Website

Problem

• Users have to browse the full ad list

• Ads contain too much information

• Time is wasted skimming through

irrelevant ads 6

Page 7: ZygurAds.com Classified Ads Website

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

Page 8: ZygurAds.com Classified Ads Website

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)

Page 9: ZygurAds.com Classified Ads Website

ERD Diagram

9

Page 10: ZygurAds.com Classified Ads Website

Architectural Scheme - MVC

10

Page 11: ZygurAds.com Classified Ads Website

Modular Scheme

11

Database Entities

Business LogicUser Interface

Page 12: ZygurAds.com Classified Ads Website

Modules Decoupling for Unit Testing

12

Page 13: ZygurAds.com Classified Ads Website

Search Activity Diagram #1

13

www.zygura.net/ad/search?image=true&categ=car&city=Cupertino&priceMin=100&priceMax=1000&searchText=tesla_model_s

Page 14: ZygurAds.com Classified Ads Website

www.zygura.net/ad/search?image=true&categ=car&city=Cupertino&priceMin=100&priceMax=1000&searchText=tesla_model_s

14

Search Activity Diagram #2

Page 15: ZygurAds.com Classified Ads Website

Register New User Page

15

Page 16: ZygurAds.com Classified Ads Website

Login User Popup

16

Page 17: ZygurAds.com Classified Ads Website

Publish Ad UI

17

Page 18: ZygurAds.com Classified Ads Website

Ads List Search

18

Page 19: ZygurAds.com Classified Ads Website

Advanced Search UI

19

Page 20: ZygurAds.com Classified Ads Website

Ads List Page

20

Page 21: ZygurAds.com Classified Ads Website

Displaying Single Ad

21

Page 22: ZygurAds.com Classified Ads Website

Responding to Ad’s Host

22

Page 23: ZygurAds.com Classified Ads Website

Routing Directions Popup

23

Page 24: ZygurAds.com Classified Ads Website

Google Map “Radar Search”

24

Page 25: ZygurAds.com Classified Ads Website

Map Advanced Search Page

25

Page 26: ZygurAds.com Classified Ads Website

Ad Details Page

26

Page 27: ZygurAds.com Classified Ads Website

User Profile Ads Management

27

Page 28: ZygurAds.com Classified Ads Website

User Messages Page

28

Page 29: ZygurAds.com Classified Ads Website

Admin’s Backend Page

29

Page 30: ZygurAds.com Classified Ads Website

Unit Testing

30

Page 31: ZygurAds.com Classified Ads Website

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

Page 32: ZygurAds.com Classified Ads Website

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

Page 33: ZygurAds.com Classified Ads Website

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

Page 34: ZygurAds.com Classified Ads Website

34