My 100 Days of Code Journey (2021)
Tags: 100daysofcode
Published: 2023-09-15 06:03:25

# 100 Days of Code Challenge

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/%23100DaysOfCode%20-%20Dark%20design.png" alt="100 Days of Code" />
</p>

[100 Days of Code Challenge](https://www.100daysofcode.com/) is an initiative I am commiting to take, where I will be spending each day working on problem solving and personal projects to improve my skills and push my boundaries.

After two failed attempts, I'm coming back by publicly committing to the 100DaysOfCode Challenge starting today! 

I'm going to follow Two Main Rules:
1. Code a minimum of an hour every day for the next 100 days.
2. Tweet your progress every day with the #100DaysOfCode hashtag

My Exceptions:
- If I break the streak, I will make sure that I won't break it the next day
- My Community work, and few emergencies demands to take a day off

[#100DaysOfCode](https://100DaysOfCode.com) 


## Useful Links

- For Daily updates, follow me on:

    <a href="https://www.linkedin.com/in/aswin-barath/">
    <img align="left" alt="ashwin's LinkedIn" src="https://img.icons8.com/bubbles/50/000000/linkedin.png"/>
    </a>

    <a href="https://github.com/AswinBarath">
    <img align="left" alt="ashwin's GitHub" src="https://img.icons8.com/bubbles/50/000000/github.png"/>
    </a>

<br>


---


## Goals

- [x] [Learn Software Development](#learn-software-development)
- [x] [Solve problems on Data Structures and Algorithms](#solve-problems-on-data-structures-and-algorithms)
- [x] [Build Projects around Software Development](#build-projects-around-software-development)
- [x] [Build JU Query platform for university students](#build-ju-query-platform-for-university-students)
- [x] [Community Work](#community-work)

---


### Learn Software Development

#### Learn Java Software Development 
- [x] Java Core Concepts
	- [x] Object Oriented Programming in Java - [Day 9](#day-9), [Day 10](#day-10)
	- [x] Collections Framework - [Day 28](#day-28), [Day 30](#day-30)
	- [x] Generics - [Day 28](#day-28)
	- [x] File Handling - [Day 28](#day-28)
	- [x] Exception Handling - [Day 28](#day-28)
	- [x] Concurrency and Multi-Threading - [Day 29](#day-29), [Day 30](#day-30)
	- [x] JDBC - [Day 31](#day-31)
	- [x] Lambda Expressions and Stream API (Functional Programming) - [Day 32](#day-32), [Day 35](#day-35), [Day 36](#day-36)
- [x] Object-Oriented Design - [Day 38](#day-38), [Day 70](#day-70)


#### Learn Full-stack Development 
- [x] JavaScript - [Day 8](#day-8), [Day 13](#day-13), [Day 16](#day-16), [Day 17](#day-17), [Day 20](#day-20), [Day 42](#day-42)
- [x] ReactJS & ReduxJS - [Day 46](#day-46), [Day 60](#day-60), [Day 61](#day-61), [Day 67](#day-67), [Day 69](#day-69), [Day 70](#day-70)
- [x] Firebase, - [Day 33](#day-33), [Day 34](#day-34)
- [x] NodeJS, - [Day 49](#day-49), [Day 51](#day-51), [Day 59](#day-59), [Day 67](#day-67)


---


### Solve problems on Data Structures and Algorithms

- [x] Data Structures
	- [x] Arrays - [Day 1](#day-1), [Day 2](#day-2), [Day 3](#day-3), [Day 11](#day-11), [Day 13](#day-13), [Day 23](#day-23), [Day 26](#day-26), [Day 50](#day-50), [Day 64](#day-64)
	- [x] Strings - [Day 23](#day-23), [Day 65](#day-65)
	- [x] HashMaps - [Day 4](#day-4), [Day 13](#day-13), [Day 15](#day-15), [Day 23](#day-23), [Day 50](#day-50), [Day 64](#day-64)
	- [x] Stacks - [Day 14](#day-14), [Day 60](#day-60), [Day 68](#day-68)
	- [x] Queues - [Day 68](#day-68)
	- [x] Linked Lists - [Day 22](#day-22), [Day 23](#day-23), [Day 24](#day-24), [Day 27](#day-27), [Day 55](#day-55), [Day 56](#day-56), [Day 57](#day-57), [Day 73](#day-73), [Day 74](#day-74), [Day 75](#day-75), [Day 77](#day-77), [Day 78](#day-78)
	- [x] Trees - [Day 32](#day-32), [Day 37](#day-37), [Day 86](#day-86)
	- [x] Graphs - [Day 66](#day-66)
	- ❌ Heaps
	- ❌ Tries

- [x] Algorithms
	- [x] Sorting - [Day 26](#day-26)
		- [x] Insertion Sort
		- [x] Selection Sort
		- [x] Bubble Sort
		- [x] Count Sort
		- [x] Merge Sort
		- [x] Quick Sort
	- [x] Searching
		- [x] Linear Search
		- [x] Binary Search - [Day 26](#day-26), [Day 45](#day-45), [Day 47](#day-47), [Day 48](#day-48), [Day 50](#day-50), [Day 52](#day-52), [Day 62](#day-62), [Day 82](#day-82)
		- ❌ BFS
		- ❌ DFS
	- [x] Recursion, Backtracking - [Day 26](#day-26), [Day 39](#day-39), [Day 78](#day-78), [Day 83](#day-83)
	- [x] Dynamic Programming - [Day 53](#day-53), [Day 54](#day-54)
	- [x] Two pointers - [Day 64](#day-64), [Day 78](#day-78), [Day 79](#day-79)
	- [x] Greedy - [Day 64](#day-64), [Day 65](#day-65), [Day 80](#day-80), [Day 81](#day-81)
	- ❌ Bit Manipulation
	- ❌ Mathematical problems

- [x] Solved Python Challenges [Day 5](#day-5), [Day 58](#day-58)
- [x] Solve Hackerrank Challenges in Java - [Day 15](#day-15)


---


### Build Projects around Software Development
- [x] Build Full-stack Apps
	- [x] Clothing e-commerce application - [Day 69](#day-69), [Day 70](#day-70)
- [x] Build ReactJS Web Apps
	- [x] Build a Portfolio Website - [Day 7](#day-7)
	- ❌ Build a LinkedIn Clone - [Day 46](#day-46)
	- [x] Build a Tesle Landing Page Clone - [Day 60](#day-60), [Day 61](#day-61), [Day 67](#day-67)
- [x] Build NodeJS Microservices
	- [x] Login Microservice - [Day 51](#day-51)
	- [x] Event Timeline Page - [Day 59](#day-59)
	- [x] Real-time Twitter Streaming App - [Day 67](#day-67)
- [x] Build Vanilla JavaScript Projects - [Day 40](#day-40), [Day 41](#day-41), [Day 47](#day-47), [Day 58](#day-58)
	- [x] Event Timeline Page - [Day 59](#day-59)
	- [x] Joke Teller - [Day 63](#day-63)
- [x] SQL Injection & Prevention Project - [Day 51](#day-51)
- [x] IMDb Web Scrapper - [Day 6](#day-6)
- [x] Eco Monitor IoT Project 
	- [x] Light Intensity Sensor project - [Day 12](#day-12)
	- [x] Eco Monitor - Visualizations of Sensor data project - [Day 12](#day-12)


---


### Build JU Query platform for university students
- [x] JU Query Features - [Day 43](#day-43), [Day 44](#day-44)
	- [x] Add Authentication components
		- [x] Google OAuth
		- [x] Facebook OAuth - [Day 43](#day-43)
	- [x] Homepage components
		- [x] Add Query component
		- [x] Answer Query component
		- [x] Show Answer component
	- [x] Basic Routing - [Day 73](#day-73), [Day 76](#day-76)
	- ❌ Topic-specific components
	- ❌ User Profile components
	- ❌ Create Event specific components
	- ❌ Create User and Admin Roles
	- ❌ Add ML recommendation engine component
	- ❌ Create Admin Dashboard


---


### Community Work

- [x] JavaScript Roadmap I - The Basics Event - [Day 8](#day-8), [Day 16](#day-16), [Day 17](#day-17), [Day 21](#day-21)
- [x] Event Timeline Page (Community Project) - [Day 59](#day-59)
- [x] JavaScript Roadmap II - DOM Manipulation Event - [Day 65](#day-65)
- [x] [Git and GitHub Event](https://github.com/AswinBarath/Git-and-GitHub-Basics) - [Day 71](#day-71)
- [x] [JavaScript Roadmap III - EcmaScript Event](https://github.com/AswinBarath/javascript-roadmap-ecmascript) - [Day 72](#day-72)


---


## 100DaysOfCode Day-to-Day Progress

## Day 1

- Solved 6 frequently asked Interview Problems on Array Data Structure:
  - Next Permutation
  - Pascal's Triangle II
  - Pascal's Triangle
  - Set Matrix Zeroes
  - Merge Intervals
  - Maximum Subarray

My Leetcode profile: [aswinb](https://leetcode.com/aswinb/)


## Day 2

- Solved 8 Problems on Array Data Structure at Leetcode and GFG:
  - Count Inversions
  - Buy and Sell stocks
  - Rotate Image
  - Search in 2D Matrix
  - Search in 2D Matrix - II
  - Determine Whether Matrix Can Be Obtained By Rotation
  - Majority element - I
  - Majority element - II

My Leetcode profile: [aswinb](https://leetcode.com/aswinb/)


## Day 3

- Solved 2 Problems on Array Data Structure at Leetcode:
  - [Reverse Pairs](https://leetcode.com/problems/reverse-pairs)
  - Most frequently asked Google SDE problem: [Unique Paths](https://leetcode.com/problems/unique-paths)

My Leetcode profile: [aswinb](https://leetcode.com/aswinb/)


## Day 4

- Revised Hashmaps and Generics concepts in Java
- Solved Two Sum problem using Hashmaps at Leetcode

My Leetcode profile: [aswinb](https://leetcode.com/aswinb/)


## Day 5

- Solved python challenges based on Object oriented programming

Python Challenge: [Challenge - 1](https://github.com/AswinBarath/Python-challenges#challenge-1)


## Day 6

- Built an IMDb web scrapper to generate the data of top 5 IMDb rated Movies and top 10 IMDb rated directors using Beautiful soup

Project Repository: [IMDb web scrapper](https://github.com/AswinBarath/IMDb-web-scrapper)

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/IMDb%20web%20Scapper.png" alt="IMDb web Scapper" width="800px"/>
</p>


## Day 7

- Built my personal portfolio website -> https://aswinbarath.me/
- Deployed on Netlify hosting platform
- And set up a custom domain using namecheap service


## Day 8

- Worked on the presentarions for JavaScript Basics Event ✍
- Created basic code snippets for understanding JavaScript Basics 💪
- Started off with the week with vaccination 💉


## Day 9

- Took some rest for after effects of vaccination 💉🛌
- Revised the concepts of Java programming and Operating Systems


## Day 10

- Revised Operating Systems
- Hands-on practice on Java programming in Eclipse IDE


## Day 11

- Solved basic array problems from GFG Practice platform ✍
- Explored problem solving tracker project built with react and typescript


## Day 12

- Built an IoT project "Eco Monitor" - Light Intensity Sensor project🍀
- Performed data analystics using visualization to display sensor data 📈📊📉
- Explored the Bolt IoT Cloud platform

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day8-14/Light_Intensity_Monitor.jpg" alt="Light_Intensity_Monitor" width="400px"/>

<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day8-14/Area%20Graph%20Sensor%20Data.png" alt="Area graph sensor data" width="400px"/>

<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day8-14/Bolt%20IoT%20Eco%20Monitor%20Gauge%20visualization.png" alt="Guage data visual" width="400px"/>
</p>


## Day 13

- Solved Regular expression challenges in JavaScript from Hackerrank 🧾
- Learnt more about Generics with wildcards
- Practices Hackerrank problems on Generics
- Solved the problem Largest subarray with zero sum

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day8-14/Hackerrank%2010%20days%20of%20JS.png" alt="10 Days of JS" width="400px"/>

<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day8-14/Hackerrank%2010%20days%20of%20JS%20silver.png" alt="10 Days of JS" width="400px"/>
</p>

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day8-14/GFG-largest0sum.png" alt="SDE problem from GFG" width="800px"/>
</p>


## Day 14

- Built a Stack Data Structure using Java 📚
- Learnt more about objects, methods, dependencies 🕵️‍♀️
- Learnt basics of Spring framework (Java) 🍃

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day8-14/Stack%20DS%20code.png" alt="Stack DS" width="400px"/>
</p>

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day8-14/Hello%20world%20in%20Spring%20Framework%20-%20Java%201.png" alt="Spring hello world code" width="400px"/>

<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day8-14/Hello%20world%20in%20Spring%20Framework%20-%20Java%202.png" alt="Spring hello world output" width="800px"/>
</p>


## Day 15

- Solved a SDE Hashing problem
- Brushed up Java skills with 30 Days of Code Hackerrank challenge

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day15/Hackerrank%2030%20days%20of%20code%20silver.png" alt="Hackerrank 30 days of code silver" width="800px"/>
</p>


## Day 16

- Worked more on JS Roadmap Basics event presentations and code snippets
- Solved few Python Challenges
- Attended Saturday's LeetCode contest
- Attended an Interview round on the topics: SQL, Algorithm and Data Structures


## Day 17

- Completed the JavaScript challenges from 10 Days of JS
- Successfully conducted JavaScript Roadmap - The Basics event
- Shared about 10 Days of JS challenge in my JS Roadmap Basics event

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day16-17/10%20Days%20of%20JS%20silver%204%20star.png" alt="Hackerrank 10 Days of JS silver" width="400px"/>

<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day16-17/10%20Days%20of%20JS%20gold%205%20star.png" alt="Hackerrank 10 Days of JS congrats message" width="400px"/>
</p>

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day16-17/10%20Days%20of%20JS%20gold%205%20star%20badge.PNG" alt="Hackerrank 10 Days of JS Gold badge" width="800px"/>
</p>


## Day 18

- Gained more knowledge about SSH and basic commands
- Learnt new concepts from Operating Systems
- Solved several SDE (frequently asked) Interview problems from GFG practice platform


## Day 19

- Solved CSS challenges from freeCodeCamp's Responsive Web Design course
- Learnt new concepts from Operating Systems


## Day 20

Disentangled JavaScript Algorithms and Data Structures course from freeCodeCamp for the past three days:
- Solved more challenges on Regular expressions using JavaScript
- Completed JavaScript debugging challenges
- Check out the JavaScript tutorials on Regular expressions to learn from basics to advanced regex statements by solving real-world challenges: [Regex challenges at FCC0](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/#regular-expressions)

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day18-20/FCC%20JS%20regex%20challenges%2066.png" alt="FCC JS regex challenges 66" width="400px"/>

<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day18-20/FCC%20JS%20regex%20challenges%20100.png" alt="FCC JS regex challenges 100" width="400px"/>
</p>

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day18-20/FCC%20JS%20debugging%20challenges%20100.png" alt="FCC JS debugging challenges 100" width="400px"/>

<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day18-20/FCC%20JS%20debugging%20challenges%20100%20(2).png" alt="FCC JS debugging challenges 100 (2)" width="400px"/>
</p>


## Day 21

- Wrapped up the JS Roadmap Basics event
- Shared the code files and Git Repositories with my community
- Deployed the code on Repl.it platform


## Day 22

- Revised and learnt the concepts: OOPs, Stacks, Queues, Linked lists
- Attended **Gatsby v2 (Intermediate) workshop from Front-end masters**


## Day 23

- After solving various problems on Arrays, Strings and Hashmaps:

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day21-24/Key%20Pair%20gfg.png" alt="Key Pair GFG" width="400px"/>

<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day21-24/Length%20of%20the%20longest%20substring%20GFG.png" alt="Length of the longest substring GFG" width="400px"/>
</p>
<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day21-24/Container%20with%20most%20water%20gfg.png" alt="Container with most water GFG" width="400px"/>

<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day21-24/Trapping%20rain%20water%20gfg.png" alt="Trapping rain water GFG" width="400px"/>
</p>

- Pulled off a deep dive in Linked list data structure and learnt more about:
	- What is a Linked list?
	- Need for Linked list
	- Arrays VS Linked list
	- Types of Linked list
	- Linked list operations
	- Types of problems
- [Linked lists GitHub Repository](https://github.com/AswinBarath/Linked-lists)

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day21-24/Linked%20lists%20docs.PNG" alt="Linked lists docs.PNG" width="800px"/>
</p>

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day21-24/Node.png" alt="Node in LL" width="800px"/>
</p>

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day21-24/SinglyLL.png" alt="Singly Linked List code" width="800px"/>
</p>

- Attended an Interview round which included Computer Science concepts, problems on Data Structures and Algorithms, case studies on SQL with Schemas, RDBMS and system designs


## Day 24

Solved few problems based on Linked list at Leetcode and GFG
- Reverse a Linked list
- Middle of a Linked list
- Even nodes after odd in Linked list
- [Linked lists GitHub Repository](https://github.com/AswinBarath/Linked-lists)

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day21-24/Reverse%20LL.png" alt="Reverse LL" width="400px"/>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day21-24/ReverseLL.PNG" alt="Reverse LL leetcode" width="400px"/>
</p>

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day21-24/Middle%20Of%20LL.png" alt="Middle Of LL" width="400px"/>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day21-24/MiddleOfLL.PNG" alt="Middle Of LL leetcode" width="400px"/>
</p>

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day21-24/Leetcode%20LL%20odd%20even%20segregation.png" alt="Segregate odd and even node in LL leetcode" width="400px"/>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day21-24/Segregate%20odd%20and%20even%20node%20in%20LL.png" alt="Segregate even and odd node in LL GFG" width="400px"/>
</p>

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day21-24/Rearrange%20a%20linked%20list.png" alt="Rearrange LL GFG" width="800px"/>
</p>


## Day 25

- Brainstormed new ideas for JU Query project
- Took part in Phase 0 Project discussion
- Spun up the Repo for JU Query and provided neat documentation with Markdown language
- [JU Query Repo](https://github.com/AswinBarath/ju-query)
- [JU Query Deployed Link](https://ju-query.web.app/)


## Day 26

- Revised the problem solving concepts of Arrays, Sorting, Recursion
- Learnt about basic problem solving using Binary Search


## Day 27

- Learnt more about problem solving techniques for Linked lists


## Day 28

- Constructed a project - Stock Analysis using Java that employs the following ideas:
	- File Handling
	- Generics
	- Collections Framework
	- Exception Handling
	- Try with Resources and AutoClosable Interface

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day25-30/1%20Stock%20analysis.png" alt="Stock analysis" width="800px"/>
</p>


## Day 29

- Practiced 3 different ways to start a thread in Java
- Learnt the concepts of Thread safety and Synchronization
- Practiced thread safety and synchronized blocks in Java
- Used concurrent collections for implementing thread safe Java programs


## Day 30

- Revised the concepts of Collections Framework
- Started learning about Producer Consumer Pattern
- Deciphered challenges in Hackerrank on Exception Handling using Java

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day25-30/2%20Hackerrank%20Java%203%20star.png" alt="Hackerrank Java 3 star" width="400px"/>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day25-30/3%20Hackerrank%20Java%20Exception%20Handling.png" alt="Hackerrank Java Exception Handling" width="400px"/>
</p>


## Day 31

- Executed a concurrent producer-consumer pattern using Java
- Operated with ArrayBlockingQueue collection
- Obtained knowledge on Thread pools
- Engaged Executor Framework to perform tasks using spawned thread pools
- Overview on Java Database Connectivity (JDBC)
- Installed MySQL for Java
- Connected a database using JDBC


## Day 32

- Grasped the concepts of Lambda expressions in Java
- Got the hang of the Functional programming paradigm implemented in Java 8
- Exercised converting methods into lambda expressions
- Designed custom Functional interfaces to operate with lambdas
- Pulled off a swift dive in Tree data structure and learnt more about:
    - Introduction and terminologies in a Tree
    - Types of Binary Trees
    - Types of Tree Traversals
    - Representation of Binary Tree in Java

[Trees Repo](https://github.com/AswinBarath/Trees)


## Day 33

- Refactored React hooks for JU Query project
- Uncovered more about the Firebase platform

Learn more about firebase from my blog posts:
- [What is Firebase?](https://aswinbarath.github.io/What-is-Firebase/)
- [Core Firebase Services](https://aswinbarath.github.io/Core-Firebase-services/)
- [Accessing Firebase Services](https://aswinbarath.github.io/Accessing-Firebase-services/)


## Day 34

- Deep dive into Firebase Firestore service
- Built a real-time dynamic chat application using firebase
- Deployed onto production using firebase hosting
- Fixed a production bug in the public directory

- Built a Image sharing application using firebase
- Deployed onto production using firebase hosting


## Day 35

- Practiced more on Lambda expressions using Java
- Gained more knowledge about Built-in Functional Interfaces in Java
- Learnt about default implementation in Functional Interfaces, a new feature from Java 8 
(This new feature was introduced to support new functional programming abilities from Java 8)


## Day 36

- Practised Lambda Expressions with Streams
- Completed the Practical Java Development Course, this is what I learnt:
	- The Collections Framework
	- Generics
	- Concurrency and Multithreading in Java
	- Java Database Connectivity (JDBC)
	- Lambda Expressions 
	- The Stream API


## Day 37

- Solved Tree traversals: Inorder, Preorder, Postorder

<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/Day%2037%20Tree%20traversals.PNG" alt="Tree traversals on Leetcode" width="800px"/>
</p>


## Day 38

- Getting started with Object-Oriented Design (OOD) and Low-level Design (LLD).
- Revisited Objects, Methods and dependencies.
- Learnt more about Dependency Association, Composition Association and Aggregation Association through Java coding examples.


## Day 39

- Assessed my recursion skills in Java @HackerRank

	- Solved: Recursive Digit Sum
	- Solved: Fibonacci Numbers

- Can you complete the challenge? 
	- https://www.hackerrank.com/interview/interview-preparation-kit/recursion-backtracking/challenges


## Day 40

- Back to basics by refactoring a project repository: Book Information
- Resolved 4 issues from the project which include code refactoring, README update, and icon
- Reviewed my pull requests and merged them into the master branch
- Updated the entire codebase with bootstrap design inputs
- Complete directory restructure
- Followed naming conventions and best practices
- Well documented README
- Project: https://github.com/AswinBarath/Book-Information
- Here's the git history:
<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day40/day40.png" alt="Book information git history" width="800px"/>
</p>
- Checkout the project demo over here: 
<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day40/Book%20Information.gif" alt="Book information Demo" width="800px"/>
</p>


## Day 41

- Back to basics by refactoring the project repositories: Book Information 2.0, Robot Friend and Image portfolio
- Resolved 14 issues from the projects which include code refactoring, README update, and demo
- Reviewed my pull requests and merged them into the main branch
- Updated the entire codebase with bootstrap design inputs
- Complete directory restructure
- Followed naming conventions and best practices
- Well documented README
- Here are the project links
	- https://github.com/AswinBarath/Book-Information-2.0
	- https://github.com/AswinBarath/robot-friend
	- https://github.com/AswinBarath/Image-portfolio
- Checkout the project demos over here: 
<p>
<img src="https://raw.githubusercontent.com/AswinBarath/Book-Information-2.0/main/assets/Book%20Information.gif" alt="Book information 2.0 Demo" width="800px"/>
</p>
<p>
<img src="https://raw.githubusercontent.com/AswinBarath/robot-friend/main/assets/Robot%20Friend.gif" alt="robot-friend Demo" width="800px"/>
</p>
<p>
<img src="https://raw.githubusercontent.com/AswinBarath/Image-portfolio/main/assets/Image%20Portfolio.gif" alt="Image-portfolio Demo" width="800px"/>
</p>


## Day 42

- Solved JavaScript Strings and Arrays exercises from Front-end masters:

	- [Exercise tweet 1](https://twitter.com/AswinBarath2/status/1435647332813393928?s=20)
	- [Exercise tweet 2](https://twitter.com/AswinBarath2/status/1435657732607004673?s=20)

## Day 43

- Added Facebook OAuth feature to JU Query project
- Fixed bugs and improved web-app performance
- Refactored the React functional components

## Day 44

- Fixed production bugs
- Improved the design
- Refactored the React components
- gzipped the app for optimized production and deployed the bug fixes


## Day 45

- Learnt more about Binary Search and its importance
- Gained new knowledge on optimization of Binary Search:
	- Improvement in finding middle element
	- Order-agnostic Binary Search
- Repository:
	- https://git.io/JuSnw

## Day 46

- Learning more about Functional Components in React
- Started project-based learning through building LinkedIn clone:
	- Set up and built the header components
	- Worked on Sidebar components


## Day 47

- Solved 4 problems on Binary Search
	- Repo: https://git.io/JuSnw

- Refactored, Documented and Optimized 3 front-end projects
	- Repo: https://git.io/JuSnD


## Day 48

- Solve 3 problems on Binary Search - Easy, Medium, Hard
	- Peak index in Mountain array
	- Find Peak Element
	- Find in Mountain array

- Repo: https://git.io/JuSnw


## Day 49

- Solved 10+ API based challenges using NodeJS and ExpressJS from freeCodeCamp

	- GitHub Repository: https://git.io/JuAl6
	- Always On Repl: https://replit.com/@ashwin26/nodejs-expressjs-scripts?v=1
	- Live link: https://nodejs-expressjs-scripts.ashwin26.repl.co/


## Day 50

- Solved 3 problems on the topics Arrays, Hashing and Binary Search at Leetcode
	
	- Maximum Subarray
	- Contains Duplicate
	- Search in Rotated Sorted Array


## Day 51

- Worked on 2 projects:
	- Simplistic Login Microservice built with NodeJS & ExpressJS
		- [GitHub Repo](https://git.io/JzTxW)
		- [Live link](https://login-microservice-fcc.herokuapp.com)
		- Optimized the project
		- Documented the code and readme
	- SQL injection which demonstrates attacks using malicious SQL queries
		- [GitHub Repo](https://git.io/JzTN4)
		- [Live link](https://sql-injection-and-prevention.herokuapp.com)
		- Refactored the project
		- Updated documentation


## Day 52

- Solved 10 problems using 3 variations of Binary Search at LeetCode 


## Day 53

- Explored patterns in Dynamic Programming (DP) problems
- Solved the problems similar to Fibonacci problem using DP:
	- Climbing Stairs
	- House Robber
- Repository: [Dynamic-Programming](https://github.com/AswinBarath/Dynamic-Programming)


## Day 54

- Solved problems from 2 Dynamic Programming (DP) patterns:
	- Min Cost Climbing Stairs
	- Partition Equal Subset Sum
- Repository: [Dynamic-Programming](https://github.com/AswinBarath/Dynamic-Programming)


## Day 55

- Solved problems on Linked lists based on 2 patterns:
	- Reverse the given Linked list
	- Remove Nth Node from the end of the list (Runner pattern - also known as Tortoise-Hare)
- Repository: [Linked-lists](https://git.io/Jz4T7)


<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day55/Day55 LL.PNG" alt="Day55 LL" width="600px"/>
</p>


<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day55/Day55 LL 1.png" alt="Day55 LL 1" width="400px"/>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day55/Day55 LL 2_2.png" alt="Day55 LL 2_2" width="400px"/>
</p>


## Day 56

- Solved 3 problems on Linked lists:
	- Delete a node in a linked list
	- Add two numbers I & II
- Refactored the Java Packages, Formatted the code, and fixed all of the bugs
- Generated self-sustaining templates for problems
- Repository: [Linked-lists](https://git.io/Jz4T7)


<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day56/LeetcodeDay56.PNG" alt="Day56 LL" width="800px"/>
</p>


<p>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day56/Delete a node in a linked list.png" alt="Day56 LL 1" width="300px"/>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day56/Add two numbers.png" alt="Day56 LL 2" width="250px"/>
<img src="https://raw.githubusercontent.com/AswinBarath/100-days-of-code-challenge/master/assets/day56/Add two numbers ii.png" alt="Day56 LL 3" width="250px"/>
</p>


## Day 57

- Solved 3 problems on Linked Lists:
	- Remove Linked List Elements
	- Merge Two Sorted Lists
	- Return Kth Node From End of List
- Added more packages and documentation
- Repository: [Linked-lists](https://git.io/Jz4T7)


## Day 58

- Updated the configuration in the JavaScript Repos:
	- authenticated-todo-app
	- nest-js-api
- Added more Python Challenges on various topics such as:
	- data structures, map, lambda,filter, zip, reduce, decorators, generators, file handling & exception handling
- [Python programming challenges](https://github.com/AswinBarath/Python-challenges)


## Day 59

- Built an Event timeline web app for Codecademy JU Chapter Community
- Deployed the web app on top of Repl it using NodeJS and ExpressJS
- [Event Timeline web app](https://event-timeline.ashwin26.repl.co/)
- [Join Codecademy JU Chapter](https://community.codecademy.com/jain-university-ju/)
- [GitHub Repository](https://github.com/AswinBarath/Event-Timeline)
- Web App Demo

<p>
<img src="./assets/Event Timeline.gif" alt="Event Timeline" />
</p>


## Day 60

- Implemented the Stack Data Structure in 4 ways:
	- Stack Implementation using Arrays
	- Generic Stack Implementation
	- Stack Implementation using Linked Lists
	- Stack in Collections Framework
- [Stacks Repository](https://github.com/AswinBarath/Stacks)
- Continued project-based learning through building Tesla clone:
	- Set up and built the homepage component
	- Worked on Section components for reusability
- [Repository](https://github.com/AswinBarath/tesla-clone)


## Day 61

- Added Header component in the Tesla React Clone App
- Used Hamburger Menu from Material UI
- Applied media-queries for Dynamic display.
- [Repository](https://github.com/AswinBarath/tesla-clone)


## Day 62

- Solved a couple of problems on Binary Search
- Structured the problems into 3 templates of Binary Search
- Documented a list of Easy, Medium and Hard problems from the same topic
- Repository: https://git.io/JuSnw


## Day 63

- Built a Joke Teller web app using
	- JokeAPI (RESTful)
	- Text-to-Speech API (VoiceRSS)
- [Repository](https://git.io/JgyzX)
- [Deployed Link](https://aswinbarath.github.io/Joke-teller/)

- Updated Arrays data structure repository
- [Repository](https://git.io/Jgyg0)


## Day 64

- Solved two problems using Java in Brute force and Optimal ways
	- Two Sum `HashMaps`, `Two Pointers`, `Arrays`
	- Container With Most Water `Two pointer`, `Greedy`, `Arrays`
- Solved a problem from LeetCode Contest
	- Convert 1D Array Into 2D Array `Arrays`, `Matrix`


## Day 65

- Solved two problems from LeetCode Contest:
	- Find Missing Observations `Greedy`, `Strings`
	- Minimum Moves to Convert String `Strings`
- Taught DOM Manipulation as part of JavaScript Roadmap event at Codecademy JU chapter


## Day 66

- Revised the Theoretical concepts of Graph Data Structure
- Updated GitHub Profile README with a new look
- [Graphs Repository](https://github.com/AswinBarath/Graphs)
- [GitHub Profile README](https://github.com/AswinBarath/AswinBarath)


## Day 67

- Completed the development of Tesla's landing page in ReactJS
- [Tesla Landing Page Clone App](https://github.com/AswinBarath/tesla-clone)
- Built a Real-time Twitter Streaming App with NodeJS, SocketIO and Twitter APIs

<p>
	<img src="./assets/day67/filtered real-time twitter stream demo.gif" />
</p>

<br>

- Transformed my GitHub Profile README to a newer and better look

<p>
	<img src="./assets/day67/GitHub README.gif" />
</p>

- [GitHub Profile README](https://github.com/AswinBarath/AswinBarath)

<br>


## Day 68

- Solved two problems based on Stacks:
	- Valid Parenthesis
	- Next Greater Element
- Implemented Queue using Array
- Implemented Stack using Queue
- Implemented Queue using Stack
- [Stacks Repo](https://github.com/AswinBarath/Stacks)
- [Queues Repo](https://github.com/AswinBarath/Queues)

<p>
	<img src="./assets/day68StacksQueuesJava.gif" />
</p>


## Day 69

- Started to build a massive e-commerce react application which is similar to Shopify
- Here's my project pipeline for the day:
	- Project initialization using Create React App
	- Adding NodeJS SASS package for styling
	- Broken homepage into components & applied SASS animations
- [Clothing e-commerce React application repository](https://github.com/AswinBarath/Clothing-e-Commerce)

<p>
	<img src="./assets/day69.gif" />
</p>


## Day 70

- Updated menu-items component to automate the page routing to specific URLs based on the passed props  using React Router
- [Clothing e-commerce React application repository](https://github.com/AswinBarath/Clothing-e-Commerce)
- Added my work on Object Oriented Design based on project based learning approach
- [https://github.com/AswinBarath/Object-Oriented-Design](https://github.com/AswinBarath/Object-Oriented-Design)

<p>
	<img src="./assets/day70.gif" />
</p>


## Day 71

- Taught Git and GitHub at Codecademy JU Chapter
- Recording: https://lnkd.in/eAn6QAYt
- Wrap Up Page: https://lnkd.in/eUa4haKp
- [Git and GitHub Basics](https://github.com/AswinBarath/Git-and-GitHub-Basics)


## Day 72

- Taught ECMAScript Features from JavaScript at Codecademy JU Chapter
- Wrap Up Page: [https://community.codecademy.com/events/details/codecademy-jain-university-ju-presents-javascript-roadmap-iii/](https://community.codecademy.com/events/details/codecademy-jain-university-ju-presents-javascript-roadmap-iii/)
- [JS Roadmap ECMAScript](https://github.com/AswinBarath/javascript-roadmap-ecmascript)


## Day 73

- Solved two problems from Linked Lists
	- Intersection of Two Linked Lists
	- Cycle Detection in a Linked List
- Restructured the developer environment at JU Query project
- Added React-router-DOM package with basic routing abilities for JU Query Web App
- [JU Query Repo](https://github.com/AswinBarath/ju-query)


## Day 74

- Solved 3 problems using Linked Lists
	- Reverse Nodes in k-Group
	- Swap Nodes in Pairs
	- Swapping Nodes in a Linked List


## Day 75

- Solved the Linked List Palindrome checker problem at LeetCode


## Day 76

- Built different pages and components for JU Query Project
- Experimented pages with React Router and learning more about it
- [JU Query Repo](https://github.com/AswinBarath/ju-query)
- [JU Query Deployed Link](https://ju-query.web.app/)


## Day 77

- Solved the problem of finding the starting point of a cycle in Linked list


## Day 78

- Solved 3 Linked list problems using Recursion and two-pointers approach:
	- Flatten given Linked list
	- Rotate given Linked list
	- Clone a given Linked list with next and random pointers


## Day 79

- Solved 3 problems using two-pointers approach:
	- Find triplets with 0 sum
	- Remove Duplicates from Sorted Array
	- Max Consecutive Ones
- 2-pointers Repo: https://git.io/JKHRE


## Day 80

- Solved 3 problems using greedy approach:
	- N meetings In One Room
	- Minimum Platforms
	- Job Sequencing
- Greedy-algorithms Repo: https://git.io/J6lZU


## Day 81

- Solved 2 more problems using greedy algorithm
	- Minimum coins
	- Fractional Knapsack
- Greedy-algorithms Repo: https://git.io/J6lZU


## Day 82

- Solved the problem Split Array Largest Sum using Binary Search
- Binary-Search Repo: https://git.io/JuSnw


## Day 83

- Revised the concepts from Recursion
- Recursion Repo: https://git.io/JPzPQ

## Day 84

- Learnt #DSAwithKunal focusing on Recursion
- Got to understand Recursion and how to approach problems in the best way
- Recursion Repo: https://git.io/JPzPQ

## Day 85

- Used Markdown in my Web End Projects Repository extensively to visualize my project cover designs, demo and important links
- Web End Projects: https://github.com/AswinBarath/Web-End-Projects

## Day 86

- Solved problems to find Size, Height, Max & Min from a Binary Tree
- Trees Repo: https://git.io/J1MM0

## Day 87

- 21 Nov Sunday, 2021
- Learnt react-router-dom tutorial
- Implemented basic routing in JU Query

## Day 88

- 23 November Tuesday, 2021
- Implemented on Tree traversals
- Documented tree traversals neatly on README
- [Tree Travesal Docs Commit](https://github.com/AswinBarath/Trees/commit/45650e41427d43c17d680f91a62f3f91b66839d3)

## Day 89

- 25 November Thursday, 2021
- [Implemented Postorder iterative tree traversals using 1 stack and 2 stacks in java](https://github.com/AswinBarath/Trees/commit/d38654cc9d55044aeff1b0ae9f33ce10ab72d824)

## Day 90

- 26 November Friday, 2021
- [Updated Java packages and classes with tree traversals](https://github.com/AswinBarath/Trees/commit/a4f8a625ea84f1ceb57829bdf69bee4ff77ee092)
- Added extensive documentation for Linked-lists, Bit-Manipulation, Binary-search and Trees repositories

## Day 91

- 28 November Sunday, 2021
- [Implemented All-in-one Tree Traversals, Height and Depth of Binary Tree](https://github.com/AswinBarath/Trees/commit/431814b7cff3c96901657499b45b6de9facc703c)

## Day 91

- 29 November Monday, 2021
- [Learnt PHP basics from tutorials](https://github.com/AswinBarath/PHP-Programming-Notes/commits?author=AswinBarath&since=2021-11-28&until=2021-11-29)

## Day 92

- 1 December Wednesday, 2021
- [Worked on Secure Programming Lab 1](https://github.com/AswinBarath/Secure-Programming/commit/9cd9eab8c490ddaf3a6cfec99fd750ef4e2bca9a)

## Day 93

- 4 December Saturday, 2021
- Revised the concepts of C Programming:
	- pointers
	- structure
	- dynamic memory allocation

## Day 94

- 5 December Sunday, 2021
- Revised data structures:
	- Arrays
	- Hashmaps
	- Linked lists
- Also revised algorithms:
	- Recursion
	- Sorting
	- Searching

## Day 95

- 6 December Monday, 2021
- Revised SQL commands and concepts

## Day 96

- 12 December Sunday, 2021
- Started working on command line script project with JavaScript

## Day 97

- 26 December Sunday, 2021
- Continued the project work on command line script project with JavaScript and Python
- [Implemented several tasks and passed some of the test cases](https://github.com/AswinBarath/Command-Line-JS-Script/commits?author=AswinBarath&since=2021-12-25&until=2021-12-26)

## Day 98

- 27 December Monday, 2021
- Successfully worked on CLI project in Python
- [Passed 16/16 test cases from CLI project using python](https://github.com/AswinBarath/CLI-in-Python/commits?author=AswinBarath&since=2021-12-26&until=2021-12-27)

## Day 99

- 29 December Wednesday, 2021
- [Compiled and formatted the resources on IT Workshop in Python](https://github.com/AswinBarath/IT-Workshop-on-Python/commits?author=AswinBarath&since=2021-12-28&until=2021-12-29)

## Day 100

- 30 December Thursday, 2021
- Worked on DSA-Craker-Sheet and SDE-sheet documentation

## December 31, Friday

- Set the goals for 2022 & beyond using the following respositories:
	- [AswinBarath/100-days-of-web-end](https://github.com/AswinBarath/100-days-of-web-end)
	- [AswinBarath/100-days-of-java](https://github.com/AswinBarath/100-days-of-java)
	- [AswinBarath/100-days-of-python](https://github.com/AswinBarath/100-days-of-python)
	- [AswinBarath/100-days-of-software-engineering](https://github.com/AswinBarath/100-days-of-software-engineering)
	- [AswinBarath/100-days-of-ds-algo](https://github.com/AswinBarath/100-days-of-ds-algo)

---


## Goals Accomplished in 2021 (#100daysofcode)

- [x] [Learn Software Development](#learn-software-development)
- [x] [Solve problems on Data Structures and Algorithms](#solve-problems-on-data-structures-and-algorithms)
- [x] [Build Projects around Software Development](#build-projects-around-software-development)
- [x] [Build JU Query platform for university students](#build-ju-query-platform-for-university-students)
- [x] [Community Work](#community-work)


---

## Contributors

- T Aswin Barath <aswin2001barath@gmail.com>

---

## License & copyright

(c) T Aswin Barath

Licensed under the [MIT License](LICENSE).