Tindog Website
- Bootstrap navigation bar & grid layout
- Font awesome
- Code refactoring
Dice Game
- JavaScript ES6
- DOM manipulation
- Creat and calling functions
- JavaScript control statements
Simon Game
- jQuery
- JavaScript array object
- Adding event listener to button
- Responding to event listener with callbacks
Blog Website
- Node.js
- Creating server with Express
- Working with routes
- Handling requests and responses with GET requests
- Handling POST requests with Body Parser
Todo List
- EJS templates
- MongoDB & Mongoose
- Passing data between web page and server
- Rendering, adding, deleting items from database
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 & 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
Keeper App
- JSX
- React components
- React props
- React hooks
- React forms
DBANK App
- Web3 decentralised app
- Query & update with Motoko language
- Connecting Motoko Back-End and JS Front-End