
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Learn to build Rachel, a voice-enabled ChatGPT chatbot in a React and FAST API setup, capable of interviewing, teaching languages, and handling prompts with the human voice from 11 labs.
Meet Sean McDonough, lead developer at Crypto Wizards and CardRatings, who shares his passion for teaching and applying self-taught coding to real-world apps like Rachel Chat.
Explore the course structure from the introduction to a React crash course, environment setup, and building a fast API backend with a React front end for a Rachel chatbot.
Build an end-to-end front-end and back-end chatbot that interacts with chat GPT and delivers a human-sounding voice for diverse use cases.
Build a voice-enabled chatbot backend with Python and FastAPI, integrating OpenAI ChatGPT, Whisper, and 11 Labs for text-to-speech, expose a post audio API, and connect to a React frontend.
Explore the frontend tech stack by building a React-based chat interface with components, JSX, and props, using a root component and reusable child components to manage chat and audio messages.
Master tailwind styling in React using className to quickly turn wireframes into a finished look with color, spacing, and a microphone, enabling hands-on coding and live testing for lean startups.
Access the Rachel chatbot code via exclusive Udemy links and Code Raiders, clone the GitHub repos, and run or tweak the front-end and back-end for a React-based bot.
Recognize that OpenAI API delays stem from high demand, not your code, and observe the backend waiting for responses. Check provider status and retry later when servers slow.
Create a react app with vite using yarn, set up node and vscode plugins, use TypeScript, add Axios, and run a dev server on localhost:5173 to explore components.
Install and configure tailwind in a Vite React project with yarn, initialize tailwind and autoprefixer, configure content for TS/JS files, modify index.css, remove assets and app.css, then run yarn dev.
Build a beatbox React app to teach core React concepts through a simple betting game, showcasing a controller, button, current bet, and prior result components and their hierarchy.
Create your first React component in TypeScript by organizing a components folder, building a controller component with TSX, and importing it into app.tsx to render on the page.
Unpack how the root index.html loads vite, React, and TypeScript, how main.tsx mounts the app and controller, and how components nest, interact with the DOM, and share state.
Build and style a React button component with tailwind, exploring state, className usage, border, padding, rounding, hover, and transitions, then center it in a container and prepare for click handling.
Learn how to pass a parent function to a child component in a React app using props, wire up on click, and manage state with useState to trigger rerender.
Learn to use the useEffect hook to monitor state changes, control re-renders with a dependency array, and trigger side effects by toggling a boolean state.
Structure a bet box with three layers using Tailwind CSS, apply responsive widths and padding, and arrange two buttons in a flex row with justify-between for a polished layout.
Create a reusable React bet button that toggles up and down with green and red states, using hero icons and props from a parent controller with Tailwind styling.
Learn to fetch a random number with axios in a React and FastAPI app, display loading state, and determine a win based on the number and bet direction.
Demonstrates handling a loading state and winner logic in a React and FastAPI app by passing is loading and stored value to the bet box to display loading and winner.
Build confidence with React basics by creating your own components and exploring next steps, as you advance from the course's bonus content to more advanced React capabilities.
Set up Visual Studio Code for this course by installing key extensions like auto close tag, auto rename tag, ES7 React Redux React Native snippets, Prettier, and Tailwind CSS IntelliSense.
Create a Rachel Chat project in the terminal, set up back end (fast API) and front end folders, then open the folder in VS Code and start a terminal there.
Check and set up Python 3.x with pip, verify Node and TypeScript readiness, and install npm and yarn for the React and FastAPI project.
Set up and activate a Python virtual environment in the backend, install key packages (openai 0.27.0, fastapi 0.92.0, uvicorn standard), and run uvicorn with reload to verify locally at localhost:8000.
JSON file contents to copy as package.json
Prepare the front end by booting a React + TypeScript project with Vite, align package.json with exact dependencies via yarn, and install Axios, React MediaRecorder, Tailwind CSS, and PostCSS.
Integrate tailwind css into a react and vite project by initializing tailwind, updating tailwind.config.js, and adding tailwind directives to index.css. Verify styling with yarn dev and prepare for build.
Click on or access the links in this article in order to get your Eleven Labs and Open AI Keys and Open AI Org ID. You will need these for the rest of the course.
Set up a secure .env file to store openai and 11 labs keys, including your openai org id and api key, ensuring private credentials remain protected.
Initialize the backend with imports and cors, set up endpoints to save audio input, convert with OpenAI whisper, fetch responses via OpenAI Chatgpt, update chat history, and expose health checks.
Learn to test FastAPI endpoints with Swagger documentation, using get endpoints like health and wealth and a post audio endpoint for React front-end uploads.
Record a brief voice snippet with an online voice recorder to simulate sending audio to the backend during React development, then save, drag into your project, and test playback.
Learn to convert voice to text using OpenAI's Whisper in a Python backend, including wiring environment variables, calling OpenAI API, and testing transcription of audio files.
Explore prompt engineering for ChatGPT by building a local chat flow with GPT-3.5 Turbo through chat completion, defining system and user roles, and logging conversations in a JSON file.
Decode audio to text, assemble recent messages, and fetch a ChatGPT response via OpenAI's chat completion API using GPT-3.5-turbo, then store and debug the conversation.
Store and retrieve chat messages in stored data.json, filtering recent messages, and append user and assistant messages with roles before saving as JSON. Implement reset messages to clear conversation data.
Explore Eleven Labs api docs to convert text to speech, experiment with voices like Rachel, and call endpoints with an api key to generate audio for a sales chatbot.
Learn to convert a ChatGPT response into a human sounding voice using 11 labs text-to-speech, with Rachel's voice, via a Python function and a fast api endpoint.
Connect a React front end with a FastAPI back end to upload audio, switch to post audio requests, and troubleshoot access, token limits, and code issues for octet-stream responses.
Build a front-end controller component in React to send an audio file to the backend endpoint, receive a decoded audio response, and sustain a conversation.
Build a title component in React that accepts setMessages, uses axios to call a back-end reset endpoint, and updates messages and resetting state to clear stored JSON data.
Polish the chat front end by building a title bar with flex layout, a refresh button, and animated interactions that reset the conversation and display status updates.
Build a bottom-fixed recorder control with full-width, centered text and a sky 500 to green 500 gradient, then implement a recorder component to handle stop and render messages.
Create a record message component using react media recorder to start and stop audio, pass handle stop from the controller, and display recording status in the browser.
Update and animate a record icon component using hero icons microphone and tailwind, so it pulses red when recording and blue otherwise, driven by a status prop.
Record audio in a React app, generate and play blob URLs, convert data into a Blob with audio/mpeg type, and send as form data to a FAST API backend.
Learn how to send audio form data from a React frontend to a FastAPI backend using Axios post to /post-audio, handle blob responses, and render Rachel's audio messages.
Demonstrates full user interaction in a React chat UI, rendering messages with map, conditional styling by sender, and live loading and sending flows for a ChatGPT voice chatbot.
Prepare a production-ready ChatGPT AI voice chatbot by building and starting the front end, running the back end with uvicorn, and implementing live prompt engineering for role-specific prompts.
Demonstrates running a React and FAST API chatbot in dev mode. Teaches one Spanish word per message with Spain facts and explores a Maldives sales use case.
Explore actionable next steps to scale ai voice chat tools, from building a transcription-driven video editor to deploying apps on aws with OpenAI integrations.
Develop a human-like voice assistant with ChatGPT and Eleven Labs to make one of the most advanced Chatbots today so that you can prove that not only will coders survive the AI transition happening right now, but that they will thrive.
With just some basic knowledge on python and javascript, you are going to build Rachel Chat, a chatbot which uses the power of ChatGPT for conversation, whether it be for sales, teaching you Spanish (or any language), talking about sci-fi movies - whatever your interest and application is.
Companies are looking for developers who can build such tools and SAAS startups have a window to be first. If you are curious as to how you can connect new AI technologies to change the world then THIS is the course for you.
You will learn:
How to work with the Open AI API and Eleven Labs API
How to integrate React and FastAPI to build efficient and robust full-stack applications
How to build a voice assistant that actually sounds human (you can even use your own voice)
How to perform prompt engineering so that you can truly leverage and customise the power of AI large language models
We are truly excited to see what you develop, so make sure you share your application with the world.
See you in class!
Shaun