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,
- 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
- 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
- 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
- Lastly, the app would need some sort of authentication, so
- The users can track the items ordered
- The admin’s can upload new items
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
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
- 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.
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
As usual, if you find any of my posts useful support me by buying or even trying one of my apps on the App Store.
My apps: https://mydaytodo.com/apps/
Also, if you can leave a review on the App Store or Google Play Store, that would help too.
0 Comments