C S 462-002
Design Exercise: Purchasing System
Skip To Content
Dashboard
  • Login
  • Dashboard
  • Calendar
  • Inbox
  • History
  • BYU Canvas Info & Help
Close
  • My Dashboard
  • C S 462-002
  • Assignments
  • Design Exercise: Purchasing System
2018 Winter
  • Home
  • Modules
  • Syllabus
  • Assignments
  • Class Notebook
  • Secure Exam Proctor
  • Collaborations
  • Google Drive
  • Office 365
  • Gradescope
  • Credentials
  • Microsoft Teams meetings
  • Lucid (Whiteboard)
  • Library(Links to an external site.)
  • BYU Grievance Policy(Links to an external site.)
  • Support Services(Links to an external site.)

Design Exercise: Purchasing System

  • Due Apr 4, 2018 by 11:59pm
  • Points 13
  • Submitting a file upload
  • Available after Mar 1, 2018 at 12am

For purposes of this exercise, you should attempt to make your design as over-the-top decentralized as you can imagine, The goal is to avoid any form of centralizations whatsoever. 

Scenario

You will be designing a system to make online shopping easier. The user indicates to the system an intent to purchase an item. The system knows some of her preferences, vendor relationships, location, etc. It then submits a request for quote to several different merchants, along with relevant, anonymous information about the user. Each merchant then provides a personalized bid back to the system, based on the information in their own databases and the data provided in the RFQ. The user's system can then process those bids and notify the user about them according to her preferences.

Events

Your solution must use events. Define the types of events you'll need, along with the attributes that must be passed along with them.

User data

What kind of data does the system need to store for the user? How is that data anonymized and passed to the merchants such that it can't be tracked back to the user?

Merchants

How does a merchant gain access to this platform to submit bids? How does a user select which merchants are allowed to make bids on her RFQs?

Decision engine

Every user has different merchant preferences. For example, I may prefer to buy a product from Amazon over some other merchant because I like Amazon, even though it may cost a little more that way. The user must be able to indicate her preferences in some way. You may decide how that is implemented. Some possible schemes are weighting or prioritizing merchants.

Notifying the user

A user can specify how she wants to be notified of new bids (e.g., email, SMS, the next time she visits a web page, carrier pigeon, snail mail, phone call, telegram, etc.).

It should be extensible so that third-party developers can create new ways of notifying the user. That is, you as the original system designer don't have to create the carrier pigeon module yourself.

A user may want to see only the winning bid or multiple bids.

Do This

For each of the following steps, use whatever documentation technique that you think will communicate your plans.

  • Describe the roles of the event network actors. That is, what are the roles that users of the system will have? What functionality is available to each of the roles? Which are the primary use cases.
  • Describe the event model. What events does each party raise? What are their attributes.
  • Describe the persistent state for each of the primary actors in your system and how it’s affected by incoming events. 
  • Describe the user interface for the primary use cases.
  • What external APIs or services will you use?
  • What internal API will you deliver?

Note: You don't have to do these in the order I have here. You may want to do them some other way.

Deliverables

Create a Powerpoint deck with exactly five slides:

  1. Your title and name
  2. Describe the primary roles.
  3. Diagram that actors and the data each keeps
  4. Show the main events and their attributes
  5. Use a tool like swimlanes.io to draw the event flows for your system (concentrate on the primary event flows).  Event hierarchies are discussed in Chapter 12 of the Live Web Download Chapter 12 of the Live Web
    . Here's a swimlane view of the event hierarchy in Figure 3 of Chapter 12 Links to an external site.. 
1522907940 04/04/2018 11:59pm
Please include a description
Additional Comments:
Rating max score to > pts
Please include a rating title

Rubric

Find Rubric
Please include a title
Find a Rubric
Title
You've already rated students with this rubric. Any major changes could affect their assessment results.
 
 
 
 
 
 
 
     
Can't change a rubric once you've started using it.  
Title
Criteria Ratings Pts
This criterion is linked to a Learning Outcome Description of criterion
threshold: 5 pts
Edit criterion description Delete criterion row
5 to >0 pts Full Marks blank
0 to >0 pts No Marks blank_2
This area will be used by the assessor to leave comments related to this criterion.
pts
  / 5 pts
--
Additional Comments
This criterion is linked to a Learning Outcome Description of criterion
threshold: 5 pts
Edit criterion description Delete criterion row
5 to >0 pts Full Marks blank
0 to >0 pts No Marks blank_2
This area will be used by the assessor to leave comments related to this criterion.
pts
  / 5 pts
--
Additional Comments
Total Points: 5 out of 5
Previous
Next
Event Modeling Exercise Reactive Systems Quiz