Description
In this course, you will :
- Learn how to create client-side pages in React.
- Learn how to use Flask to create server-side APIs.
- Learn how to use a database.
- Learn how to use Sphinx to create code documentation.
- Learn the basics of code testing.
- Discover how to deploy an application on Heroku.
- Learn how to create an application from scratch, create a data model, and deploy it.
Syllabus :
1. Basic Client Pages with React
- Setting up the React Application
- A Look at Necessary Files
- Tinker with the Live React App
- Making a Collatz Conjecture Application: String Output
- Making a Collatz Conjecture Application: List Output
- Working With Fonts
2. Dynamic Client-Side Pages with React
- Practical Advantages of React
- Creating Input Elements
- Introduction to Controlled Inputs
- Further Exploring Controlled Inputs
- Global State
3. Server-Side API Creation with Flask
- Why Are Rest APIs Good?
- Conventions for REST APIs
- Python Flask Servers
- Python Decorators
- Flask-RESTPlus Has What You Need
- Fixing Issues
- Managing the Configurations: Set Up ENV Variable
- Managing the configuration: YAML File
- Creating Scripts
4. Database Definition and Creation with SQLAlchemy
- PostgreSQL vs SQLite
- Pros and Cons of SQLAlchemy
- Working With SQLAlchemy
- SQLAlchemy Data Types
- Keys in SQLAlchemy
- Creating Session
- Using Query Method in the Session Object
- Using The Query Method: Filter
- Connecting Multiple Tables
- From SQLite to PostgreSQL
5. Code Documentation with Sphinx
- Compile to HTML: Set Up Sphinx
- Compile to HTML: Important Changes
- Compile to HTML: Make HTML
- Get More reST: Making Changes
- Get More reST: Re-run make HTML
- Get More reST: Adding Files
- Some More Features of Sphinx
- Publish
6. An Introduction to Code Testing
- The Purpose of Code Tests: Clarity of Thought
- The Purpose of Code Tests: Coding in Small parts
- The Purpose of Code Tests
- Unit Testing
- Recommended Tests
- Snapshot Testing
- Making Snapshot Testing Easy
- Integration, User, and Acceptance Testing
7. UI Testing
- Tools for Testing
- Jest Testing
- Your First Test
- Importing and Exporting items
- Writing Unit Tests for Our Application
- Throwing an Error and Testing It
- Why do we Need Storybook?
- Making Custom Stories
- storiesOf() and Placeholders
- Creating Documentation
- Snapshot Testing
- Combining Snapshot Testing and Storybook
8. API Testing
- Interactive Testing: Introduction
- Interactive Testing: Handling Errors
- Using Pytest
- Pytest on Flask: Setting up the Flask App for Testing
- Pytest on Flask: Performing Tests
9. Database Integrity Testing
- Common Issues with Databases
- Invalid Semantics
- Foreign Key
- Foreign Key: Postgres
- Constraints
- Why We Need Integrity Tests
- Integrity Tests
- Integrity Tests: pytest
10. Automatically Testing Every Update
- Hooking the Test into Git: Requirements
- Hooking the Test into Git: Working of Git
- Commands for Testing: React Applications
- Commands for Testing: Flask Application
- Commands for Testing: Documentation
- Commands for Testing: Necessary Details
11. Design a Web Application
- Planning
- Stories and Interactions for the Application
- Design the UI
- Design the API
- Design the Data Model
- Finalizing the Design of Data Model
12. Build the Data Model
- Requirements of Data Model
- Create Tables: Usage
- Construct User and Game Class
- Necessary Updates
- Inspecting the Usage Database
- Build Postgres Database
13. Build the REST API
- Getting Started with the API of Langman
- Reaching Out to the Routes and Database
- POST: Starting a Game
- GET: Seeing Game Status
- PUT: Guessing a Letter
- DELETE: Remove the Game
- Handling Diacritics
- Looking into the Database
14. Build the React Client
- The Front-End of Our Application
- Buttons, Forms, and Panels
- Button Panel
- Form
- Play Again Panel
- Screen Components
- Result Banner
- Usage and Blanks
- The Gallows Component
- Gallows Component: Adding the Body
- Screens: Sign-In
- Screens: Win
- Screens: Lose
- Screens: Play
- App Component: Overview
- App Component: Connecting to the Back-end
- App Component: Changing Screens
15. Finishing Touches for the App
- Play the Game: Error Message
- Play the Game: Dealing with the Error
- A Quick Look Back
- Replace favicon.ico
- Compiling the Documentation
- Creating Some Tests: Approaches
- Creating Some Tests: Things to Check
- Creating Some Tests: Additional Functions
- Creating Some Tests: Checking the Guesses
- Creating Some Tests: Running Tests
16. Web Authentication
- The Role of Data Signatures
- JWT: JSON Web Tokens
- Creating the Authentication Table
- Necessary Changes for Creating the Authentication API
- Creating the Authentication API
- Looking Inside a JSON Web Token
- Necessary Changes for Updating the Langman API
- The Langman API
- Steps to Update the Langman API
- Updating the Client: The Login Screen
- Updating the Client: Functions
- Updating the Client: `flashMessage` Component
17. Deploy the Application
- Installing and Configuring Heroku
- Create Heroku Application
- Prepare the Environment to Support the Database
- Configure the Production Server
- Configure the Proxy Server
- Deploy the Application
- Deploy the Application Yourself