Series of projects which I plan on building for the next 30 days without fail 🤨
Built a Binary 2 Decimal converter
- I learned the 
parseInt()function and how it takes in string/number argument and returns an integer of the specifiedradix(the base in mathematical numeral systems) - In the above app I passed a 
radixorbaseof 2 specifying functions should return a Decimal value 
- I should've added regex validation for the input field rather than 
alerting a message when keycode is not0 or 1 
Built a Border Radius Previewer
- I learned the 
getComputedStyle()method and how it returns an object containing the values of all CSS properties of an element, after applying active stylesheets and resolving any basic computation those values may contain. - In above project I used 
getComputedStyle()to get current styling properties ofborder-radiuswhich I was able to target through thegetPropertyValue()method 
- Maybe I should've used functions to change border styling instead hard coding values 😅
 - Also I should've added the ability to copy the border-radius property on click
 
Today I built a calculator (I was barely able 😅)
- I learned about the 
eval()method evaluates JavaScript code represented as a string 
- I initially started out thinking of implementing switch cases for each operation, but eventually I got lazy and used the 
eval()function to return the calculated result 
Built a GitHub Profile loader, used GitHub users API 😃
- I learned not to be lazy 😅, learned about GitHub Users API
 
- Should've added better error handling operation. A better way to handle DOM manipulation
 
Built a Markdown Previewer
- Learned about the 
markedpackage which I used to convert raw text into markdown syntax 
- I took a break of two days, just wasn't feeling like coding anything at all
 - Should've been more focussed and determinant
 - Also I felt like I should've built my own Markdown parser
 
Built a Rock Paper Scissors Game. Used design resources from @frontendmentorio challenge
- Learned about rules of Rock Paper Scissors Game, there wasn't much in tech I could learn programmatically
 
- Maybe simplified how we toggle UI elements
 - Store the score in 
localStorageand make it persistent - Add animation to DOM manipulation
 
Built a Color Scheme Toggler
- Learned about color schemes, how we can use it in our applications etc
 
- Should've used CSS variables to defines primary/secondary colors
 - Store the toggles mode in 
localStorageto make it persistent and render it whenever we load the page 
Built a Random Meal Generator
- Learned about the 
themealdbAPI, and how we can use this API to build apps for food-related stuff 
- Should've added CSS transition for smooth animation
 
Built a Random Programming Quote Generator
- Learned about Programming Quotes API which provides tons of options to load programming-related quotes.
 
- Make more accessible UI (voiceOver)
 
Built a simple FAQ accordion
- Not much actually, this project is me trying to do a come back from a long gap
 
- I should be more consistent
 
Built a simple pagination component
- Learnt a bit about array manipulation
 
- Built a complex pagination UI with multipage support
 
Built a random cat facts page
- Learnt about cat-facts endpoint which returns a random fact about cats
 - Re-used the same functional code in 2 differnt event handlers
 
- NA
 
Built a table of content generator from the html markup present in the page
- Learned about how we can add/append multiple child node to an element in DOM using 
appendChildmethod 
- Auto highlight table of content links whenever user scroll down the page showcasing the progress of the page
 
Built a Tooltip element
- Used 
mouseover&mouseleaveevent listeners - Learned about 
remove()built-in method to remove any child node from the dom tree - Started using querySelector to select element with different attributes
 
- Should've applied the positioning of the tooltip automatically using the elements placement in the page
 - Added some transition to the tooltop
 
Built a search box component
- Learned about 
Element.replaceChildrenmethod, which replaces the existing children of a Node with a specified new set of children. 
- NA
 
Built a feedback form component
- Learned about querySelector option to select input fields with same name attribute
 - Learned about how to select immediate sibling of element and apply style to it using 
+adjacent selector 
- Use some endpoint to post the feedback data asynchronously
 
Built a cookie popup component
- Learned about 
document.cookie, how we can use it in any JS projects 
- Made some static changes when a cookie is stored
 
Built a modal component
- Learned about 
currentTargetof click event and how we can use it to check of which element is being clicked at the moment 
- Add some animation to the modal
 
Built a URL shortner
- Learned about 
*:hover:enabledand*:hover:dinabledCSS pseudo-selectors to add hover state style when element is disabled on enabled 
- NA
 
Built a Menu component
- Nothing new! 
☹️  
- Component should've been dynamic
 - Should've used 
insertAdjacentElementmethod to add menu node to DOM - Should've added option to close menu when focus is moved away from the button
 
Built a Timeline component
- Nothing new 🥲
 
- Should've added transition
 
Built a Tabs component
- Learned about 
Element.classList.add(),Element.classList.remove()andElement.classList.toggle()functions - Used 
Element.classList.addandElement.classList.removeto toggle active tab 
- Should've added transition
 - Should've tried to simplify class change using 
Element.classList.toggle()function 
Built a Carousel component
- Learned about 
Element.previousElementSibling,Element.firstElementChild,Element.nextElementSiblingandElement.lastElementChildproperties - Used above element properties to handle change in active carousel
 
- Should've cleaned transitions
 
Built a Random Quiz App
- Tried something new! Used 
filter: blur()CSS property to showcase the data loading effect 
- Should've disabled the form when data is loading
 
Built a Emoji Picker with a slight pop up animation
- Tried something new 🔥
 - Used 
insertAdjacentElementmethod to insert emoji list to DOM - Used 
Math.random()to generate few unique position points in DOM for emoji drop animation 
- NA, I feel okay with overall result
 
Built a Word highlighter
- Used some of the 
transformcss properties 
- Need to learn more about 
transformandanimationproperties 
Built a Like Heart Button ✨
- Learnt a bit about 
svgand how we can use it to create interactive icons/button etc. - Used some of the 
transformcss properties for repositioning some elements 
- Maybe I should've stored the like count in localStorage, I felt it wasn't required at this point in time.
 
Built a Drawer Component 📑
- Used 
transform: translatX()css properties to hide/unhide drawer section 
- NA
 
Built a Toast Notification
- Used 
transform: translatX()css properties to hide/unhide toast section 
- NA
 
Built a Drag n Drop handler
- Learnt about drag events and how we can use em to build drag effects
 
- Should've added some animations
 

          
          
          
          

          
          

          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          