personalSite-image

Personal Website

  • HTML
  • CSS
dog-paw-image

Tindog Website

  • Bootstrap navigation bar & grid layout
  • Font awesome
  • Code refactoring
dice-image

Dice Game

  • JavaScript ES6
  • DOM manipulation
  • Creat and calling functions
  • JavaScript control statements
simon-image

Simon Game

  • jQuery
  • JavaScript array object
  • Adding event listener to button
  • Responding to event listener with callbacks
blog-image

Blog Website

  • Node.js
  • Creating server with Express
  • Working with routes
  • Handling requests and responses with GET requests
  • Handling POST requests with Body Parser
todoList-image

Todo List

  • EJS templates
  • MongoDB & Mongoose
  • Passing data between web page and server
  • Rendering, adding, deleting items from database
REST-API-image

RESTful API

  • Chained route with Express
  • Creating RESTful routing with HTTP trusty verbs: GET, POST, PUT, PATCH, DELETE
  • Tackling requests and responses with callback functions
Authentication-image

Authentication & Security

  • Level 1: Register with username and password
  • Level 2: Database encryption
  • Level 3: Hashing
  • Level 4: Salting and hashing with bcrypt
  • Level 5: Cookies and sesssions with Passport.js
React-image

Keeper App

  • JSX
  • React components
  • React props
  • React hooks
  • React forms
Web3-image

DBANK App

  • Web3 decentralised app
  • Query & update with Motoko language
  • Connecting Motoko Back-End and JS Front-End
GitHub Website

© Shunying Zhang.