Saturday, May 2, 2015

Day 109: Engineering Module Chapter 14 Assignment

O.k., back to chapter 14, as I wrote in my last blog post:

"We have to work with Pivotal Tracker on a Viking shopping cart site.  It's actually pretty cool.  We have three critical goal paths:

1.  View the store's inventory of axes.

2.  Keep track of the axes Viking warriors want to purchase using a shopping cart.
3.  Check out and pay for their shopping cart."

So, here's some sample stories I've noted in past post, to get me in the right mindset:

"Because my employees work all hours, in different time zones, and around the clock, I want the system to be stable."

"As a frequent shopper, I want to purchase with one click so I can buy without hassle."

"As a [reader of this post], I want to [subscribe to your newsletter] so I can [follow your blog]."

They are all in this format:

As a [specific type of user], I want to [accomplish some specific goal] so I can [achieve some benefit].
These are the stories I created for the project (in Pivotal Tracker):

1.  As a shopper, I want to view the current inventory, so I can know what my options are.
2.  As a shopper, I want to have a shopping cart, so I can keep track of my potential purchases.
3.  As a shopper, I want to purchase items in my shopping cart, so I can finish my shopping.

However, going back to the instructions, my stories are basically the critical goals, and the instructions say that these are high level goals, and that we should break them up into stories that are more bite-sized...

O.k.

Working on that, then...

O.k., this is what I have so far (sorry for the formatting, these are just notes).


Viking Warrior Critical Goals for Viking Online Store

1.  View the store's inventory of axes.
2.  Keep track of the axes Viking warriors want to purchase using a shopping cart.
3.  Check out and pay for their shopping cart."

  1. Gather requirements -- think about what the goals above mean and what the users need. Use your judgement to define the scope of the project and what might be included in each iteration (so what are the major development arcs?).

The assignment calls for a minimalist site on which users can view their options, keep track of their selections in a cart, and then check out. We're following KISS principles.

As far as future iterations, they might include:

1. The ability to set up a user account with a login/password.
2. The ability for users to leave simple 1 to 5 star reviews or detailed text reviews.
3. The ability for users to make payment via bitcoin or other forms of viking booty.
4. The ability to make friends with other users via the user review function.
5. The ability to send other users axe recommendations.
6. The ability for the site owners to send emails updating Vikings on the latest axes.
7. The ability for the site to remember a Viking's financial information (via a user account), for an expedited checkout process.
8. The ability to rotate images of inventory to get views of items from any angle.

  1. Break down the project into stories -- specify the stories in the "As a... I want to... So I can..." format. Include acceptance criteria in each story that defines any edge cases you can think of which need to be covered by the story's developers (for this assignment it's good to be more detailed than you might with a real user story just so you get the practice thinking about the edge cases). Organize large groups of related stories into epics (they can be tagged with the epic in Tracker).

Critical Goal 1: View the store's inventory of axes.
1.  As a shopper, I want to have clear, large images of axes to select from, so I can get an accurate view of what I could buy.
Acceptance Criteria:
1. The images should have high resolution.
2. The images should take up 60% plus of the screen.
2. As a shopper, I want to have a wide selection of axes, so I can compare many different axes.
Acceptance Criteria:
1. All kinds of axes should be in inventory, including at least 25 variants of each of these: double-headed axes, single-head axes, double-hand axes, and single hand axes.
3. As a shopper, I want to have access to the most technologically advanced axes, so I can have an edge over my competition.
Acceptance Criteria:
1. Axes that have won awards in "Viking Technology Today" should be included in inventory.
2. Axes using the latest metallurgical techniques, even if only available for pre-order, should be included in our inventory.

Critical Goal 2: Keep track of the axes users want to purchase using a shopping cart.
1.  As a shopper, I want to have a cart, a place to store selections, so I can keep track of my potential purchases.
Acceptance Criteria:
1. A database should be able to add and retain the user's selections while the user is on the site.
2. As a shopper, I want to be able to remove selections previously placed in my cart, in case I change my mind.
Acceptance Criteria:
1. The shopper should be able to click on a "remove" link and the item should be removed from the cart.
3. As a shopper, I want the cart to keep a tally of the total cost of items inside the cart, so I stay within my budget.
Acceptance Criteria:
1. The cart should maintain an updated tally of items in the cart, adding and subtracting from the total when items are added/removed.

Critical Goal 3: Check out and pay for their shopping cart.
1. As a shopper, I want to be able to purchase items in my shopping cart with a credit card, so I can finish my shopping.
Acceptance Criteria:
1. Our checkout system should be able to accept payment from major credit cards.
2. As a shopper, I want to be able to purchase items in my shopping cart with debit cards, so I can finish my shopping.
1. Our checkout system should be able to accept payment from debit cards from the top banks.

  1. Determine the points values for the stories -- you don't need to go overboard because you probably don't know enough yet to make a very informed decision but try to guess how difficult each of the stories might be. It'll be interesting to go back later and see if you were right.
  2. Prioritize the stories -- if you had to start developing this today with limited time and budget, what are the most critical to get done?
Here's what my Pivotal Tracker looked like after I entered in the stories, assigned them point values, ranked them, and "completed" some of them by having the owner accept them (to make the burn chart show some completed stories).




The project was worthwhile and I got to play with Pivotal Tracker!  What a great day!  I also managed to squeeze in watching the Mayweather-Pacquiao fight!  I took my mac with me to the the restaurant and drank like seven unsweetened iced teas while I watched the fight.  :)  

I was pretty dehydrated, I didn't realize it, but the coffee from the last couple of days had really gotten to me, I woke up today feeling sore all over.  I'm going to avoid the coffee for a bit now, it always end up dehydrating me, and then I get a headache unless I drink a lot of water, which I sometimes neglect to do. 

SUMMARY OF CODING SKILLS

Total Treehouse Points: 5,385

Treehouse Points by Subject Matter (Miscellaneous not included): 
HTML:                                663 
CSS:                                1,599 
Design:                            1,193 
Development Tools:            747 
Javascript:                      1,120

Treehouse Ranking (%): "You have more total points than 94% of all students."

Treehouse Badge(s) Earned Today:



Treehouse Courses Completed:
How to Make a Website
HTML
CSS Foundations
CSS Layout Techniques
Aesthetic Foundations
Design Foundations
Adobe Photoshop Foundations
Adobe Illustrator Foundations (66% complete, switched focus from web design to web dev)
Git Basics
Introduction to Programming
Javascript Basics

Codecademy (& other) Courses Completed:
HTML and CSS (Codecademy) 

Books Read or in Progress:

Completed: "Head First HTML and CSS," by E. Robson & E. Freeman
In Progress: "Eloquent JavaScript," by Marijn Haverbeke (On pg 27)
In Progress: "Head First Javascript," by Eric Freeman and Elisabeth Robson (On pg 56)
In Progress: "A Smarter Way to Learn Javascript," by Mark Myers (on pg 72)

My Progress on The Odin Project:
1.  Introduction to Web Development             100% Complete
2.  Web Development 101                                29% Complete
3.  Ruby Programming                                       0% Complete
4.  Ruby on Rails                                               0% Complete
5.  HTML5 and CSS3                                           0% Complete
6.  Javascript and JQuery                                  0% Complete
7.  Getting Hired as a Web Developer                 0% Complete

Hours Spent Coding Today: 4.5
Total Hours Coding: 518

No comments:

Post a Comment