Skip to content

Latest commit

 

History

History
812 lines (674 loc) · 54.4 KB

resources.md

File metadata and controls

812 lines (674 loc) · 54.4 KB

My Dev Resources

  • The crash course in each section is the bare minimum that should be done.
  • The resources have been aligned in a logical manner that should be followed.

Table of Contents

My Resources

Prerequisites

Front End

HTML

CSS

JS

Misc #1

Git and GitHub

Web Design

Browser DevTools

NOTE: The DevTools are similar in almost all browsers, so the above resources are fine.

Accessibility

Documentation

Rendering Patterns

PWA (+ Service Worker API)

Networking

RegEx

SVG

Intersection Observer API

IndexedDB

Web Components API

Misc Libraries

  • Color Thief - Grab the color palette from an image using JS. Works in the browser and in Node.js.

TWA

General Back End Prerequisites

HTTP

JSON

APIs

Async JS

Caching

CORS

Cookies

AJAX and its libraries

JWT

  • Crash course
  • Session vs Token Authentication in 100 Seconds
  • What Is JWT and Why Should You Use JWT?
  • Why I haven't been using JWT tokens for Authentication (Ben Awad)
  • A JWT demo using the flask-jwt-extended package.
  • JWTs are for authorization and not authentication. (Username and password provide authentication.)
  • Refresh Tokens
    • What Are Refresh Tokens and How to Use Them Securely
    • How to Handle Refresh Tokens
    • Refresh Tokens are tokens with a longer expiry duration than Access Tokens.
    • If the Refresh Token is expired, then the user has to manually log in.
    • They are used to
      • Reduce the number of explicit logins that the client has to make.
      • Reduce the load of querying/storing authorization details in the database every time a user needs access.
    • There is a tradeoff between security and database storage/querying.
      • If better security is required, the Refresh Tokens need to be stored in the database and marked as expired once a new one is issued. This increases database querying, but improves security and still maintains the convenience of less number of logins for the client.
      • Another way to provide security would be to issue a new Refresh Token every time a new Access Token is issued, but this increases the number of Refresh Tokens that have to be stored in the database (to expire them later as discussed in the previous point). So database storage is increased, but this improves security and still maintains the convenience of less number of logins for the client.
        • Storing Refresh Tokens is still better than storing a Session Token, because a Session Token is checked every time an API call is made. Now if there are too many Refresh Tokens, database storage increases and querying takes time, but that is a trade off that has to be decided upon.
        • A hybrid approach can be taken, where a Session Token (as a short-lived JWT) can be issued and stored in the database along with a Refresh Token and so the Session Token does not have to be checked with the DB on every request. A new Session Token can be issued whenever it expires, using the Refresh Token.

Databases

SQL

NoSQL

JS Back End

Node.js

Express.js

JS REST API

Python Back End

Prerequisite

Flask

PHP

Prerequisites

PHP REST API

Front End JS Frameworks/Libraries

Prerequisites

Misc
JavaScript
State
XML

React.js

Misc #2

Web Performance

SEO

robots.txt

Firebase

  • BaaS
  • Documentation (More than sufficient. Also, do watch the videos linked in the docs.)

DevOps

Git
Shell Scripting
Build Systems
Deployment/Hosting
YAML
CI/CD
  • GitHub Actions
  • GitLab Actions
  • Jenkins
  • TravisCI
  • Circle CI
Docker
Cloud

The Missing Semester of CS Education

Character Sets and Encoding

Unicode
New Lines/Line Endings
Misc Characters

C

Linux