What's up, everyone?
If you're looking to build an e-commerce app with search capabilities,
secure online payments, and interactive customer support,
stick around. I've got you covered in this episode.
Our guests are the co-founders of Access79.
From Jacksonville, Florida, Priyanka,
and from Philadelphia, Pennsylvania, Geena.
Before starting Access79, Geena worked at Chanel
as the director of communications,
and Priyanka practiced law.
They share a love of overpriced cocktails,
but their true passion
is making luxury jewelry more accessible online.
Let's hear about what they want to build.
So essentially, we're trying to bridge the gap
between shopping in-store and shopping online.
So if you've ever shopped in-store for fine jewelry,
it can be a really overwhelming, intimidating experience.
Usually there's a commissioned
salesperson following you around.
It feels very high pressure.
I started sending jewelry to my customers.
So my great customers, I would just send them
a box of jewelry to try.
And what I found is not only did I make these customers happy,
but I saw that my sales went up
because I think the experience was so much better
than the alternatives that they were experiencing,
which were shopping in-store and shopping online.
A client comes to our site,
they take the style quiz.
We ask them for their email.
It's a pretty abrupt experience.
And frankly, we haven't got
many of our clients digitally.
Most of them are acquired through a high-touch manner.
So we know that to grow on the scale,
we really need to improve the digital experience.
So we have gone out and figured out what our clients want,
and we just need the technical expertise
to help us do that.
Priyanka and Geena want to survey their customers
to find out what jewelry they like.
The survey results will provide tailored jewelry recommendations
that are available for purchase.
Customers can also set up a time
to talk to a stylist.
To build this app, you'll start with AWS Amplify.
Amplify is an open source framework
designed to simplify building web
and mobile apps in the cloud.
It allows you to take advantage of the cloud
without having to know the names of the underlying services.
I suggest using the AWS Amplify Command Line Interface
because it manages the cloud resources in your project.
Amplify is going to provision the wiring form,
backend logic, access to our database,
storing our front end code,
and delivering content to customers.
After you set up your application,
you'll want to add authentication.
Writing your own authentication code
often leaves security vulnerabilities
or is just too time-consuming.
Cool thing is that Amplify has an authentication module
that is quick to set up without compromising security.
I highly recommend it--
solid gold.
Now that we have authentication figured out,
let's go back to building this application.
Geena and Priyanka want to have a survey
to understand the kinds of jewelry
that their customers want.
To create the survey functionality,
you'll use APIs that interact with the database.
First, create the API to get and store
questions and answers with Amplify.
Next, use AWS AppSync, since AppSync
manages and synchronizes your data in real-time.
Amazon AppSync simplifies application development
by letting you create a flexible API
to securely access data from one or more data sources.
Simply write the GraphQL queries,
and poof, AppSync takes care of reading and persisting data
to Amazon DynamoDB, a NoSQL database.
For DynamoDB, you'll use one table
for more than one content type.
So your jewelry, orders, and users will be in one table.
If you like the sound of AppSync, don't worry.
You can use it with all of the services
in this architecture today.
After a user takes the survey,
the app will show them jewelry tailored to their interests.
AWS Lambda will process the results of the quiz.
Lambda is a serverless compute service
that allows you to run code based on events
and without having to manage servers.
Not having to manage servers
gives you a lot more time for drinking cocktails.
With the results from the quiz,
Lambda will make the request to Amazon Elasticsearch
to get jewelry that fits the customer's criteria.
Amazon Elasticsearch is a managed service of Elasticsearch,
the open source search and analytics database.
Elasticsearch achieves fast responses
because it searches an index
instead of the text directly.
This is like retrieving pages in a book related to keyword,
by scanning the index, as opposed to
searching every word of every page.
When configuring Amazon Elasticsearch,
you'll partition your data into shards.
It is important to set the shard count correctly.
If you have less than 30 gigabytes of data in your index,
I recommend using one shard.
Now the customer has all the information they need
to buy the necklace they love.
The next part of building the application
is to process purchases.
You can also use AppSync to your backend
with a Lambda resolver.
All that means is that Lambda will handle the transaction.
The API passes clients who made a purchase request
to a Lambda function.
Our friends at Access79 are currently using Stripe
to process the customers' credit cards.
Whether you're using Stripe, another payment processor,
or processing payments yourself,
you can use Lambda resolvers as the backend logic
to charge the customer's credit card.
Once the charge is successful, cha-ching.
You can record the transaction in a relational database.
To understand purchase trends,
you'll want to run analytical queries
against a powerful relational database.
Amazon Aurora is a great choice.
It is a highly scalable relational database
which you can use with AppSync.
Next up, Priyanka and Geena want to give their customers
the ability to chat with a stylist.
AWS has two services that simplify making a chat app,
Amazon Lex and Amazon Connect.
Lex allows you to make conversational chatbots.
With Lex's automatic speech recognition and natural language processing,
you can gather as much information
about what your customer is looking for
before talking to the stylist.
You can also use a bot to answer commonly asked questions,
which means less wait times to talk to a stylist
and happy customers.
Amazon Connect will be the mechanism
to facilitate a conversation with a stylist.
Connect is a service that simplifies
spinning up a contact center.
I love that an assistant often overlooks configuration settings,
such as toll-free numbers for other countries,
hours of operation, caller ID,
and fancy hold music.
When the customer clicks on the 'Contact a Stylist' button,
the application will make a call to AppSync
and trigger a Lambda function that invokes Lex.
Lex will gather information from the customer,
and as soon as the customer is ready to talk to a stylist,
Lex will trigger a Lambda function
to pass along the details of the conversation to Connect
so the stylist has the customer's information.
The next step is hosting your application.
With the Amplify CLI, run the command Ad Hosting,
and it will load your app into an Amazon S3 bucket
with Amazon CloudFront
as the content delivery network for user access.
CloudFront will speed up the delivery of your content
to your users.
And that's how you build an e-commerce app.
I know, we covered a lot,
so let's have a nightcap.
I mean, let's do a recap.
The Amplify framework is a quick way
to build a cloud application.
It provides you the tools to add authentication,
databases, APIs, and backend logic.
To collect survey information about your customers,
use DynamoDB.
Search functionality on a website will be powered by Elasticsearch.
Record and analyze purchase transactions in Aurora.
For customer support or a concierge service,
create a chatbot with Lex.
Amazon Connect gives you the mechanism
to talk to a live person.
All of the backend logic is made with Lambda resolvers.
Use AppSync to connect all these services together.
Host your app in an S3 bucket
with CloudFront as your CDN.
And that's how you can build
a luxurious e-commerce application.
Thanks again to Priyanka and Geena.
I can't wait to see you light up the jewelry industry.
Now it's time for you to build your e-commerce app.
It doesn't matter when you start,
as long as you just get started.
Thanks for hanging out with me today.
See you next time.