Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Zero To Mastery

Build a Fullstack Twitter Clone with Rust

via Zero To Mastery

Overview

In this project-based course you'll use Rust for both the frontend and backend and gain valuable hands-on experience in building a complete full-stack web app.
  • Build a Twitter clone from scratch using Rust for both frontend and backend
  • Learn various web app capabilities including server software development, URL routing, sessions, hosting static data, API access, and data management using a query builder
  • Create an interactive single-page frontend allowing users to perform actions such as creating posts, uploading images, participating in polls, editing profiles, and bookmarking posts
  • Gain experience in testing the application, modifying the build environment, generating documentation, and diagnosing bugs encountered during development
  • Explore the full potential of Rust programming language in both frontend and backend implementation
  • Acquire hands-on experience in integrating Postgres database through Diesel query builder for compile-time checked data access and IDE auto completion for queries

Syllabus

  •   Orientation
    • Project Demo
    • Project FAQ
    • Project Resources
    • Exercise: Meet Your Classmates and Instructor
    • Set Your Learning Streak Goal
  •   Introduction
    • Tool Installation
    • Design Documentation
    • Viewing Code Changes
  •   User Registration
    • Registration Page
    • Adding a Route
    • Creating the Registration Form
    • Managing State with Hooks
    • Username Input Field
    • Username Handler
    • Password Input
    • Domain Types
    • Username and Password Types
    • Keyed Notifications
    • Keyed Notifications Template
    • Displaying Registration Errors
    • Disabling Form Submission
  •   Application Architecture
    • API Server State
    • API Server CLI
    • API Server Main Function - Part 1
    • API Server Main Function - Part 2
    • Creating a Router
    • Configure Environment
    • Database User ID
    • Database Overview
    • Create New User
    • Routing Layers
    • Endpoint Crate
    • API Error Handling
    • Database Connection Extractor
    • Handling Public API Requests
  •   Finishing User Registration
    • New User Handler
    • Making an API Request
    • Confirming the API Request
    • User-facing Error Messages
  •   User Login
    • Login Page
    • Database IDs
    • Making New Sessions
    • Querying Sessions
    • Performing User Login
    • Creating a Session
    • Frontend User Login
    • Checking User Login
    • Routing to the Home Page
    • Autologin After Registration
  •   Navigation Bar
    • Creating a Navigation Bar
    • Adding Navbar Buttons
    • New Post Popup
  •   Making a New Post
    • Defining Chat Data Types
    • Defining Post Data Types
    • Authorized Requests
    • Generic Authorized Handler
    • Database Types
    • Create a New Handler
    • Endpoint URL Macro
  •   New Chat Page
    • UI Overview
    • Chat Message
    • Chat Headline
    • Validating the Chat
    • Posting a Chat
  •   Toast Messages
    • Setting Up Toast Messages
    • Toast Message Templates
    • Removing Old Toasts
    • Adding Toasts to New Chat
  •   Displaying Posts
    • Public Post Data Type
    • Trending Endpoint
    • Public Post Data
    • Post Query
    • Trending Page
    • Post Manager
    • Populating the Post Manager
    • Content Template
    • Header Template
  •   Post Action Bar
    • Action Bar Template
    • Bookmarking a Post
    • Bookmark Queries
    • Bookmark Status
    • Reaction Query
    • Reaction Endpoint
    • Reaction Button Logic
    • Reaction Button Template
    • Aggregate Reaction Query
    • Current Like Status
    • Boost Queries
    • Boost Endpoint
    • Boost Button Logic
    • Autoreloading the Backend
    • Quick Response Template
    • Quick Response Input Box
    • Checking the Quick Respond Box
  •   Posting Images
    • Saving & Loading Images
    • Generating Image URLs
    • Updating the Content Endpoint
    • Updating the New Post Handler
    • Post Image Template
    • Uploading an Image
    • Previewing Uploaded Images
    • Allowing Large Image Uploads
    • Showing Image Posts
  •   Making Polls
    • Poll Query
    • Poll Endpoint
    • Aggregate Queries
    • Updating The to_public Function
    • New Poll Page
    • Submitting a Poll
    • Adding Choices to a Poll
    • Routing
    • Showing Poll Results - Part 1
    • Showing Poll Results - Part 2
    • Vote Endpoint
    • Vote Handler
  •   Application Bar
    • App Bar Layout
    • App Bar Buttons
    • Add App Bar to New Chat Page
    • Add App Bar to New Image & New Poll Pages
  •   Home Page
    • Home Page Query
    • Like & Bookmark Queries
    • Endpoints
    • Home Page
    • Like & Bookmark Pages
  •   Editing Profiles
    • Profile Endpoint
    • Profile Update Query
    • View My Profile Handler
    • Update My Profile Handler
    • Update Profile Page
    • Image Upload
    • Email Domain Type
    • Email Field
    • Display Name Field
    • Password & Confirmation Fields
    • Disable Submit Button
    • Submitting Profile Info
    • Checking Profile Submission
    • Add App Bar
  •   Viewing Profiles
    • Endpoint
    • View Profile Page & Routing
    • Fetching a User Profile
    • View Profile Template
    • Post View Profile Click Handler
    • Checking the View Profile Page
    • Displaying the Profile Image
    • Follow/Unfollow Endpoint + Backend
    • Follow/Unfollow Fetch
    • Local Profile
    • Populating the Local Profile
  •   Finishing Touches and Bugfixes
    • Sidebar Setup
    • Sidebar Template
    • Sidebar Buttons
    • Sidebar Profile Image
    • Home Page Help Message
    • Fixing Up the Trending Posts Page
    • Return Absolute URLs
    • No Self-Follow & Sync Follow Status
    • Login & Registration Page Links
    • Hide Navigation Bar
    • Show Profile Image at Login
    • Show Messages on Liked & Bookmarked Pages
    • Show Login Errors
    • Better Server Error Messages
  •   Testing
    • Database Testing
    • Running Tests
    • API Testing Utility Functions
    • Writing an API Test
    • Using a Different Test Runner
    • Deployment
    • Fixing Warnings
  •   Where To Go From Here?
    • Thank You!
    • Review This Project

Taught by

Jayson Lennon

Reviews

Start your review of Build a Fullstack Twitter Clone with Rust

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.