
Explore the newest and easiest React Native stack as you build a full stack mobile app, setting up the backend with Azura and Hassira Console, implementing authentication and graphical queries.
Explore building a to-do app with user and tattoo data, define one-to-many relationships, and implement authentication and access control using Hassira, Azura, Graft, and Apollo client.
Kick off the wrap-up by sharing your post-course app ideas in the discussion board and set goals to stay excited about learning the newest and easiest React Native stack.
Set up your backend with a PostgreSQL database on Digital Ocean. Claim a $50 credit over 30 days via the referral link and start for free, then a $5/mo plan.
After signing up, create a Digital Ocean droplet via the QuickStart guide, bookmark the page, choose the five dollar plan in San Francisco, add a new key, and click create.
Explore Hasura console to manage a Postgres database on a droplet, create tables with a primary key and text fields, and run queries, mutations, and subscriptions in the graphical interface.
Secure your GraphQL endpoint by setting an admin secret in the docker compose YAML, then pass the secret in request headers to access the API.
Set up the back end on digital ocean and secure endpoints. Create a mutation to insert a to-do item that says paint a happy little Scott, and explore graphical queries.
Create an Auth0 application by signing up on the Ask Zero dashboard with Google, create a native app named taboo, and configure the callback URL and JWT integration.
Configure the auth0 callback URL and create rules to run on authentication, including assigning the user role for permissions, then test login in the next lecture.
Test the Auth0 login flow by configuring domain, client ID, and callback URL; sign up with Google and verify the id token. Plan for production by using development keys.
Configure Hasura to use Auth0 keys by updating the JWT config, copying the domain from settings, setting an environment variable on a DigitalOcean droplet, and saving the container.
Learn how Hasura access control rules work with JWT mode, using admin secret, authorization header and id token to access data, and configure user permissions to enable select queries.
Set up authentication without zero, configure Hassira to use zero keys, and create a user-role access control rule; for the challenge, add a delete rows permission to explore permissions.
Create a user table with id and name columns, establish a user_id relation, and add a created timestamp using now, then reset data for a fresh setup.
Build one-to-many and one-to-one relationships between users and tattoos, enforce foreign keys with user_id, track relationships in a graphical api, and run queries with admin permissions.
Learn how to configure permissions for the users and tattoos tables using custom checks against the session user ID, covering insert, select, update, and delete operations.
Learn to set up the expo workflow for react native, test on simulator or device, and use expo features like over-the-air updates and cross-platform camera and location access.
Explore the auth overview by outlining components, setting is_logged_in, requesting a token when not logged in, and calling login to render the to-do list in the main app.
Implement front end authentication using a useState flag to toggle between an off component and a main component, wiring a login button with onLogIn and prop-types checks.
Implement a real login using Auth0 in an Expo app, configure client id and domain, open an in-app browser for authentication, decode and store the ID token securely.
Implement session persistence by checking the stored ID token on mount with useEffect, verify expiration, and update isLoggedIn; add a logout button that deletes the token and triggers onLogout.
Learn to set up and configure Apollo client for a React Native app, including endpoint, bearer token authorization, provider setup, and state management for authenticated requests.
Fix a token bug by moving login logic into a handleLogin function, calling it on first render, removing isLoggedIn state, and updating prop types to pass token to components.
Sync new users to the database by detecting logins and inserting them with a GraphQL mutation, using Apollo client and Hasura, guided by an off namespace rule.
Create a to-do list in a React Native app with a to-do item and a flat list, and fetch todos with the Apollo useQuery getTodos query, handling loading and errors.
Guide quick cleanup: implement logout with token deletion from secure store, standardize constants to all caps, replace loading text with an activity indicator, and order to-dos by created at descending.
Learn to implement mutations in a React Native app by adding and updating to-dos with useMutation, refetching queries, and automatic cache updates using Apollo Client.
Build the frontend for a to-do app by setting up a Riak native project using XPO, implementing authentication, and enabling fetch, insert, update, and delete of todos.
Celebrate finishing the course and inspire learners to build mobile apps with Hassira backend, authentication, table relationships, and GraphQL queries and mutations using the Apollo client.
Discuss common bloopers while using react hooks to implement user authentication and table permissions, with tools like Azura, XPO, and Apollo client, and navigating a complicated back end.
Would you like to create a full-stack React Native app with minimal back-end effort? In this course, you’ll learn how to set up an EASY online GraphQL + Postgres database for your mobile app, with no backend code, using Hasura.
After taking this course, you will know how to:
Create an online database with Hasura, complete with table relationships and user permissions,
Implement authentication with Auth0,
Set up your React Native project with Expo so you can test your app on your phone,
Insert, update, and delete data with GraphQL,
useQuery and useMutation like a boss! Apollo Client's React hooks are hawt
Figure out which nerdy references your teacher is making
****************************************
"I'm amazed by how things could be explained that well and to the point in such a short time. I loved the style, keep it up Sezgi, you are awesome!" - Ebru
"There's actually a lot more going on here than I expected, from editing Docker images, to setting up social-media authentications. A lot of moving parts, yes, but she explains it all very well and I didn't get lost at all. A real solid class!" - August
"I took the course mostly to learn setup a simple backend. The setup with Hasura turned out to be even easier than I expected, and I was able to do it without any hiccups. Pacing of the course is also very good, and the instructor is entertaining to listen to." - Baris
"At first I thought this was just going to be an intro to a couple things I need to learn, RN and GraphQL. Yay, both in one place! But actually this is the funniest thing I’ve ever seen. Is this actually an art project? Who is this person and why is she not teaching us the meaning of life? More please" - Michael
****************************************
Here’s what people are saying about Hasura:
"Holy mother of god @HasuraHQ is a game changer. Automatic #GraphQL over @PostgreSQL with permissions, webhooks on db changes, N+1 query optimization, admin for tables/relationships, migrations, etc. Any front end dev can deploy via docker and have a back end running in 10 mins." - @PierB
****************************************
Can I take this course as a beginner?
Probably. This is NOT a fundamentals course, but I've added a lecture called "Todo app overview" in the Welcome section to make it more beginner-friendly. Give it a try! If you find this course to be too advanced, you can always get a refund. If you’re new to React Native or GraphQL, and want to learn the basics, I’d recommend taking individual courses for each one. Here you’ll learn how to put it all together into an easy stack.
****************************************
What makes this course different?
In this course, you will:
- Save tons of time and energy from not having to build out a complicated back-end,
- Transform your mobile development experience, so you can focus on writing front-end code,
- Learn in a fun and engaging environment.
****************************************
I’m looking forward to getting to know you, and celebrating all the mobile apps you’ll build.
Let’s jump-start your mobile stack and create awesome apps together.