Over the last few years of managing My Day To-Do, I have often engaged in client-projects, just to keep the ball rolling in the event MDT’s sales have a slower than expected month. Hence, we have a new client project, however what’s different this time is that, it’s not a solution to an internal problem but more along the lines of a publicly available solution.

I working with a startup called 10Point2 who’s business is to sell, hand-made African Jewelry and cricket bats using websites such as Gumtree and Facebook. Lately, business is picking up and they now want to give their buyers a more customized shopping experience. They spoke to me about this problem and I offered them a solution, which I will discuss here. Actually,  this is the first part in a series of posts where I will briefly discuss what my proposed solution is and define the requirements to implement it.

Wait, did you say Cricket bats?

Yes indeed! One of the things they sell are cricket bats, for those of you who don’t know? Cricket is (originally) a British sport that you will only find interesting if you grew up with it i.e. you grew up in a country that plays cricket. You can try to look it up but I am 95% certain that you won’t see a single thing about it that’s either interesting or exciting. In fact, you may just question what’s wrong with people who grew up in places such as Australia, England or India, that enjoy Cricket! Let me try and summarize what the game is, as John Cleese would say,  it’s a game where Australia can play against England or India for 5 days and it can still be a draw! I think that’s a pretty spot-on summary of the game and now we can talk about the solution.

Solution

Given my expertise, when they told me about wanting to offer a customized shopping experience to their buyers, naturally, the first thing that came to mind was a mobile app. They liked the idea of a mobile shopping app, they realize a majority of the people these days are on their phones. The co-founders of 10Point2 have day jobs in which one of them works at a bank, the other works at Apple and also does YouTube makeup videos. Hence, the idea of building a mobile app wasn’t a tough sell at all, I think they knew what I was going to suggest.

Before going into the requirements, one of the things to note is the deadline or a date for an ideal launch. You see, in Australia, we have what we call “the summer of cricket” and summer’s coming. That means, from December to March every year in addition to going to the beach, there are lots of cricket being played for us to see. It’s the best time of the year!!!!!

Requirements

There isn’t a lot of time left till summer so we need a solution fast, hence I will most likely stick to my strengths for this project i.e. build a Hybrid app using the Ionic Framework. Anyway, let’s have a quick summary of what an app like this needs,

  1. It needs page or screen that lists all the items for sale that the user can buy
    • In addition to seeing an item picture
    • The user can access the item name, description and price
    • The user can also select which color they want the item in
    • The use can add items to purchase to their shopping cart
  2. The user can change the order in which the items are listed, by,
    • Price in ascending/descending order
    • Name in ascending/descending order
    • Or by category
  3. They can tap a button to buy the item after which, they
    • will need to provide their credit card details (payment) and a shipping address
  4. Lastly, the app would need some sort of authentication, so
    • The users can track the items ordered
    • The admin’s can upload new items

Like the blog? Subscribe for updates

Structuring the Data

Some of this may seem trivial but stay with me on this one, the details are important.

Let’s start by picking out some of the keywords from the problem definition above, i.e. user, category, item, color, order, shopping cart and payment. For this project, I am thinking of using a NoSql Data base for storage, so I won’t be showing an entity relationship (ER) diagram here. (I really miss creating ER diagrams, loved doing them during my consulting work) Instead, I will just list each object and it’s properties

User

id

name

email

shipping_address

user_type

Item

id

name

description

price

category

[color]

Category

id

name

description

parent_category

Order

id

item_id

user_id

shipping_address

order_date

Payment

id

amount

user_id

item_id

Color

id

name

hex

Shopping Cart

user_id

[item]

expiry

 

I think all of the above is fairly self-explanatory. The only things I think I need to clear up are,
  • In the user object, the user_type means, the user can be either a user or an admin, the difference is, that the admins can add items, categories and modify item details etc
  • The [color] in an item would be a list of Color objects
  • We could have sub-categories so, a category may have a parent-category
  • Lastly and probably the most important thing for an e-commerce app is shopping cart. It has a user id with an array of item objects. I have thought about putting an expiry date but I am not entirely sure if I should do so? what do you think? please leave a comment below

Other than that, I wonder, am I still thinking in terms of a relational database? Maybe, in my head at least, because to a point, I still think of foreign keys and one-to-many or one-to-one relationships.

Like the blog? Subscribe for updates

App Sections or Pages

This is just the initial assessment of what I think it should be in the first prototype. I aim to build an MVP in the next 2 weeks i.e. by end of August and discuss it with the co-founders. In the first build, the app will have

Sidemenu

With the options,

Login/User Details

Home

Jewelry

Bats

Past orders

Logout

Login

Enter credentials and click login

or Click, browse products and browse

List

Which shows all the items

Has sorting controls

Item display with image, price and a more details button

 

Item Details

Name

Item Description

Quantity

Larger size image

Price

Buy/add to cart button

Shopping Cart

Item list

buttons to instantly remove items or checkout

 

Conclusion

I think that should be enough for part 1 of this series of posts. Looking at a problem from a top-down view and drill down into details is a habit I have developed over the years. I like doing that because doing that gives me some clarity and perspective on the problem I am solving.

In the next part of this post, I will dig deeper into some of the technical requirements and some of the external 3rd party API knowledge I need to acquire to build this.

You can look at 10Point2’s current Facebook site here

  1. 10Point2
  2. 10Point2Sports

As usual, if you find any of my posts useful, support us by  buying or even trying one of our products and leave us a review on the app store.

‎My Day To-Do - Smart Task List
‎My Day To-Do - Smart Task List

‎Snap! I was there
‎Snap! I was there
Developer: Bhuman Soni
Price: $3.99
Numbers Game: Calculation Master
Numbers Game: Calculation Master
‎Simple 'N' Easy Task List
‎Simple 'N' Easy Task List
‎Captain's Personal Log
‎Captain's Personal Log
Developer: Bhuman Soni
Price: $4.99
My Simple Notes
My Simple Notes
Developer: Bhuman Soni
Price: Free

Leave a Reply

Your email address will not be published. Required fields are marked *