• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Birdie Design Presentation
 

Birdie Design Presentation

on

  • 2,288 views

My Birdie presentation for CIS591.

My Birdie presentation for CIS591.

Statistics

Views

Total Views
2,288
Views on SlideShare
2,287
Embed Views
1

Actions

Likes
2
Downloads
43
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

Birdie Design Presentation Birdie Design Presentation Presentation Transcript

  • CIS591 DESIGN PRESENTATION
  • BACKGROUND A refresher on the concept
  • COMPANY / SYSTEM BACKGROUND National Marketing Resources / Professional Marketing International • Business development, sales leads, web coaching • Current system, LINKS, is tied to Windows-only desktop clients • New system, Birdie, frees up the user to be on whatever platform they choose (Linux, • Mac, mobile browsers) Implements sales leads tracking, sales company management, report generation •
  • WHAT THE SYSTEM DOES Processing representatives can add leads, lead sources, promotions, company • information Processing reps pass leads on to individual sales companies • Company managers divvy out leads down to divisions, which divvy leads to teams • Teamleaders distribute leads to marketers, who follow up on sales calls with information • about the customer, possibly upgraded lead status Reports can be generated on lead detail, company detail, unit performance, and more •
  • REQUIREMENTS MODELS & MORE Use case diagrams, domain class diagram, and color scheme
  • System Define lead source Create new lead Import external leads USE CASES Define promotion Define marketing campaign Processing Representative Processing Assign leads to Rep lead path Distribute leads to sales company Export lead list Define customer
  • System Distribute leads to sales team Distribute leads to division USE CASES Division Generate lead manager report Managers Generate marketer report Sales manager Generate overall report Sales Assign leads to teamleader marketers
  • System USE CASES Modify lead status Marketers Marketer
  • Domain Class Diagram Benjamin Kreeger LeadSource 1 companyName Product address productName 1 * city productSource * state productPrice Promotion zip productDescription promotionName country productPicture promotionSource phone 1..* 0..1 OrderDetails 0..1 orderID productID qty * * * Lead createDate Order expireDate SalesCompany orderDate customerID companyName DOMAIN CLASS orderCustomerID sourceID address orderTotal promotionID city orderPaymentMethod 1 * 0..1 pipeline state orderDueDate salesCompanyID zip orderPayDate divisionID country 1 * teamID phone * marketerID isInternal DIAGRAM status managerID change_date 1 1 detail 0..1 * * * * Division Person Team divisionName firstName divisionID companyID lastName 0..1 teamLeaderID managerID address * city 1 1 1 1 1 New components and changes are in 1 state zip country phone green 1 0..1 ExtendUser Customer userID age maritalStatus 0..1 0..1 numChildren assets 1 * 0..1 liabilities Manager Team Leader Marketer ProcessingRep managerType commissionRate commissionRate managerID teamID salesCompanyID 1 * * 1 Report name description createdAt createdBy startDate endDate 0..* 0..* 0..* 0..* CompanyReport DivisionReport TeamReport MarketerReport salesCompanyID divisionID teamID marketerID
  • COLOR SCHEME Bronze, brown earth tones with teal selection (and shades of gray)
  • Entity Relationship Diagram Benjamin Kreeger leads_leadsource id INT(11) leads_product auth_user_user_permissions auth_permission auth_group_permissions company_name VARCHAR(100) id INT(11) id INT(11) id INT(11) id INT(11) address VARCHAR(100) name VARCHAR(100) user_id INT(11) name VARCHAR(50) group_id INT(11) city VARCHAR(60) source_id INT(11) permission_id INT(11) content_type_id INT(11) permission_id INT(11) leads_promotion state VARCHAR(2) price DECIMAL(12,2) codename VARCHAR(100) id INT(11) zip_code VARCHAR(10) description LONGTEXT name VARCHAR(100) country VARCHAR(50) picture VARCHAR(100) source_id INT(11) phone VARCHAR(20) leads_orderdetails id INT(11) order_id INT(11) auth_user auth_user_groups auth_group product_id INT(11) id INT(11) id INT(11) id INT(11) quantity DECIMAL(12,2) username VARCHAR(30) user_id INT(11) name VARCHAR(80) first_name VARCHAR(30) group_id INT(11) last_name VARCHAR(30) email VARCHAR(75) password VARCHAR(128) leads_lead is_staff TINYINT(1) id INT(11) leads_order is_active TINYINT(1) create_date DATETIME auth_message leads_salescompany id INT(11) is_superuser TINYINT(1) expire_date DATETIME id INT(11) id INT(11) date DATETIME last_login DATETIME customer_id INT(11) user_id INT(11) company_name VARCHAR(100) customer_id INT(11) date_joined DATETIME source_id INT(11) message LONGTEXT address VARCHAR(100) total DECIMAL(12,2) promotion_id INT(11) city VARCHAR(60) payment_method VARCHAR(10) pipeline VARCHAR(2) state VARCHAR(2) due_date DATETIME django.auth sales_company_id INT(11) zip_code VARCHAR(10) pay_date DATETIME division_id INT(11) country VARCHAR(50) team_id INT(11) phone VARCHAR(20) marketer_id INT(11) is_internal TINYINT(1) status VARCHAR(8) manager_id INT(11) change_date DATETIME detail LONGTEXT django_content_type django_admin_log other django leads_person id INT(11) id INT(11) framework id INT(11) name VARCHAR(100) action_time DATETIME leads_division tables first_name VARCHAR(50) app_label VARCHAR(100) user_id INT(11) id INT(11) leads_team last_name VARCHAR(50) model VARCHAR(100) content_type_id INT(11) name VARCHAR(50) id INT(11) address VARCHAR(100) object_id LONGTEXT company_id INT(11) division_id INT(11) city VARCHAR(60) object_repr VARCHAR(200) manager_id INT(11) teamleader_id INT(11) state VARCHAR(2) action_flag SMALLINT(5) django_site django_session zip_code VARCHAR(10) change_message LONGTEXT id INT(11) session_key VARCHAR(40) country VARCHAR(50) domain VARCHAR(100) session_data LONGTEXT phone VARCHAR(20) name VARCHAR(50) expire_date DATETIME leads_extenduser DETAIL DESIGN DOCUMENTATION leads_customer person_ptr_id INT(11) person_ptr_id INT(11) user_id INT(11) age INT(11) marital_status VARCHAR(20) num_children INT(11) assets DECIMAL(12,2) liabilities DECIMAL(12,2) Technology used, storyboards, database design, input/output design, etc. leads_manager leads_teamleader leads_marketer leads_processingrep extenduser_ptr_id INT(11) extenduser_ptr_id INT(11) extenduser_ptr_id INT(11) extenduser_ptr_id INT(11) manager_type VARCHAR(50) commission_rate DECIMAL(5,2) commission_rate DECIMAL(5,2) manager_id INT(11) team_id INT(11) sales_company_id INT(11) birdie.reports reports_report id INT(11)
  • PYTHON VERSION 2.5 Object-oriented core language
  • DJANGO VERSION 1.1 Model-template-view web application framework
  • MYSQL VERSION 5 Production relational database management system
  • CREATE NEW LEAD STORYBOARD STEP 1
  • CREATE NEW LEAD STORYBOARD STEP 2
  • CREATE NEW LEAD STORYBOARD STEP 3
  • CREATE NEW LEAD STORYBOARD STEP 4
  • CREATE NEW LEAD STORYBOARD STEP 5
  • CREATE NEW LEAD STORYBOARD STEP 6
  • CHANGE LEAD STATUS STORYBOARD STEP 1
  • CHANGE LEAD STATUS STORYBOARD STEP 2
  • CHANGE LEAD STATUS STORYBOARD STEP 3
  • CHANGE LEAD STATUS STORYBOARD STEP 4
  • CHANGE LEAD STATUS STORYBOARD STEP 5
  • GENERATE MARKETER REPORT STORYBOARD STEP 1
  • GENERATE MARKETER REPORT STORYBOARD STEP 2
  • GENERATE MARKETER REPORT STORYBOARD STEP 3
  • GENERATE MARKETER REPORT STORYBOARD STEP 4
  • GENERATE MARKETER REPORT STORYBOARD STEP 5
  • Entity Relationship Diagram Benjamin Kreeger leads_leadsource id INT(11) leads_product auth_user_user_permissions auth_permission auth_group_permissions company_name VARCHAR(100) id INT(11) id INT(11) id INT(11) id INT(11) address VARCHAR(100) name VARCHAR(100) user_id INT(11) name VARCHAR(50) group_id INT(11) city VARCHAR(60) source_id INT(11) permission_id INT(11) content_type_id INT(11) permission_id INT(11) leads_promotion state VARCHAR(2) price DECIMAL(12,2) codename VARCHAR(100) id INT(11) zip_code VARCHAR(10) description LONGTEXT name VARCHAR(100) country VARCHAR(50) picture VARCHAR(100) source_id INT(11) phone VARCHAR(20) leads_orderdetails id INT(11) order_id INT(11) auth_user auth_user_groups auth_group product_id INT(11) id INT(11) id INT(11) id INT(11) quantity DECIMAL(12,2) username VARCHAR(30) user_id INT(11) name VARCHAR(80) first_name VARCHAR(30) group_id INT(11) last_name VARCHAR(30) email VARCHAR(75) password VARCHAR(128) leads_lead is_staff TINYINT(1) id INT(11) leads_order is_active TINYINT(1) create_date DATETIME auth_message leads_salescompany id INT(11) is_superuser TINYINT(1) expire_date DATETIME id INT(11) id INT(11) date DATETIME last_login DATETIME customer_id INT(11) user_id INT(11) company_name VARCHAR(100) customer_id INT(11) date_joined DATETIME source_id INT(11) message LONGTEXT address VARCHAR(100) total DECIMAL(12,2) promotion_id INT(11) city VARCHAR(60) payment_method VARCHAR(10) pipeline VARCHAR(2) state VARCHAR(2) due_date DATETIME django.auth sales_company_id INT(11) zip_code VARCHAR(10) pay_date DATETIME division_id INT(11) country VARCHAR(50) team_id INT(11) phone VARCHAR(20) marketer_id INT(11) is_internal TINYINT(1) status VARCHAR(8) manager_id INT(11) DATABASE DESIGN change_date DATETIME detail LONGTEXT django_content_type django_admin_log other django leads_person id INT(11) id INT(11) framework id INT(11) name VARCHAR(100) action_time DATETIME leads_division tables first_name VARCHAR(50) app_label VARCHAR(100) user_id INT(11) id INT(11) leads_team last_name VARCHAR(50) model VARCHAR(100) content_type_id INT(11) name VARCHAR(50) id INT(11) address VARCHAR(100) object_id LONGTEXT company_id INT(11) division_id INT(11) city VARCHAR(60) object_repr VARCHAR(200) manager_id INT(11) teamleader_id INT(11) state VARCHAR(2) action_flag SMALLINT(5) django_site django_session zip_code VARCHAR(10) change_message LONGTEXT id INT(11) session_key VARCHAR(40) country VARCHAR(50) domain VARCHAR(100) session_data LONGTEXT phone VARCHAR(20) name VARCHAR(50) expire_date DATETIME Entity relationship diagram leads_extenduser leads_customer person_ptr_id INT(11) person_ptr_id INT(11) user_id INT(11) age INT(11) marital_status VARCHAR(20) num_children INT(11) assets DECIMAL(12,2) liabilities DECIMAL(12,2) leads_manager leads_teamleader leads_marketer leads_processingrep extenduser_ptr_id INT(11) extenduser_ptr_id INT(11) extenduser_ptr_id INT(11) extenduser_ptr_id INT(11) manager_type VARCHAR(50) commission_rate DECIMAL(5,2) commission_rate DECIMAL(5,2) manager_id INT(11) team_id INT(11) sales_company_id INT(11) birdie.reports reports_report id INT(11) name VARCHAR(255) description LONGTEXT created_at DATETIME created_by_id INT(11) start_date DATE end_date DATE reports_companyreport reports_divisionreport reports_teamreport reports_marketerreport report_ptr_id INT(11) report_ptr_id INT(11) report_ptr_id INT(11) report_ptr_id INT(11) sales_company_id INT(11) division_id INT(11) team_id INT(11) marketer_id INT(11)
  • SYSTEM CONTROLS Error trapping, validation, and referential integrity
  • ERROR TRAPPING MEASURES Django’s model-layer API handles much of database-access legwork • Most method calls to view layer raise HTTP404 if row(s) not found in database • get_object_or_404(Model, criteria) • get_list_or_404(Model, criteria) • Other measures: Python try/except blocks, explicit raise Http404 calls •
  • DATA VALIDATION THROUGH DJANGO FORMS API Forms either abstract fields from • database or be standalone fields with like-model-field names Forms can ‘clean’ POST data, intelligently • turning text into Python objects (unicode strings, integers, decimals) Validation rules are set in form classes; • cleaning form data validates it (any errors are shown to user in form)
  • DATABASE INTEGRITY Database tables by field designed via Django models layer • Includes specifying all foreign keys (one-to-one, one-to-many, many-to-many • relationships) manage.py syncdb establishes database tables from model classes • Integrity rules carried over into MySQL, SQLite, PostgreSQL, etc. • Any rows with foreign keys referencing deleted rows are also deleted •
  • HELP SYSTEM On-page assistance included on all forms Elaborates on form validation rules
  • SYSTEM DEMONSTRATION Birdie at work
  • FINAL QUESTIONS I wanna hear ‘em