Prajwal
\ No newline at end of file
+Prajwal
\ No newline at end of file
diff --git a/static/js/main.562965ba.chunk.js.map b/static/js/main.562965ba.chunk.js.map
deleted file mode 100644
index fcbdd92..0000000
--- a/static/js/main.562965ba.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["reportWebVitals.js","components/ScrollToTop.js","NavBar.js","pages/HomePage.js","pages/ContactPage.js","content/research.js","components/ResearchList.js","pages/NotFoundPage.js","pages/ResearchPage.js","pages/ResearchListPage.js","content/project.js","components/ProjectList.js","pages/ProjectPage.js","pages/ProjectListPage.js","pages/VolunteerPage.js","index.js"],"names":["reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","withRouter","history","useEffect","unlisten","listen","window","scrollTo","NavBar","to","HomePage","class","src","alt","ContactPage","width","href","research","name","title","date","content","source","ResearchList","map","key","className","substring","NotFoundPage","ResearchPage","match","params","researchContent","find","otherResearch","filter","paragraph","target","rel","ResearchListPage","project","skills","ProjectList","ProjectPage","projectContent","otherProject","ProjectListPage","VolunteerPage","ReactDOM","render","StrictMode","id","path","component","exact","document","getElementById","location","pathname","startsWith"],"mappings":"6MAYeA,EAZS,SAAAC,GAClBA,GAAeA,aAAuBC,UACxC,6BAAqBC,MAAK,YAAkD,IAA/CC,EAA8C,EAA9CA,OAAQC,EAAsC,EAAtCA,OAAQC,EAA8B,EAA9BA,OAAQC,EAAsB,EAAtBA,OAAQC,EAAc,EAAdA,QAC3DJ,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAON,GACPO,EAAQP,O,MCSCQ,mBAbf,YAAmC,IAAZC,EAAW,EAAXA,QAUrB,OATAC,qBAAU,WACR,IAAMC,EAAWF,EAAQG,QAAO,WAC9BC,OAAOC,SAAS,EAAG,MAErB,OAAO,WACLH,QAII,Q,OCaKI,EAtBA,kBACX,8BACI,+BACI,6BACI,eAAC,IAAD,CAAMC,GAAG,IAAT,iBAAiB,cAAC,EAAD,SAErB,6BACI,eAAC,IAAD,CAAMA,GAAG,gBAAT,qBAAiC,cAAC,EAAD,SAErC,6BACI,eAAC,IAAD,CAAMA,GAAG,iBAAT,qBAAkC,cAAC,EAAD,SAEtC,6BACI,eAAC,IAAD,CAAMA,GAAG,aAAT,sBAA+B,cAAC,EAAD,SAEnC,6BACI,eAAC,IAAD,CAAMA,GAAG,WAAT,oBAA2B,cAAC,EAAD,eCE5BC,EApBE,kBACb,mCACI,sBAAKC,MAAM,eAAX,UACI,yCACA,qBAAKC,IAA8B,eAAgBC,IAAI,SAASF,MAAM,aACtE,kNAGA,sFAGA,sYAGA,oDACA,qBAAKC,IAA8B,UAAWC,IAAI,UAAUF,MAAM,mBC0C/DG,G,MAxDK,kBAChB,mCACI,sBAAKH,MAAM,eAAX,UACI,yCACA,wBAAOI,MAAM,OAAOJ,MAAM,SAA1B,UACI,+BACI,qBAAIA,MAAM,OAAV,UACI,mBAAGK,KAAK,iCAAR,SACI,qBAAKJ,IAA8B,sBAAuBD,MAAM,OAAOE,IAAI,eAE/E,uBAJJ,yBAOA,qBAAIF,MAAM,OAAV,UACI,mBAAGK,KAAK,8BAAR,SACI,qBAAKJ,IAA8B,mBAAoBD,MAAM,OAAOE,IAAI,YAE5E,uBAJJ,WAOA,qBAAIF,MAAM,OAAV,UACI,mBAAGK,KAAK,sCAAR,SACI,qBAAKJ,IAA8B,sBAAuBD,MAAM,OAAOE,IAAI,eAE/E,uBAJJ,iBAQJ,+BACI,qBAAIF,MAAM,OAAV,UACI,mBAAGK,KAAK,8BAAR,SACI,qBAAKJ,IAA8B,oBAAqBD,MAAM,OAAOE,IAAI,aAE7E,uBAJJ,YAOA,qBAAIF,MAAM,OAAV,UACI,mBAAGK,KAAK,iDAAR,SACI,qBAAKJ,IAA8B,sBAAuBD,MAAM,OAAOE,IAAI,eAE/E,uBAJJ,cAOA,qBAAIF,MAAM,OAAV,UACI,mBAAGK,KAAK,iCAAR,SACI,qBAAKJ,IAA8B,qBAAsBD,MAAM,OAAOE,IAAI,cAE9E,uBAJJ,8BCWLI,EAzDE,CACb,CACIC,KAAM,qCACNC,MAAO,0GACPC,KAAM,kBACNC,QAAS,CAAC,gYAAD,yoLAWTC,OAAQ,gDACT,CACCJ,KAAM,4BACNC,MAAO,yFACPC,KAAM,kBACNC,QAAS,CAAC,oaAAD,wzPAkBTC,OAAQ,gDACT,CACCJ,KAAM,aACNC,MAAO,8EACPC,KAAM,eACNC,QAAS,CAAC,2cAAD,wiEASTC,OAAQ,sICrCDC,EAZM,SAAC,GAAD,IAAGN,EAAH,EAAGA,SAAH,OACjB,mCACCA,EAASO,KAAI,SAACP,EAAUQ,GAAX,OACV,eAAC,IAAD,CAAMC,UAAU,YAAsBjB,GAAE,oBAAeQ,EAASC,MAAhE,UACI,6BAAKD,EAASE,QACd,8BAAIF,EAASI,QAAQ,GAAGM,UAAU,EAAG,KAArC,SACA,cAAC,EAAD,MAH6BF,SCD1BG,EAJM,kBACjB,sDC6BWC,EA3BM,SAAC,GAAe,IAC3BX,EAD0B,EAAZY,MACDC,OAAOb,KACpBD,EAAWe,EAAgBC,MAAK,SAAAhB,GAAQ,OAAIA,EAASC,OAASA,KAEpE,IAAKD,EAAU,OAAO,cAAC,EAAD,IAEtB,IAAMiB,EAAgBF,EAAgBG,QAAO,SAAAlB,GAAQ,OAAIA,EAASC,OAASA,KAG3E,OACI,mCACI,sBAAKP,MAAM,eAAX,UACI,6BAAKM,EAASE,QACd,gDAAmBF,EAASG,QAC3BH,EAASI,QAAQG,KAAI,SAACY,EAAWX,GAAZ,OAClB,8BACI,4BAAcW,GAANX,QAGhB,mBAAGd,MAAM,SAASK,KAAMC,EAASK,OAAQe,OAAO,SAASC,IAAI,aAA7D,oBACA,iDACA,cAAC,EAAD,CAAcrB,SAAUiB,UCbzBK,EATU,kBACrB,mCACI,sBAAK5B,MAAM,eAAX,UACI,0CACA,cAAC,EAAD,CAAcM,SAAUe,UC4DrBQ,EApEC,CACZ,CACItB,KAAM,oBACNC,MAAO,6BACPsB,OAAQ,sCACRpB,QAAS,CAAC,+iBAAD,utCAKTC,OAAQ,0CAEZ,CACIJ,KAAM,mBACNC,MAAO,mDACPsB,OAAQ,iCACRpB,QAAS,CAAC,qlCAAD,k+EAQTC,OAAQ,2DAEZ,CACIJ,KAAM,oBACNC,MAAO,0BACPsB,OAAQ,YACRpB,QAAS,CAAC,glBAAD,wxBAMTC,OAAQ,8CAEZ,CACIJ,KAAM,kBACNC,MAAO,qEACPsB,OAAQ,mDACRpB,QAAS,CAAC,gcAAD,i+BAMTC,OAAQ,4CAEZ,CACIJ,KAAM,eACNC,MAAO,+BACPsB,OAAQ,wBACRpB,QAAS,CAAC,gjBAAD,wzDAUTC,OAAQ,8CChDDoB,EAZK,SAAC,GAAD,IAAGF,EAAH,EAAGA,QAAH,OAChB,mCACCA,EAAQhB,KAAI,SAACgB,EAASf,GAAV,OACT,eAAC,IAAD,CAAMC,UAAU,YAAsBjB,GAAE,mBAAc+B,EAAQtB,MAA9D,UACI,6BAAKsB,EAAQrB,QACb,8BAAIqB,EAAQnB,QAAQ,GAAGM,UAAU,EAAG,KAApC,SACA,cAAC,EAAD,MAH6BF,SCyB1BkB,EA3BK,SAAC,GAAe,IAC1BzB,EADyB,EAAZY,MACAC,OAAOb,KACpBsB,EAAUI,EAAeX,MAAK,SAAAO,GAAO,OAAIA,EAAQtB,OAASA,KAEhE,IAAKsB,EAAS,OAAO,cAAC,EAAD,IAErB,IAAMK,EAAeD,EAAeT,QAAO,SAAAK,GAAO,OAAIA,EAAQtB,OAASA,KAGvE,OACI,mCACI,sBAAKP,MAAM,eAAX,UACI,6BAAK6B,EAAQrB,QACb,gDAAmBqB,EAAQC,UAC1BD,EAAQnB,QAAQG,KAAI,SAACY,EAAWX,GAAZ,OACjB,8BACI,4BAAcW,GAANX,QAGhB,mBAAGd,MAAM,SAASK,KAAMwB,EAAQlB,OAAQe,OAAO,SAASC,IAAI,aAA5D,yBACA,gDACA,cAAC,EAAD,CAAaE,QAASK,UCbvBC,EATS,kBACpB,mCACI,sBAAKnC,MAAM,eAAX,UACI,0CACA,cAAC,EAAD,CAAa6B,QAASI,UCwDnBG,EA9DO,kBAClB,mCACI,sBAAKpC,MAAM,eAAX,UACI,2CACA,qBAAKC,IAA8B,qBAAsBC,IAAI,sBAAsBF,MAAM,cACzF,8iBAGA,4KAGA,mCACI,qBAAKC,IAA8B,sBAAuBC,IAAI,uBAAuBF,MAAM,aAC3F,+JAEJ,2mBAGA,mBAAGA,MAAM,SAASK,KAAK,uCAAuCqB,OAAO,SAASC,IAAI,aAAlF,oBACA,uBAAM,uBACN,uBACA,qBAAK1B,IAA8B,eAAgBC,IAAI,0BAA0BF,MAAM,cACvF,yVAGA,4FAEI,+BACI,gMACA,oNACA,uLAGR,mCACI,qBAAKC,IAA8B,gBAAiBC,IAAI,kBAAkBF,MAAM,aAChF,iGAEJ,gUAGA,mBAAGA,MAAM,SAASK,KAAK,oCAAoCqB,OAAO,SAASC,IAAI,aAA/E,qBACA,uBAAM,uBACN,uBACA,qBAAK1B,IAA8B,gBAAiBC,IAAI,0BAA0BF,MAAM,cACxF,2YAGA,mCACI,qBAAKC,IAA8B,uBAAwBC,IAAI,kBAAkBF,MAAM,aACvF,6KAEJ,imBAIA,mBAAGA,MAAM,SAASK,KAAK,0GAA0GqB,OAAO,SAASC,IAAI,aAArJ,oBACA,uBAAM,uBACN,6BCvCZU,IAASC,OACP,cAAC,IAAMC,WAAP,UACE,cAAC,IAAD,UACE,gCACE,cAAC,EAAD,IACA,qBAAKC,GAAG,YAAR,SACE,eAAC,IAAD,WACE,cAAC,IAAD,CAAOC,KAAK,IAAIC,UAAW3C,EAAU4C,OAAK,IAC1C,cAAC,IAAD,CAAOF,KAAK,WAAWC,UAAWvC,IAClC,cAAC,IAAD,CAAOsC,KAAK,kBAAkBC,UAAWxB,IACzC,cAAC,IAAD,CAAOuB,KAAK,iBAAiBC,UAAWd,IACxC,cAAC,IAAD,CAAOa,KAAK,iBAAiBC,UAAWV,IACxC,cAAC,IAAD,CAAOS,KAAK,gBAAgBC,UAAWP,IACvC,cAAC,IAAD,CAAOM,KAAK,aAAaC,UAAWN,IACpC,cAAC,IAAD,CAAOM,UAAWzB,gBAM5B2B,SAASC,eAAe,SAMO,MAA7BlD,OAAOmD,SAASC,UAAqBpD,OAAOmD,SAASC,SAASC,WAAW,cAC3ErD,OAAOmD,SAASzC,KAAO,KAMzBxB,M","file":"static/js/main.562965ba.chunk.js","sourcesContent":["const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import { useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\n\nfunction ScrollToTop({ history }) {\n useEffect(() => {\n const unlisten = history.listen(() => {\n window.scrollTo(0, 0);\n });\n return () => {\n unlisten();\n }\n });\n\n return (null);\n}\n\nexport default withRouter(ScrollToTop);\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport ScrollToTop from './components/ScrollToTop';\n\nconst NavBar = () => (\n \n);\n\nexport default NavBar;\n","import React from 'react';\n\nconst HomePage = () => (\n <>\n
\n
Prajwal
\n \n
\n Hello, world! I am a Full Stack Developer with 5+ years of experience in FinTech, CryptoTech, MarTech and Telematics using MERN stack, Machine Learning and Software Engineering.\n
\n
\n I love to work with Rust, Typescript, Python and C++.\n
\n
\n I can solve your problems with high throughput, scalable and maintainable technologies. I can lead development and wear multiple hats with product, design, development, testing, deployment and support teams in a collaborative environment. In a team with great diversity, I will learn from the passionate and experienced and mentor the energetic and curious.\n
\n >\n);\n\nexport default ContactPage;\n","const research = [\n {\n name: 'selection-ipl-ensembles-classifier',\n title: 'Selection of Players and Team for an Indian Premier League Cricket Match Using Ensembles of Classifiers',\n date: 'August 02, 2020',\n content: [\n `The Indian Premier League is an annual cricket tournament administered by the Board for Control of Cricket in India. It is a 20 over format of playing cricket introduced in 2003 as a need for a shorter version of the game to counter the falling attendance of spectators. Currently, it is the 6th most attended league globally, and the world’s most attended league as of 2016. `,\n `The participating franchises form their teams by conducting an auction before the tournament from a pool of national and international cricket players of different countries. The auction starts with the ‘marquee’ list, where 16 players in two batches of eight each come up for bidding. The marquee lot is followed by capped and uncapped players: batsmen, all-rounders, wicket-keepers, fast bowlers and spinners. After the players have been presented for bidding, the accelerated process will enable franchises to nominate a set number of players from the remaining ones. The list is submitted on the first day, and the nominated players go up for bidding the next day. Once these players have been presented, the franchises will be asked to submit their wish list from the complete list of players. Those unsold will come up for auction after all the players have been called once. The list of unsold players, however, is drawn up subject to the franchises’ request.`,\n `As per the new IPL player policy, each franchise can spend a maximum of INR 80 crore (USD 12.5m) on their squad salaries. The new rules also dictate that franchises spend 75% of the salary cap, which amounts to INR 60 crore (USD 9.4m approx.). The player retention rules stipulate that a team can retain a maximum of five players through a combination of pre-auction retention and Right-To-Match (RTM). A franchise can retain a maximum of three capped India players and two capped overseas players. Having each retained three players, Super Kings, Daredevils, Mumbai Indians and Royal Challengers have only two RTMs remaining. The other four franchises have three RTMs, each having retained no more than two players.`,\n `In order to predict the price of a batsman, there are several important parameters to consider. Runs are an essential parameter that tells us the best performance a player will give, which decides the player’s popularity among fans. The batting average is the total number of runs a batsman has scored divided by the number of times they have been out, which tells us how consistent a batsman is, which is essential because the team must score within ten wickets, of which not all are specialized in batting. A batting strike rate is a measure of how frequently a batsman achieves the primary goal of batting, namely scoring runs, which is important because the speed at which the runs are scored is critical in high-scoring games. Balls faced is the number of balls that the batsman has played in the entire season. The batsman can bat in the first inning or the second inning, decided by the captain of the toss-winning team. Price is the output of our model.`,\n `In order to predict the price of a bowler, there are several important parameters to consider. Runs are an essential parameter that tells us how many runs a bowler has given in the past. The lesser runs he/she gives, the better the bowler. Bowling average is the ratio of runs conceded per wickets taken, meaning that the bowling average is, the better the bowler is performing, which tells us how much the bowler will allow the opponent to make runs. A lesser number of runs is preferred. Bowling strike rate is the balls bowled by wickets taken, which tells how quickly a bowler can take wickets. The economy runs per over, which tells if the bowler can bowl with lesser runs given. Balls bowled is the number of balls that the bowler has played in the entire season. The bowler can ball in the first inning or the second inning, decided by the captain of the toss-winning team. Price is the output of our model.`,\n `At present, choosing to bid for a player is done by eight people from each team. Each member has different expertise and contributes to the final decision-making, making it challenging to make decisions. Furthermore, pressure situations and hurried decisions which need to be made at the auction can lead to costly mistakes. The proposed model makes the decision-making more accurate, fast and less prone to errors. We can predict the price of a player based on his past performance.`,\n `Another problem that the present method suffers from is that opponents are often aware of the team’s favourite player due to regional popularity. This knowledge has often been abused by the opponents to inflate the price of the desired players. Our model helps the bidder realize that the range of the price the player is expected to be sold at, making them aware of the same to adjust their budget plans.`,\n `Thirdly, the accuracy with which auctioneers can evaluate a player is dependent on their experience in evaluating players, which is also being taken care of by our model by using player historical performance to predict the cost.`,\n `In this work, we have shown how we can use neural networks and K-Means or Hierarchical clustering in place of clustering algorithms to represent data in a meaningful way to predict the best batsman/bowler to be sent next for a given match condition at an Indian Premier League Cricket Match. We predicted the best bowler/batsman for a given match condition using the match parameters of every ball. We carried out tests using various neural networks ranging from single-layered perceptron to multilayered multi-neuron neural networks, along with a variety of data representations. The neural network with three hidden layers perceptron gave the best results for batsman and bowlers, respectively. These neural networks can produce fast and accurate results within 3 seconds. The activation functions used were ReLu and SoftMax. We used K-Means and hierarchical clustering to generate data. We also predict an ideal team for a match using K-Means Clustering and hierarchical clustering, which found interesting and accurate patterns, constraints.`,\n ],\n source: 'https://ieeexplore.ieee.org/document/9198371',\n }, {\n name: 'prediction-ipl-regression',\n title: 'Prediction of Player Price in IPL Auction Using Machine Learning Regression Algorithms',\n date: 'August 02, 2020',\n content: [\n `Cricket is administered by the Board for Control of Cricket in India(BCCI). The shortened 20-over format of playing cricket was introduced to counter the falling attendance of spectators. Since then, more and more countries have introduced this format of cricket. Currently, the Premier League (IPL) is an annual cricket tournament sixth most attended league globally, and the world's most attended league as of 2016.`,\n `The participating franchises form their teams by conducting an auction before the tournament from a pool of national and international cricket players of different countries. After the players have been presented for bidding, the accelerated process will enable franchises to nominate a set number of players from the remaining ones.`,\n `As per the new IPL player policy, each franchise can spend a maximum of INR 80 crore (USD 12.5m) on their squad salaries. The new rules also dictate that franchises spend 75% of the salary cap, which amounts to INR 60 crore (USD 9.4m approx.). The player retention rules stipulate that a team can retain a maximum of five players through a combination of pre-auction retention and Right- To-Match (RTM). A franchise can retain a maximum of three capped India players and two capped overseas players. Having each retained three players, Super Kings, Daredevils, Mumbai Indians and Royal Challengers have only two RTMs remaining. The other four franchises have three RTMs, each having retained no more than two players.`,\n `Team managers, who can serve only one team in a match, will have to manage their team in two innings: when the team is batting and when the same team is bowling/fielding. The team manager has to deal with target score, innings, wickets, over, ball, batsman (on strike), the batsman (not on strike) and the bowler bowling the over. The team will have to bat in one inning and bowl in the other inning, which is the captain of the toss winning team decides. The IPL match consists of 20 overs with six balls in each over. An over must be played in its entirety by a single bowler. The target score is the minimum score that the team should have made, in a particular ball of an over, to make the team likely win the match. Wickets are defined as the number of batsmen who have become out. A batter who has become out cannot bat for the rest of the match. At any given ball, there must be two batsmen on the pitch. A batter who has become out must be replaced.`,\n `In an IPL match, from the batting team manager's perspective, after one of his/her batsmen has become out, he/she must send another batsman to replace the one who has become out. The choice must be made in such a way that the batting team wins. To do so, the team manager has to choose a replacement batsman such that the batsman can perform well with the given match conditions. The match conditions that affect the batsman's performance include target score, innings, wickets, over, ball, the batsman (not out) and the bowler.`,\n `Similarly, from the bowling team manager's perspective, after each over, he/she must decide which bowler to send next. At the end of each over, the bowling/fielding team's manager must send a bowler such that the bowling/fielding team wins. To do so, the team manager has to choose a bowler for the next over such that the bowler can either make it hard for the opposing team's batsmen to score or make them 'out' within the given match conditions. The match conditions that affect the bowler's performance include target score, innings, wickets, over, ball, the batsman (on strike) and the batsman (not on strike).`,\n `We have attempted to solve these problems. Firstly, the decision to bid for a player is made by eight people from each team. Each member has different expertise and makes equal contributions to the final decision-making, making it challenging to make unanimous decisions. Furthermore, pressure situations and hurried decisions which need to be made at the auction can lead to costly mistakes. The proposed model makes the decision-making more accurate, fast and less prone to errors.`,\n `Another part of this problem is that the present method suffers from is that opponents are often aware of the team's favourite player due to regional popularity. The opponents have often abused this knowledge to inflate the price of the desired players. At present, the accuracy with which auctioneers can evaluate a player depends on their experience in evaluating the eight members of the bidding team.`,\n `Secondly, from the team manager's perspective, sending the batsman/bowler is done by either the team captain or the team manager. Team captains are often the ones to decide which batsman/bowler to send because they are always present near/on the field to make quick decisions. Their decisions are prone to errors due to their reliance on intuition and sentimental issues from playing in the cricket match. Team managers, who would be ideal for making independent decisions, are often not consulted because they do not have enough time to compare the match parameters with the previous match data. Their decisions are also prone to errors.`,\n `A player, who has not performed well or has not been given enough opportunities, might miss out on some opportunities that were better suited for him/her.`,\n `The first problem can be solved using a neural network to train a neural network with the player performance parameters & cluster numbers of the players and the price at which the player was sold for in the previous year.`,\n `The second problem can be solved using two neural networks to train the model for every ball that has been played in the past. By doing so, our network will accurately predict which batsman/bowler to send next.`,\n `We have used machine learning, a branch of computer science, to train the machine based on past data to predict future outcomes. Our problem is related to classification because it involves classifying which cluster number the batsman/bowler needs to belong to, given the match parameters. Artificial Neural Networks(ANNs) are composed of many highly interconnected processing elements (neurons) working in a multilayered structure that receives inputs, processes inputs, and produces an output. We used ANNs because they are tolerant to data quality issues and neither need normalization nor require independence assumptions. Furthermore, they provide faster and more accurate results when compared to other machine learning techniques.`,\n `We have used SoftMax and ReLu activation function. SoftMax is an activation function that uses x number of real numbered inputs and outputs a probabilistic value that is ideal in deciding which decision is when the output neural network has more than two neurons. ReLu is an activation function that outputs the positive real number if positive else outputs 0.`,\n `We have used the K-Means clustering technique, which can be used on well-separated data. The algorithm starts with random initial centroids with computation of the Euclidean distance from each data point. The closest centroid is the cluster to which a data point is marked. The centroids are then computed using the mean of all the data points belonging to it. This process is continued till the centroids change. Hierarchical clustering starts with each data point as a cluster and then merging the closest ones into one cluster. This cluster is then chosen as a data point, and the parent cluster is formed using it and the other points. This process is continued till the required numbers of clusters are obtained. The final result will be a dendrogram.`,\n `This work predicted the cost at which a player can be sold in the Indian Premier League Auction using machine learning-based algorithms. We estimated the players' selling price using their past performance parameters like runs, balls, innings, wickets and matches played. Tests were carried out in various machine learning models like Decision Tree Regressor, K-Nearest Neighbors (KNN), Linear Regression, Stochastic Logistic Regression, Random Forest Regressor and Support Vector Regression (SVR). Among these, SVR and Linear Regression gave the best results for predicting batsman and bowlers, respectively. These algorithms can produce fast and accurate results within 3 seconds, helping auctioneers make quick decisions. We have also considered the inflation factor and mapping the same to the budget during the model's training.`,\n ],\n source: 'https://ieeexplore.ieee.org/document/9198668',\n }, {\n name: 'jsf-sudoku',\n title: 'Online Sudoku Generator and Solver for Competitions using Java Server Faces',\n date: 'May 09, 2020',\n content: [\n `The name “Sudoku” originates from Japanese words: “su”, which means “number,” and “doku”, which means “single”. When translated into English, it most accurately means “single numbersonly”. The game gained worldwide popularity in 2004, though when it was published by The Times in London. It has been reported to be the most significant trend since the invention of Rubik’s Cube in the 1980s.`,\n `To win the Sudoku game, one must fill up all the vacant boxes with the allowed range of numbers in the Sudoku puzzle. All the entered numbers must follow specific rules. The fundamental requirement of solved Sudoku is that no row, column or subgrid can contain the same number twice.`,\n `We have specifically solved Rank 3 Sudoku puzzles which are the standard type and the most well-known. A sudoku rank refers to the square root of the number of blocks and subgrids that are present.`,\n `Well-formed Sudoku will have one unique solution and no other possible solutions when the given clues are at least 17. To keep the same swift check for solutions, we utilized the mathematical lower limit of given clues and ensured our options never exceeded that number.`,\n `We have chosen difficulties within the constraint previously discussed according to the number of possible combinations in the grid, excluding the givens changing. The fewer givens there are, the more potential combinations there are, and therefore, the harder to find the combination that works with the three rules of Sudoku. When setting the difficulty level, it is vital to ensure that the Sudoku generated will be well-formed.`,\n `Worldwide, Sudokus have gained much popularity due to annual Sudoku Championships being organized in locations where there is the scope of growth in the Professional Sudoku solvers community. Due to this rapid growth of Sudoku popularity, there has been a growth in demand for Sudoku generating and solving software. The programing problem is an NP-Complete. Our focus will be on writing software for organizing a free and fair competition.`,\n `Sudoku is a trendy pass-time game that had gained much popularity when it was published by The Times in London. We have used Java Server Faces (JSF) as a tool for the Full-Stack development of Sudoku as a web browser-based game. By building this project, we had gained a better understanding of the framework. In this work, we present an algorithm for solving the Sudoku problem and a safe way of validating the results keeping scalability in mind.`,\n ],\n source: 'https://www.techrxiv.org/articles/preprint/Online_Sudoku_Generator_and_Solver_for_Competitions_using_Java_Server_Faces/12093732/1',\n },\n];\n\nexport default research;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport ScrollToTop from './ScrollToTop';\n\nconst ResearchList = ({ research }) => (\n <>\n {research.map((research, key) => (\n \n
\n >\n );\n};\n\nexport default ResearchPage;\n","import React from 'react';\nimport researchContent from '../content/research';\nimport ResearchList from '../components/ResearchList';\n\nconst ResearchListPage = () => (\n <>\n
\n
Research
\n \n
\n >\n);\n\nexport default ResearchListPage;\n","const project = [\n {\n name: 'insurance-advisor',\n title: 'Insurance Advisor Software',\n skills: 'Django, Bootstrap, Machine Learning',\n content: [\n `The Insurance advisor software was designed to collect information about the user’s needs and history and suggest suitable insurance plans. The software is consumer-centric because it prioritizes ample coverage over the price of insurance. It may not guarantee the cheapest coverage, but it will guarantee that the consumer has as much coverage as required with a few extra dollars. The goal of this research is to ensure that consumers have adequate coverage when filing for insurance claims while allowing users to pick low-cost insurance policies. `,\n `Types of insurance provided include Automobile Insurance, House Insurance, Term Life Insurance, Disability Insurance, Health Insurance and Umbrella Policy. The software was implemented in Django with Python backend along with the MySQL database. We used Linear regression, Ridge regression, Bayesian Ridge regression, Lasso Regression, Lasso LARS regression and a deep neural network with four hidden layers, Decision Tree Regression, Ada Boost Regression, Gradient Boosting Regression, XG Boost Regression, Random Forest Regression, Extra Tree Regression, Support Vector Regression, K Nearest Neighbors Regression, Bagging Regression and Voting Regression to predict the insurance premium based on the user’s health. Of all the methods used, Voting Regression with an ensemble of two Gradient Boosting Regressession models gave the most negligible Mean Absolute Error(MAE).`,\n `The software that targets citizens of Ontario, Canada who want to purchase private insurance. But in the future, the software can be updated to provide insurance as per regulations of individual provinces and possibly of other countries as well. This will require keeping track of the minimum insurance requirements of each province and country by law.`, \n ],\n source: 'https://github.com/dhatwalia/insurance',\n },\n {\n name: 'optimal-hospital',\n title: 'Optimal hospital placement for COVID-19 patients',\n skills: 'Machine Learning, Optimization',\n content: [\n `At present, cases of COVID-19 are appearing in a non- uniform manner across the country. This distribution is hard to predict because travel of people from one place to another is influenced by many factors including work, education, climate, geopolitical factors etc. In the ever so connected world that we live, it makes it even more dif- ficult to track the spread of diseases. At present, setting up of hospitals is done in a localized manner. Macroscopic influences over number of patients visiting hospitals is not considered. When a hospital is having too many patients in an area, newer hospitals are set-up in order to accomodate for the healthcare requirement. This approach works with seasonal factors affecting spread of diseases. However, in a pandemic, spread of disease does not always follow the same pattern. The current medical health system is at risk of being overburdened by patients if the number of cases was to spike uncontrollably. To prepare ourselves for the worst- case scenario, the right decisions must be made quickly when upgrading the medical infrastructure of the country.`,\n `In a pandemic, in some places the number of are much higher than others. For example in places like Toronto and Montreal, where the number of travellers is more, the number of cases is also high. Whereas in other places like Thunder- Bay and Manitoba, the number of cases is low. The rate of spread is also influenced by the number of people travelling in and out of a city. This could rapidly change the number of patients that a hospital expects. This could be as a con- sequence of the early opening up of businesses or lack of preventive action. Therefore, there is a need for software that will determine which is the optimal place to set-up a hospital from a list of suitable sites. It is necessary that the software will rely on the latest data so that action can be taken as suited. The software needs to be able to accommodate rapid change in the COVID-19 hot-spots before the location of the hospitals needed is finalized. The software should yield fast results in order to help in quick decision making.`,\n `If we were to apply only optimization techniques towards solving this problem, then we would suffer from an instability in the solution. Each new patient getting added to the list of patients would require an alteration to the hospital site. Furthermore, it is also not possible to set up hospitals at the optimal location because of the site might not be available for constructing hospital. Some other building might already be occupying that location.`,\n `If we were to apply clustering algorithm, we would end up with centroid which would be ideal for setting up hospitals. But the centroids themselves might not be able available for constructing hospitals. Therefore, I have proposed a software that will use a com- bination of clustering and linear programming to minimize the distance of the patients from the hospitals.`,\n `In order to solve the problem, we must know at-least the lo- cation of sites that are available for constructing the hospitals and the location of patients. First I have clustered the patients in order to bring the number of patient-groups to a manageable level. This also helps increase the stability of the optimal solution. Then I have used Linear Programming to determine the hospital in such a way that each cluster is assigned only 1 hospital.`,\n `For as many patients as possible, these hospitals should be as accessible as possible. We must minimize the total distance that everyone has to travel to reach these hospitals to achieve maximum efficiency in COVID-19 isolation.`,\n ],\n source: 'https://github.com/dhatwalia/optimal-hospital-placement',\n },\n {\n name: 'jsf-sudoku-solver',\n title: 'JSF based Sudoku Solver',\n skills: 'Java, JSF',\n content: [\n `A Sudoku puzzle made up of 9x9 grid filled with numbers ranging from 1-9. The entire puzzle itself is divided into 9 3x3 sub-grids. The number of numbers already given can be used to greatly effect the difficulty of solving the puzzle. There are other versions of Sudoku with their own twists like including extra 3x3 subgrids in the intersection of the original 9 grids and so on. We spoke of the difficulty and number of combinations a single sudoku puzzle can have which makes it computationally difficult to find all solutions or the solutions that fall within certain characteristics.`,\n `We have successfully implemented a Sudoku puzzle in JSF. Though there is a lot of scope for improvement, the Sudoku puzzle itself will accurately generate a solved puzzle and check the correctness of the user’s solution.`,\n `The main benefit of using our program is that the high complexity task of generating the Sudoku is quickly performed at the server side and checking for the correctness is done at the client side. This eliminates the need of sending the data from the server to the client and vice versa. Another implication of doing so is that we eliminate the risk of man in the middle attack.`,\n `This project through the usage of publicly available components showcases the benefits of using JSF and its wide variety of components whilst developing the complex parts in Java.`,\n ],\n source: 'https://github.com/dhatwalia/sudoku-solver',\n },\n {\n name: 'gan-captcha-gen',\n title: 'Generating digits for captcha using Generative Adversarial Network',\n skills: 'Machine Learning, Deep Learning, Neural Networks',\n content: [\n `We propose to generate digits for Captcha using Generative Adversarial Network(GAN). The captcha will be made up of digits only because it reduces the time it takes for a human to solve the captcha. This will also eliminate the need of manually generate captcha and increase the diversity in our captcha dataset. Since our captcha is made up of only digits, it also takes less time for humans to solve. Additionally, it is more language neutral.`,\n `Captcha was first introduced as an automated test to deter- mine if the user is a human or not. It generates a sequence of characters that humans can understand, but computers cannot. The human must enter the sequence in the text-box, that comes along with the it, in the order to solve the it. Due to its reliability, it has been considered useful by many websites. Text based captchas can take 11.5 seconds to solve.`,\n `Generative Adversarial Network(GAN) is a neural network which simultaneously train two models: a generator that cap- tures the data distribution, and a discriminator that determines the probability that a sample came from the training data. This discriminator can be trained from real samples and generate fake images using the generator.`,\n `We can use MNIST database of handwritten digits to solve the problem of training our discriminator. It has 60,000 training and 10,000 testing data samples. The data is publicly available and free to use in keras python library.`,\n ],\n source: 'https://github.com/dhatwalia/captcha_gen',\n },\n {\n name: 'auto-man-sys',\n title: 'Automobile Management System',\n skills: 'PHP, MySQL, HTML, CSS',\n content: [\n `Customers often don't have a convenient means to find a dealer that will sell the particular model of vehicle that they want. Having a database of automobiles will help them choose from a list of dealers that sell that particular model of vehicle. After booking the vehicle and making the payment, customers often don't have any reliable means for keeping track of how much progress has been made for the order that they have placed. They may at times rely on phone numbers to know where their vehicle is in the process of manufacturing, within the factory.`,\n `The aim of our project is to allow customers to conveniently book vehicles for purchase and track the progress made in the factory. This will be done through a web based application that will be connected to a database.`,\n `The customer will be able to place an order for a particular brand and model of vehicle. He/she can choose the color, no. of cylinders, transmission type for the vehicle of their choice and set a deadline for this vehicle to be delivered. Once the dealer is chosen and the specifications for the order have been provided, the database will store the order and vehicle details.`,\n `The dealer can update the cost of the vehicle. He/she decides the default price for a certain brand and model during registration. It is up to the dealer to decide whether the order is feasible or not. If it's not feasible, the dealer can delete the order.`,\n `The factory from time to time can update the status of the vehicle so that the customer can keep track of where the vehicle is in the process of manufacturing for the customer's particular vehicle.`,\n `Using our database, customers will be able to conveniently find a dealer to book the particular model of vehicle that they want. After booking, the customers will have a reliable way for keeping track of the progress made for each order that the customer had placed.`,\n `This will save the customer's time and money in looking for a dealer for a model of vehicle of customer's choice. This project will also make it easier for the customer to track the progress made in the factory for their particular order.`,\n `In future, this HTML-PHP based webpages can be upgraded to dynamically calculate the price of the variant that the customer wants. A payment gateway can also be attached with it so that the customers can make payment for it online and hence avoid having to go to the dealer.`,\n ],\n source: 'https://github.com/dhatwalia/auto-man-sys',\n },\n];\n\nexport default project;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport ScrollToTop from './ScrollToTop';\n\nconst ProjectList = ({ project }) => (\n <>\n {project.map((project, key) => (\n \n
{project.title}
\n
{project.content[0].substring(0, 150)}...
\n \n \n ))}\n >\n);\n\nexport default ProjectList;\n","import React from 'react';\nimport projectContent from '../content/project';\nimport ProjectList from '../components/ProjectList';\nimport NotFoundPage from './NotFoundPage';\n\nconst ProjectPage = ({ match }) => {\n const name = match.params.name;\n const project = projectContent.find(project => project.name === name);\n\n if (!project) return \n\n const otherProject = projectContent.filter(project => project.name !== name);\n\n\n return (\n <>\n
\n HelpAge India is a charity in India that has worked with and for disadvantaged elderly for nearly four decades. It has been running in India since 1978. There is an estimated 106 million elderly in India. HelpAge advocates for their needs, such as Universal Pension, quality healthcare and abuse faced by senior citizens. It advocates for elder-friendly policies and works towards their implementation. It also works with Senior Citizens Associations to understand the needs of the disadvantaged elderly by working with them.\n
\n
\n The aim is to help elders live active, dignified and healthier lives. HelpAge's focus over the years has moved from Welfare to Development.\n
\n \n
\n It provides elderly relief through various interventions for the elderly. It features one of the most extensive mobile healthcare programs through its Mobile Healthcare Units in India. It provides free healthcare services to destitute elders. It also helps elders earn their livelihood through the formation of Elder-Self-Help Groups, making them self-reliant. It conducts cataract surgeries to restore their sight. It's Support-a-Gran program looks after their basic needs. It also features Elder Helplines across India. It provides relief and rehabilitation for elders post disasters.\n
\n Blue Sea Foundation is a Canadian charitable foundation that has been working with other charities to make the world better since 2010. Headquatered in Kitchener, they work exclusively with social service charities who serve the most precarious, marginalized, and neglected people in Canada and around the world.\n
\n
\n They are known mainly for their three charitable campagins:\n
\n
Coldest Night of the years - A winterrific family-friendly walk to raise money for local charities serving people experiencing hurt, hunger, and homelessness.
\n
Ride for Refuge - A family-friendly cycling and walking fundraiser that supports charities who provide refuge and hope for displaced, vulnerable, and exploited people everywhere.
\n
The Grand Parade - A super-fun, family-friendly fundraising walk that celebrates and supports aging Canadians and their families across Canada.
\n \n \n \n
\n They are driven by the suffering and need in our world, and believe that the best way to make a difference is to build your charity's fundraising and financial health. What powers their efforts is the deep desire to see charities better funded and thriving as a force in our communities.\n
\n SickKids Foundation is a charitable foundation that supports The Hospital for Sick Children in Toronto, Canada. They believe that fighting for the health and wellbeing of children is one of the most powerful ways to improve society. They are committed to fostering an inclusive, accessible environment, where all individuals feel valued, respected and supported.\n
\n \n
\n Their goal is to save lives, find new cures and provide world-class care. They are also fighting against the limits of a 70-year-old hospital where parts of the building dont meet modern building codes. Their most vulnerable patients are crammed into overcrowded rooms. Their our outdated spaces cant accommodate the weight of an MRI machine. Thats why they are trying to raise $1.5 billion dollars in donations. They need you on our side in the SickKids VS Limits Campaign, the biggest fundraising campaign in Canadian health-care history, to help build a brand-new hospital.\n\n
\n >\n);\n\nexport default VolunteerPage;\n","import 'whatwg-fetch';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n BrowserRouter,\n Route,\n Switch,\n} from 'react-router-dom';\nimport reportWebVitals from './reportWebVitals';\nimport './index.scss';\nimport NavBar from './NavBar';\nimport HomePage from './pages/HomePage';\nimport ContactPage from './pages/ContactPage';\nimport ResearchPage from './pages/ResearchPage';\nimport ResearchListPage from './pages/ResearchListPage';\nimport ProjectPage from './pages/ProjectPage';\nimport ProjectListPage from './pages/ProjectListPage';\nimport VolunteerPage from './pages/VolunteerPage';\nimport NotFoundPage from './pages/NotFoundPage';\n\nReactDOM.render(\n \n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n \n ,\n document.getElementById('root')\n);\n\n// Note by dhatwalia:\n// GitHub Pages doesn't handle client-side routing by default and gives 404 error.\n// This is a hack to redirect to the HomePage when we refresh on any page that isn't the HomePage.\nif (window.location.pathname !== '/' && !window.location.pathname.startsWith('/static/')) {\n window.location.href = '/';\n}\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/main.562965ba.chunk.js b/static/js/main.fb2a9e68.chunk.js
similarity index 99%
rename from static/js/main.562965ba.chunk.js
rename to static/js/main.fb2a9e68.chunk.js
index 3596fe9..27aa702 100644
--- a/static/js/main.562965ba.chunk.js
+++ b/static/js/main.fb2a9e68.chunk.js
@@ -1,2 +1,2 @@
-(this.webpackJsonpprajwal=this.webpackJsonpprajwal||[]).push([[0],{22:function(e,t,a){},29:function(e,t,a){},30:function(e,t,a){"use strict";a.r(t);a(17);var n=a(1),i=a.n(n),s=a(15),r=a.n(s),o=a(4),h=a(2),c=function(e){e&&e instanceof Function&&a.e(3).then(a.bind(null,31)).then((function(t){var a=t.getCLS,n=t.getFID,i=t.getFCP,s=t.getLCP,r=t.getTTFB;a(e),n(e),i(e),s(e),r(e)}))};a(22);var l=Object(h.f)((function(e){var t=e.history;return Object(n.useEffect)((function(){var e=t.listen((function(){window.scrollTo(0,0)}));return function(){e()}})),null})),d=a(0),u=function(){return Object(d.jsx)("nav",{children:Object(d.jsxs)("ul",{children:[Object(d.jsx)("li",{children:Object(d.jsxs)(o.b,{to:"/",children:["Home",Object(d.jsx)(l,{})]})}),Object(d.jsx)("li",{children:Object(d.jsxs)(o.b,{to:"/project-list",children:["Projects",Object(d.jsx)(l,{})]})}),Object(d.jsx)("li",{children:Object(d.jsxs)(o.b,{to:"/research-list",children:["Research",Object(d.jsx)(l,{})]})}),Object(d.jsx)("li",{children:Object(d.jsxs)(o.b,{to:"/volunteer",children:["Volunteer",Object(d.jsx)(l,{})]})}),Object(d.jsx)("li",{children:Object(d.jsxs)(o.b,{to:"/contact",children:["Contact",Object(d.jsx)(l,{})]})})]})})},m=function(){return Object(d.jsx)(d.Fragment,{children:Object(d.jsxs)("div",{class:"page-content",children:[Object(d.jsx)("h1",{children:"Prajwal"}),Object(d.jsx)("img",{src:"/prajwal.jpg",alt:"my-pic",class:"image-60"}),Object(d.jsx)("p",{children:"Hello, world! I am a Full Stack Developer with 5+ years of experience in FinTech, CryptoTech, MarTech and Telematics using MERN stack, Machine Learning and Software Engineering."}),Object(d.jsx)("p",{children:"I love to work with Rust, Typescript, Python and C++."}),Object(d.jsx)("p",{children:"I can solve your problems with high throughput, scalable and maintainable technologies. I can lead development and wear multiple hats with product, design, development, testing, deployment and support teams in a collaborative environment. In a team with great diversity, I will learn from the passionate and experienced and mentor the energetic and curious."}),Object(d.jsx)("h2",{children:"Share this website"}),Object(d.jsx)("img",{src:"/qr.png",alt:"qr-code",class:"image-40"})]})})},p=(a(29),function(){return Object(d.jsx)(d.Fragment,{children:Object(d.jsxs)("div",{class:"page-content",children:[Object(d.jsx)("h1",{children:"Contact"}),Object(d.jsxs)("table",{width:"100%",class:"social",children:[Object(d.jsxs)("tr",{children:[Object(d.jsxs)("td",{class:"tile",children:[Object(d.jsx)("a",{href:"https://calendly.com/dhatwalia",children:Object(d.jsx)("img",{src:"/icons/calendar.png",class:"icon",alt:"calendly"})}),Object(d.jsx)("br",{}),"Book an appointment"]}),Object(d.jsxs)("td",{class:"tile",children:[Object(d.jsx)("a",{href:"mailto:dh.prajwal@gmail.com",children:Object(d.jsx)("img",{src:"/icons/email.png",class:"icon",alt:"email"})}),Object(d.jsx)("br",{}),"Email"]}),Object(d.jsxs)("td",{class:"tile",children:[Object(d.jsx)("a",{href:"https://www.facebook.com/dh.prajwal",children:Object(d.jsx)("img",{src:"/icons/facebook.png",class:"icon",alt:"facebook"})}),Object(d.jsx)("br",{}),"Facebook"]})]}),Object(d.jsxs)("tr",{children:[Object(d.jsxs)("td",{class:"tile",children:[Object(d.jsx)("a",{href:"http://github.com/dhatwalia",children:Object(d.jsx)("img",{src:"/icons/github.png",class:"icon",alt:"github"})}),Object(d.jsx)("br",{}),"Github"]}),Object(d.jsxs)("td",{class:"tile",children:[Object(d.jsx)("a",{href:"https://www.linkedin.com/in/prajwal-dhatwalia/",children:Object(d.jsx)("img",{src:"/icons/linkedin.png",class:"icon",alt:"linkedin"})}),Object(d.jsx)("br",{}),"LinkedIn"]}),Object(d.jsxs)("td",{class:"tile",children:[Object(d.jsx)("a",{href:"http://twitter.com/dhatwalia97",children:Object(d.jsx)("img",{src:"/icons/twitter.png",class:"icon",alt:"twitter"})}),Object(d.jsx)("br",{}),"X (Twitter)"]})]})]})]})})}),f=[{name:"selection-ipl-ensembles-classifier",title:"Selection of Players and Team for an Indian Premier League Cricket Match Using Ensembles of Classifiers",date:"August 02, 2020",content:["The Indian Premier League is an annual cricket tournament administered by the Board for Control of Cricket in India. It is a 20 over format of playing cricket introduced in 2003 as a need for a shorter version of the game to counter the falling attendance of spectators. Currently, it is the 6th most attended league globally, and the world\u2019s most attended league as of 2016. ","The participating franchises form their teams by conducting an auction before the tournament from a pool of national and international cricket players of different countries. The auction starts with the \u2018marquee\u2019 list, where 16 players in two batches of eight each come up for bidding. The marquee lot is followed by capped and uncapped players: batsmen, all-rounders, wicket-keepers, fast bowlers and spinners. After the players have been presented for bidding, the accelerated process will enable franchises to nominate a set number of players from the remaining ones. The list is submitted on the first day, and the nominated players go up for bidding the next day. Once these players have been presented, the franchises will be asked to submit their wish list from the complete list of players. Those unsold will come up for auction after all the players have been called once. The list of unsold players, however, is drawn up subject to the franchises\u2019 request.","As per the new IPL player policy, each franchise can spend a maximum of INR 80 crore (USD 12.5m) on their squad salaries. The new rules also dictate that franchises spend 75% of the salary cap, which amounts to INR 60 crore (USD 9.4m approx.). The player retention rules stipulate that a team can retain a maximum of five players through a combination of pre-auction retention and Right-To-Match (RTM). A franchise can retain a maximum of three capped India players and two capped overseas players. Having each retained three players, Super Kings, Daredevils, Mumbai Indians and Royal Challengers have only two RTMs remaining. The other four franchises have three RTMs, each having retained no more than two players.","In order to predict the price of a batsman, there are several important parameters to consider. Runs are an essential parameter that tells us the best performance a player will give, which decides the player\u2019s popularity among fans. The batting average is the total number of runs a batsman has scored divided by the number of times they have been out, which tells us how consistent a batsman is, which is essential because the team must score within ten wickets, of which not all are specialized in batting. A batting strike rate is a measure of how frequently a batsman achieves the primary goal of batting, namely scoring runs, which is important because the speed at which the runs are scored is critical in high-scoring games. Balls faced is the number of balls that the batsman has played in the entire season. The batsman can bat in the first inning or the second inning, decided by the captain of the toss-winning team. Price is the output of our model.","In order to predict the price of a bowler, there are several important parameters to consider. Runs are an essential parameter that tells us how many runs a bowler has given in the past. The lesser runs he/she gives, the better the bowler. Bowling average is the ratio of runs conceded per wickets taken, meaning that the bowling average is, the better the bowler is performing, which tells us how much the bowler will allow the opponent to make runs. A lesser number of runs is preferred. Bowling strike rate is the balls bowled by wickets taken, which tells how quickly a bowler can take wickets. The economy runs per over, which tells if the bowler can bowl with lesser runs given. Balls bowled is the number of balls that the bowler has played in the entire season. The bowler can ball in the first inning or the second inning, decided by the captain of the toss-winning team. Price is the output of our model.","At present, choosing to bid for a player is done by eight people from each team. Each member has different expertise and contributes to the final decision-making, making it challenging to make decisions. Furthermore, pressure situations and hurried decisions which need to be made at the auction can lead to costly mistakes. The proposed model makes the decision-making more accurate, fast and less prone to errors. We can predict the price of a player based on his past performance.","Another problem that the present method suffers from is that opponents are often aware of the team\u2019s favourite player due to regional popularity. This knowledge has often been abused by the opponents to inflate the price of the desired players. Our model helps the bidder realize that the range of the price the player is expected to be sold at, making them aware of the same to adjust their budget plans.","Thirdly, the accuracy with which auctioneers can evaluate a player is dependent on their experience in evaluating players, which is also being taken care of by our model by using player historical performance to predict the cost.","In this work, we have shown how we can use neural networks and K-Means or Hierarchical clustering in place of clustering algorithms to represent data in a meaningful way to predict the best batsman/bowler to be sent next for a given match condition at an Indian Premier League Cricket Match. We predicted the best bowler/batsman for a given match condition using the match parameters of every ball. We carried out tests using various neural networks ranging from single-layered perceptron to multilayered multi-neuron neural networks, along with a variety of data representations. The neural network with three hidden layers perceptron gave the best results for batsman and bowlers, respectively. These neural networks can produce fast and accurate results within 3 seconds. The activation functions used were ReLu and SoftMax. We used K-Means and hierarchical clustering to generate data. We also predict an ideal team for a match using K-Means Clustering and hierarchical clustering, which found interesting and accurate patterns, constraints."],source:"https://ieeexplore.ieee.org/document/9198371"},{name:"prediction-ipl-regression",title:"Prediction of Player Price in IPL Auction Using Machine Learning Regression Algorithms",date:"August 02, 2020",content:["Cricket is administered by the Board for Control of Cricket in India(BCCI). The shortened 20-over format of playing cricket was introduced to counter the falling attendance of spectators. Since then, more and more countries have introduced this format of cricket. Currently, the Premier League (IPL) is an annual cricket tournament sixth most attended league globally, and the world's most attended league as of 2016.","The participating franchises form their teams by conducting an auction before the tournament from a pool of national and international cricket players of different countries. After the players have been presented for bidding, the accelerated process will enable franchises to nominate a set number of players from the remaining ones.","As per the new IPL player policy, each franchise can spend a maximum of INR 80 crore (USD 12.5m) on their squad salaries. The new rules also dictate that franchises spend 75% of the salary cap, which amounts to INR 60 crore (USD 9.4m approx.). The player retention rules stipulate that a team can retain a maximum of five players through a combination of pre-auction retention and Right- To-Match (RTM). A franchise can retain a maximum of three capped India players and two capped overseas players. Having each retained three players, Super Kings, Daredevils, Mumbai Indians and Royal Challengers have only two RTMs remaining. The other four franchises have three RTMs, each having retained no more than two players.","Team managers, who can serve only one team in a match, will have to manage their team in two innings: when the team is batting and when the same team is bowling/fielding. The team manager has to deal with target score, innings, wickets, over, ball, batsman (on strike), the batsman (not on strike) and the bowler bowling the over. The team will have to bat in one inning and bowl in the other inning, which is the captain of the toss winning team decides. The IPL match consists of 20 overs with six balls in each over. An over must be played in its entirety by a single bowler. The target score is the minimum score that the team should have made, in a particular ball of an over, to make the team likely win the match. Wickets are defined as the number of batsmen who have become out. A batter who has become out cannot bat for the rest of the match. At any given ball, there must be two batsmen on the pitch. A batter who has become out must be replaced.","In an IPL match, from the batting team manager's perspective, after one of his/her batsmen has become out, he/she must send another batsman to replace the one who has become out. The choice must be made in such a way that the batting team wins. To do so, the team manager has to choose a replacement batsman such that the batsman can perform well with the given match conditions. The match conditions that affect the batsman's performance include target score, innings, wickets, over, ball, the batsman (not out) and the bowler.","Similarly, from the bowling team manager's perspective, after each over, he/she must decide which bowler to send next. At the end of each over, the bowling/fielding team's manager must send a bowler such that the bowling/fielding team wins. To do so, the team manager has to choose a bowler for the next over such that the bowler can either make it hard for the opposing team's batsmen to score or make them 'out' within the given match conditions. The match conditions that affect the bowler's performance include target score, innings, wickets, over, ball, the batsman (on strike) and the batsman (not on strike).","We have attempted to solve these problems. Firstly, the decision to bid for a player is made by eight people from each team. Each member has different expertise and makes equal contributions to the final decision-making, making it challenging to make unanimous decisions. Furthermore, pressure situations and hurried decisions which need to be made at the auction can lead to costly mistakes. The proposed model makes the decision-making more accurate, fast and less prone to errors.","Another part of this problem is that the present method suffers from is that opponents are often aware of the team's favourite player due to regional popularity. The opponents have often abused this knowledge to inflate the price of the desired players. At present, the accuracy with which auctioneers can evaluate a player depends on their experience in evaluating the eight members of the bidding team.","Secondly, from the team manager's perspective, sending the batsman/bowler is done by either the team captain or the team manager. Team captains are often the ones to decide which batsman/bowler to send because they are always present near/on the field to make quick decisions. Their decisions are prone to errors due to their reliance on intuition and sentimental issues from playing in the cricket match. Team managers, who would be ideal for making independent decisions, are often not consulted because they do not have enough time to compare the match parameters with the previous match data. Their decisions are also prone to errors.","A player, who has not performed well or has not been given enough opportunities, might miss out on some opportunities that were better suited for him/her.","The first problem can be solved using a neural network to train a neural network with the player performance parameters & cluster numbers of the players and the price at which the player was sold for in the previous year.","The second problem can be solved using two neural networks to train the model for every ball that has been played in the past. By doing so, our network will accurately predict which batsman/bowler to send next.","We have used machine learning, a branch of computer science, to train the machine based on past data to predict future outcomes. Our problem is related to classification because it involves classifying which cluster number the batsman/bowler needs to belong to, given the match parameters. Artificial Neural Networks(ANNs) are composed of many highly interconnected processing elements (neurons) working in a multilayered structure that receives inputs, processes inputs, and produces an output. We used ANNs because they are tolerant to data quality issues and neither need normalization nor require independence assumptions. Furthermore, they provide faster and more accurate results when compared to other machine learning techniques.","We have used SoftMax and ReLu activation function. SoftMax is an activation function that uses x number of real numbered inputs and outputs a probabilistic value that is ideal in deciding which decision is when the output neural network has more than two neurons. ReLu is an activation function that outputs the positive real number if positive else outputs 0.","We have used the K-Means clustering technique, which can be used on well-separated data. The algorithm starts with random initial centroids with computation of the Euclidean distance from each data point. The closest centroid is the cluster to which a data point is marked. The centroids are then computed using the mean of all the data points belonging to it. This process is continued till the centroids change. Hierarchical clustering starts with each data point as a cluster and then merging the closest ones into one cluster. This cluster is then chosen as a data point, and the parent cluster is formed using it and the other points. This process is continued till the required numbers of clusters are obtained. The final result will be a dendrogram.","This work predicted the cost at which a player can be sold in the Indian Premier League Auction using machine learning-based algorithms. We estimated the players' selling price using their past performance parameters like runs, balls, innings, wickets and matches played. Tests were carried out in various machine learning models like Decision Tree Regressor, K-Nearest Neighbors (KNN), Linear Regression, Stochastic Logistic Regression, Random Forest Regressor and Support Vector Regression (SVR). Among these, SVR and Linear Regression gave the best results for predicting batsman and bowlers, respectively. These algorithms can produce fast and accurate results within 3 seconds, helping auctioneers make quick decisions. We have also considered the inflation factor and mapping the same to the budget during the model's training."],source:"https://ieeexplore.ieee.org/document/9198668"},{name:"jsf-sudoku",title:"Online Sudoku Generator and Solver for Competitions using Java Server Faces",date:"May 09, 2020",content:["The name \u201cSudoku\u201d originates from Japanese words: \u201csu\u201d, which means \u201cnumber,\u201d and \u201cdoku\u201d, which means \u201csingle\u201d. When translated into English, it most accurately means \u201csingle numbersonly\u201d. The game gained worldwide popularity in 2004, though when it was published by The Times in London. It has been reported to be the most significant trend since the invention of Rubik\u2019s Cube in the 1980s.","To win the Sudoku game, one must fill up all the vacant boxes with the allowed range of numbers in the Sudoku puzzle. All the entered numbers must follow specific rules. The fundamental requirement of solved Sudoku is that no row, column or subgrid can contain the same number twice.","We have specifically solved Rank 3 Sudoku puzzles which are the standard type and the most well-known. A sudoku rank refers to the square root of the number of blocks and subgrids that are present.","Well-formed Sudoku will have one unique solution and no other possible solutions when the given clues are at least 17. To keep the same swift check for solutions, we utilized the mathematical lower limit of given clues and ensured our options never exceeded that number.","We have chosen difficulties within the constraint previously discussed according to the number of possible combinations in the grid, excluding the givens changing. The fewer givens there are, the more potential combinations there are, and therefore, the harder to find the combination that works with the three rules of Sudoku. When setting the difficulty level, it is vital to ensure that the Sudoku generated will be well-formed.","Worldwide, Sudokus have gained much popularity due to annual Sudoku Championships being organized in locations where there is the scope of growth in the Professional Sudoku solvers community. Due to this rapid growth of Sudoku popularity, there has been a growth in demand for Sudoku generating and solving software. The programing problem is an NP-Complete. Our focus will be on writing software for organizing a free and fair competition.","Sudoku is a trendy pass-time game that had gained much popularity when it was published by The Times in London. We have used Java Server Faces (JSF) as a tool for the Full-Stack development of Sudoku as a web browser-based game. By building this project, we had gained a better understanding of the framework. In this work, we present an algorithm for solving the Sudoku problem and a safe way of validating the results keeping scalability in mind."],source:"https://www.techrxiv.org/articles/preprint/Online_Sudoku_Generator_and_Solver_for_Competitions_using_Java_Server_Faces/12093732/1"}],b=function(e){var t=e.research;return Object(d.jsx)(d.Fragment,{children:t.map((function(e,t){return Object(d.jsxs)(o.b,{className:"list-item",to:"/research/".concat(e.name),children:[Object(d.jsx)("h3",{children:e.title}),Object(d.jsxs)("p",{children:[e.content[0].substring(0,150),"..."]}),Object(d.jsx)(l,{})]},t)}))})},g=function(){return Object(d.jsx)("h1",{children:"404: Page Not Found"})},w=function(e){var t=e.match.params.name,a=f.find((function(e){return e.name===t}));if(!a)return Object(d.jsx)(g,{});var n=f.filter((function(e){return e.name!==t}));return Object(d.jsx)(d.Fragment,{children:Object(d.jsxs)("div",{class:"page-content",children:[Object(d.jsx)("h1",{children:a.title}),Object(d.jsxs)("h4",{children:["Published on: ",a.date]}),a.content.map((function(e,t){return Object(d.jsx)("div",{children:Object(d.jsx)("p",{children:e},t)})})),Object(d.jsx)("a",{class:"button",href:a.source,target:"_blank",rel:"noreferrer",children:"Source"}),Object(d.jsx)("h3",{children:"Other Research:"}),Object(d.jsx)(b,{research:n})]})})},j=function(){return Object(d.jsx)(d.Fragment,{children:Object(d.jsxs)("div",{class:"page-content",children:[Object(d.jsx)("h1",{children:"Research"}),Object(d.jsx)(b,{research:f})]})})},v=[{name:"insurance-advisor",title:"Insurance Advisor Software",skills:"Django, Bootstrap, Machine Learning",content:["The Insurance advisor software was designed to collect information about the user\u2019s needs and history and suggest suitable insurance plans. The software is consumer-centric because it prioritizes ample coverage over the price of insurance. It may not guarantee the cheapest coverage, but it will guarantee that the consumer has as much coverage as required with a few extra dollars. The goal of this research is to ensure that consumers have adequate coverage when filing for insurance claims while allowing users to pick low-cost insurance policies. ","Types of insurance provided include Automobile Insurance, House Insurance, Term Life Insurance, Disability Insurance, Health Insurance and Umbrella Policy. The software was implemented in Django with Python backend along with the MySQL database. We used Linear regression, Ridge regression, Bayesian Ridge regression, Lasso Regression, Lasso LARS regression and a deep neural network with four hidden layers, Decision Tree Regression, Ada Boost Regression, Gradient Boosting Regression, XG Boost Regression, Random Forest Regression, Extra Tree Regression, Support Vector Regression, K Nearest Neighbors Regression, Bagging Regression and Voting Regression to predict the insurance premium based on the user\u2019s health. Of all the methods used, Voting Regression with an ensemble of two Gradient Boosting Regressession models gave the most negligible Mean Absolute Error(MAE).","The software that targets citizens of Ontario, Canada who want to purchase private insurance. But in the future, the software can be updated to provide insurance as per regulations of individual provinces and possibly of other countries as well. This will require keeping track of the minimum insurance requirements of each province and country by law."],source:"https://github.com/dhatwalia/insurance"},{name:"optimal-hospital",title:"Optimal hospital placement for COVID-19 patients",skills:"Machine Learning, Optimization",content:["At present, cases of COVID-19 are appearing in a non- uniform manner across the country. This distribution is hard to predict because travel of people from one place to another is influenced by many factors including work, education, climate, geopolitical factors etc. In the ever so connected world that we live, it makes it even more dif- ficult to track the spread of diseases. At present, setting up of hospitals is done in a localized manner. Macroscopic influences over number of patients visiting hospitals is not considered. When a hospital is having too many patients in an area, newer hospitals are set-up in order to accomodate for the healthcare requirement. This approach works with seasonal factors affecting spread of diseases. However, in a pandemic, spread of disease does not always follow the same pattern. The current medical health system is at risk of being overburdened by patients if the number of cases was to spike uncontrollably. To prepare ourselves for the worst- case scenario, the right decisions must be made quickly when upgrading the medical infrastructure of the country.","In a pandemic, in some places the number of are much higher than others. For example in places like Toronto and Montreal, where the number of travellers is more, the number of cases is also high. Whereas in other places like Thunder- Bay and Manitoba, the number of cases is low. The rate of spread is also influenced by the number of people travelling in and out of a city. This could rapidly change the number of patients that a hospital expects. This could be as a con- sequence of the early opening up of businesses or lack of preventive action. Therefore, there is a need for software that will determine which is the optimal place to set-up a hospital from a list of suitable sites. It is necessary that the software will rely on the latest data so that action can be taken as suited. The software needs to be able to accommodate rapid change in the COVID-19 hot-spots before the location of the hospitals needed is finalized. The software should yield fast results in order to help in quick decision making.","If we were to apply only optimization techniques towards solving this problem, then we would suffer from an instability in the solution. Each new patient getting added to the list of patients would require an alteration to the hospital site. Furthermore, it is also not possible to set up hospitals at the optimal location because of the site might not be available for constructing hospital. Some other building might already be occupying that location.","If we were to apply clustering algorithm, we would end up with centroid which would be ideal for setting up hospitals. But the centroids themselves might not be able available for constructing hospitals. Therefore, I have proposed a software that will use a com- bination of clustering and linear programming to minimize the distance of the patients from the hospitals.","In order to solve the problem, we must know at-least the lo- cation of sites that are available for constructing the hospitals and the location of patients. First I have clustered the patients in order to bring the number of patient-groups to a manageable level. This also helps increase the stability of the optimal solution. Then I have used Linear Programming to determine the hospital in such a way that each cluster is assigned only 1 hospital.","For as many patients as possible, these hospitals should be as accessible as possible. We must minimize the total distance that everyone has to travel to reach these hospitals to achieve maximum efficiency in COVID-19 isolation."],source:"https://github.com/dhatwalia/optimal-hospital-placement"},{name:"jsf-sudoku-solver",title:"JSF based Sudoku Solver",skills:"Java, JSF",content:["A Sudoku puzzle made up of 9x9 grid filled with numbers ranging from 1-9. The entire puzzle itself is divided into 9 3x3 sub-grids. The number of numbers already given can be used to greatly effect the difficulty of solving the puzzle. There are other versions of Sudoku with their own twists like including extra 3x3 subgrids in the intersection of the original 9 grids and so on. We spoke of the difficulty and number of combinations a single sudoku puzzle can have which makes it computationally difficult to find all solutions or the solutions that fall within certain characteristics.","We have successfully implemented a Sudoku puzzle in JSF. Though there is a lot of scope for improvement, the Sudoku puzzle itself will accurately generate a solved puzzle and check the correctness of the user\u2019s solution.","The main benefit of using our program is that the high complexity task of generating the Sudoku is quickly performed at the server side and checking for the correctness is done at the client side. This eliminates the need of sending the data from the server to the client and vice versa. Another implication of doing so is that we eliminate the risk of man in the middle attack.","This project through the usage of publicly available components showcases the benefits of using JSF and its wide variety of components whilst developing the complex parts in Java."],source:"https://github.com/dhatwalia/sudoku-solver"},{name:"gan-captcha-gen",title:"Generating digits for captcha using Generative Adversarial Network",skills:"Machine Learning, Deep Learning, Neural Networks",content:["We propose to generate digits for Captcha using Generative Adversarial Network(GAN). The captcha will be made up of digits only because it reduces the time it takes for a human to solve the captcha. This will also eliminate the need of manually generate captcha and increase the diversity in our captcha dataset. Since our captcha is made up of only digits, it also takes less time for humans to solve. Additionally, it is more language neutral.","Captcha was first introduced as an automated test to deter- mine if the user is a human or not. It generates a sequence of characters that humans can understand, but computers cannot. The human must enter the sequence in the text-box, that comes along with the it, in the order to solve the it. Due to its reliability, it has been considered useful by many websites. Text based captchas can take 11.5 seconds to solve.","Generative Adversarial Network(GAN) is a neural network which simultaneously train two models: a generator that cap- tures the data distribution, and a discriminator that determines the probability that a sample came from the training data. This discriminator can be trained from real samples and generate fake images using the generator.","We can use MNIST database of handwritten digits to solve the problem of training our discriminator. It has 60,000 training and 10,000 testing data samples. The data is publicly available and free to use in keras python library."],source:"https://github.com/dhatwalia/captcha_gen"},{name:"auto-man-sys",title:"Automobile Management System",skills:"PHP, MySQL, HTML, CSS",content:["Customers often don't have a convenient means to find a dealer that will sell the particular model of vehicle that they want. Having a database of automobiles will help them choose from a list of dealers that sell that particular model of vehicle. After booking the vehicle and making the payment, customers often don't have any reliable means for keeping track of how much progress has been made for the order that they have placed. They may at times rely on phone numbers to know where their vehicle is in the process of manufacturing, within the factory.","The aim of our project is to allow customers to conveniently book vehicles for purchase and track the progress made in the factory. This will be done through a web based application that will be connected to a database.","The customer will be able to place an order for a particular brand and model of vehicle. He/she can choose the color, no. of cylinders, transmission type for the vehicle of their choice and set a deadline for this vehicle to be delivered. Once the dealer is chosen and the specifications for the order have been provided, the database will store the order and vehicle details.","The dealer can update the cost of the vehicle. He/she decides the default price for a certain brand and model during registration. It is up to the dealer to decide whether the order is feasible or not. If it's not feasible, the dealer can delete the order.","The factory from time to time can update the status of the vehicle so that the customer can keep track of where the vehicle is in the process of manufacturing for the customer's particular vehicle.","Using our database, customers will be able to conveniently find a dealer to book the particular model of vehicle that they want. After booking, the customers will have a reliable way for keeping track of the progress made for each order that the customer had placed.","This will save the customer's time and money in looking for a dealer for a model of vehicle of customer's choice. This project will also make it easier for the customer to track the progress made in the factory for their particular order.","In future, this HTML-PHP based webpages can be upgraded to dynamically calculate the price of the variant that the customer wants. A payment gateway can also be attached with it so that the customers can make payment for it online and hence avoid having to go to the dealer."],source:"https://github.com/dhatwalia/auto-man-sys"}],y=function(e){var t=e.project;return Object(d.jsx)(d.Fragment,{children:t.map((function(e,t){return Object(d.jsxs)(o.b,{className:"list-item",to:"/project/".concat(e.name),children:[Object(d.jsx)("h3",{children:e.title}),Object(d.jsxs)("p",{children:[e.content[0].substring(0,150),"..."]}),Object(d.jsx)(l,{})]},t)}))})},k=function(e){var t=e.match.params.name,a=v.find((function(e){return e.name===t}));if(!a)return Object(d.jsx)(g,{});var n=v.filter((function(e){return e.name!==t}));return Object(d.jsx)(d.Fragment,{children:Object(d.jsxs)("div",{class:"page-content",children:[Object(d.jsx)("h1",{children:a.title}),Object(d.jsxs)("h4",{children:["Tech. Skills: ",a.skills]}),a.content.map((function(e,t){return Object(d.jsx)("div",{children:Object(d.jsx)("p",{children:e},t)})})),Object(d.jsx)("a",{class:"button",href:a.source,target:"_blank",rel:"noreferrer",children:"See project"}),Object(d.jsx)("h3",{children:"Other Project:"}),Object(d.jsx)(y,{project:n})]})})},x=function(){return Object(d.jsx)(d.Fragment,{children:Object(d.jsxs)("div",{class:"page-content",children:[Object(d.jsx)("h1",{children:"Projects"}),Object(d.jsx)(y,{project:v})]})})},O=function(){return Object(d.jsx)(d.Fragment,{children:Object(d.jsxs)("div",{class:"page-content",children:[Object(d.jsx)("h1",{children:"Volunteer"}),Object(d.jsx)("img",{src:"/helpage-india.png",alt:"help-age-india-logo",class:"image-100"}),Object(d.jsx)("p",{children:"HelpAge India is a charity in India that has worked with and for disadvantaged elderly for nearly four decades. It has been running in India since 1978. There is an estimated 106 million elderly in India. HelpAge advocates for their needs, such as Universal Pension, quality healthcare and abuse faced by senior citizens. It advocates for elder-friendly policies and works towards their implementation. It also works with Senior Citizens Associations to understand the needs of the disadvantaged elderly by working with them."}),Object(d.jsx)("p",{children:"The aim is to help elders live active, dignified and healthier lives. HelpAge's focus over the years has moved from Welfare to Development."}),Object(d.jsxs)("figure",{children:[Object(d.jsx)("img",{src:"/helping-elders.jpg",alt:"covid19-relief-india",class:"image-80"}),Object(d.jsx)("figcaption",{children:"Distribution of family Survival Kits for senior citizens in Kannigapuram, Chennai, India during COVID-19 pandemic."})]}),Object(d.jsx)("p",{children:"It provides elderly relief through various interventions for the elderly. It features one of the most extensive mobile healthcare programs through its Mobile Healthcare Units in India. It provides free healthcare services to destitute elders. It also helps elders earn their livelihood through the formation of Elder-Self-Help Groups, making them self-reliant. It conducts cataract surgeries to restore their sight. It's Support-a-Gran program looks after their basic needs. It also features Elder Helplines across India. It provides relief and rehabilitation for elders post disasters."}),Object(d.jsx)("a",{class:"button",href:"https://www.helpageindia.org/donate/",target:"_blank",rel:"noreferrer",children:"Donate"}),Object(d.jsx)("br",{}),Object(d.jsx)("br",{}),Object(d.jsx)("hr",{}),Object(d.jsx)("img",{src:"/bluesea.jpg",alt:"bluesea-foundation-logo",class:"image-100"}),Object(d.jsx)("p",{children:"Blue Sea Foundation is a Canadian charitable foundation that has been working with other charities to make the world better since 2010. Headquatered in Kitchener, they work exclusively with social service charities who serve the most precarious, marginalized, and neglected people in Canada and around the world."}),Object(d.jsxs)("p",{children:["They are known mainly for their three charitable campagins:",Object(d.jsxs)("ol",{children:[Object(d.jsx)("li",{children:"Coldest Night of the years - A winterrific family-friendly walk to raise money for local charities serving people experiencing hurt, hunger, and homelessness."}),Object(d.jsx)("li",{children:"Ride for Refuge - A family-friendly cycling and walking fundraiser that supports charities who provide refuge and hope for displaced, vulnerable, and exploited people everywhere."}),Object(d.jsx)("li",{children:"The Grand Parade - A super-fun, family-friendly fundraising walk that celebrates and supports aging Canadians and their families across Canada."})]})]}),Object(d.jsxs)("figure",{children:[Object(d.jsx)("img",{src:"/homeless.jpg",alt:"homeless-person",class:"image-80"}),Object(d.jsx)("figcaption",{children:"A helpless homeless person braving the harsh winter."})]}),Object(d.jsx)("p",{children:"They are driven by the suffering and need in our world, and believe that the best way to make a difference is to build your charity's fundraising and financial health. What powers their efforts is the deep desire to see charities better funded and thriving as a force in our communities."}),Object(d.jsx)("a",{class:"button",href:"http://www.blueseafoundation.org/",target:"_blank",rel:"noreferrer",children:"Website"}),Object(d.jsx)("br",{}),Object(d.jsx)("br",{}),Object(d.jsx)("hr",{}),Object(d.jsx)("img",{src:"/sickkids.jpg",alt:"bluesea-foundation-logo",class:"image-100"}),Object(d.jsx)("p",{children:"SickKids Foundation is a charitable foundation that supports The Hospital for Sick Children in Toronto, Canada. They believe that fighting for the health and wellbeing of children is one of the most powerful ways to improve society. They are committed to fostering an inclusive, accessible environment, where all individuals feel valued, respected and supported."}),Object(d.jsxs)("figure",{children:[Object(d.jsx)("img",{src:"/sickkids-cheque.jpg",alt:"homeless-person",class:"image-80"}),Object(d.jsx)("figcaption",{children:"Ontario Schools Battery Recycling Challenge(OSBRC) gives a $1769.36 check to SickKids Foundation in Toronto dated June 10, 2019."})]}),Object(d.jsx)("p",{children:"Their goal is to save lives, find new cures and provide world-class care. They are also fighting against the limits of a 70-year-old hospital where parts of the building dont meet modern building codes. Their most vulnerable patients are crammed into overcrowded rooms. Their our outdated spaces cant accommodate the weight of an MRI machine. Thats why they are trying to raise $1.5 billion dollars in donations. They need you on our side in the SickKids VS Limits Campaign, the biggest fundraising campaign in Canadian health-care history, to help build a brand-new hospital."}),Object(d.jsx)("a",{class:"button",href:"https://secure.sickkidsfoundation.com/donate?_ga=2.74558546.1389146586.1663201382-1329499667.1663201382",target:"_blank",rel:"noreferrer",children:"Donate"}),Object(d.jsx)("br",{}),Object(d.jsx)("br",{}),Object(d.jsx)("hr",{})]})})};r.a.render(Object(d.jsx)(i.a.StrictMode,{children:Object(d.jsx)(o.a,{children:Object(d.jsxs)("div",{children:[Object(d.jsx)(u,{}),Object(d.jsx)("div",{id:"page-body",children:Object(d.jsxs)(h.c,{children:[Object(d.jsx)(h.a,{path:"/",component:m,exact:!0}),Object(d.jsx)(h.a,{path:"/contact",component:p}),Object(d.jsx)(h.a,{path:"/research/:name",component:w}),Object(d.jsx)(h.a,{path:"/research-list",component:j}),Object(d.jsx)(h.a,{path:"/project/:name",component:k}),Object(d.jsx)(h.a,{path:"/project-list",component:x}),Object(d.jsx)(h.a,{path:"/volunteer",component:O}),Object(d.jsx)(h.a,{component:g})]})})]})})}),document.getElementById("root")),"/"===window.location.pathname||window.location.pathname.startsWith("/static/")||(window.location.href="/"),c()}},[[30,1,2]]]);
-//# sourceMappingURL=main.562965ba.chunk.js.map
\ No newline at end of file
+(this.webpackJsonpprajwal=this.webpackJsonpprajwal||[]).push([[0],{22:function(e,t,a){},29:function(e,t,a){},30:function(e,t,a){"use strict";a.r(t);a(17);var n=a(1),i=a.n(n),s=a(15),r=a.n(s),o=a(4),h=a(2),c=function(e){e&&e instanceof Function&&a.e(3).then(a.bind(null,31)).then((function(t){var a=t.getCLS,n=t.getFID,i=t.getFCP,s=t.getLCP,r=t.getTTFB;a(e),n(e),i(e),s(e),r(e)}))};a(22);var l=Object(h.f)((function(e){var t=e.history;return Object(n.useEffect)((function(){var e=t.listen((function(){window.scrollTo(0,0)}));return function(){e()}})),null})),d=a(0),u=function(){return Object(d.jsx)("nav",{children:Object(d.jsxs)("ul",{children:[Object(d.jsx)("li",{children:Object(d.jsxs)(o.b,{to:"/",children:["Home",Object(d.jsx)(l,{})]})}),Object(d.jsx)("li",{children:Object(d.jsxs)(o.b,{to:"/project-list",children:["Projects",Object(d.jsx)(l,{})]})}),Object(d.jsx)("li",{children:Object(d.jsxs)(o.b,{to:"/research-list",children:["Research",Object(d.jsx)(l,{})]})}),Object(d.jsx)("li",{children:Object(d.jsxs)(o.b,{to:"/volunteer",children:["Volunteer",Object(d.jsx)(l,{})]})}),Object(d.jsx)("li",{children:Object(d.jsxs)(o.b,{to:"/contact",children:["Contact",Object(d.jsx)(l,{})]})})]})})},m=function(){return Object(d.jsx)(d.Fragment,{children:Object(d.jsxs)("div",{class:"page-content",children:[Object(d.jsx)("h1",{children:"Prajwal"}),Object(d.jsx)("img",{src:"/prajwal.jpg",alt:"my-pic",class:"image-60"}),Object(d.jsx)("p",{children:"Hello, world! I am a Full Stack Developer with 5+ years of experience in FinTech, CryptoTech, MarTech and Telematics using MERN stack, Machine Learning and Software Engineering."}),Object(d.jsx)("p",{children:"I love to work with Rust, Typescript, Python and C++."}),Object(d.jsx)("p",{children:"I can solve your problems with high throughput, scalable and maintainable technologies. I can lead development and wear multiple hats with product, design, development, testing, deployment and support teams in a collaborative environment. In a team with great diversity, I will learn from the passionate and experienced and mentor the energetic and curious."}),Object(d.jsx)("h2",{children:"Share this website"}),Object(d.jsx)("img",{src:"/qr.png",alt:"qr-code",class:"image-40"})]})})},p=(a(29),function(){return Object(d.jsx)(d.Fragment,{children:Object(d.jsxs)("div",{class:"page-content",children:[Object(d.jsx)("h1",{children:"Contact"}),Object(d.jsxs)("table",{width:"100%",class:"social",children:[Object(d.jsxs)("tr",{children:[Object(d.jsxs)("td",{class:"tile",children:[Object(d.jsx)("a",{href:"https://calendly.com/dhatwalia",children:Object(d.jsx)("img",{src:"/icons/calendar.png",class:"icon",alt:"calendly"})}),Object(d.jsx)("br",{}),"Book an appointment"]}),Object(d.jsxs)("td",{class:"tile",children:[Object(d.jsx)("a",{href:"mailto:dh.prajwal@gmail.com",children:Object(d.jsx)("img",{src:"/icons/email.png",class:"icon",alt:"email"})}),Object(d.jsx)("br",{}),"Email"]}),Object(d.jsxs)("td",{class:"tile",children:[Object(d.jsx)("a",{href:"https://www.facebook.com/dh.prajwal",children:Object(d.jsx)("img",{src:"/icons/facebook.png",class:"icon",alt:"facebook"})}),Object(d.jsx)("br",{}),"Facebook"]})]}),Object(d.jsxs)("tr",{children:[Object(d.jsxs)("td",{class:"tile",children:[Object(d.jsx)("a",{href:"http://github.com/dhatwalia",children:Object(d.jsx)("img",{src:"/icons/github.png",class:"icon",alt:"github"})}),Object(d.jsx)("br",{}),"Github"]}),Object(d.jsxs)("td",{class:"tile",children:[Object(d.jsx)("a",{href:"https://www.linkedin.com/in/prajwal-dhatwalia/",children:Object(d.jsx)("img",{src:"/icons/linkedin.png",class:"icon",alt:"linkedin"})}),Object(d.jsx)("br",{}),"LinkedIn"]}),Object(d.jsxs)("td",{class:"tile",children:[Object(d.jsx)("a",{href:"http://twitter.com/dhatwalia97",children:Object(d.jsx)("img",{src:"/icons/twitter.png",class:"icon",alt:"twitter"})}),Object(d.jsx)("br",{}),"X (Twitter)"]})]})]})]})})}),f=[{name:"selection-ipl-ensembles-classifier",title:"Selection of Players and Team for an Indian Premier League Cricket Match Using Ensembles of Classifiers",date:"August 02, 2020",content:["The Indian Premier League is an annual cricket tournament administered by the Board for Control of Cricket in India. It is a 20 over format of playing cricket introduced in 2003 as a need for a shorter version of the game to counter the falling attendance of spectators. Currently, it is the 6th most attended league globally, and the world\u2019s most attended league as of 2016. ","The participating franchises form their teams by conducting an auction before the tournament from a pool of national and international cricket players of different countries. The auction starts with the \u2018marquee\u2019 list, where 16 players in two batches of eight each come up for bidding. The marquee lot is followed by capped and uncapped players: batsmen, all-rounders, wicket-keepers, fast bowlers and spinners. After the players have been presented for bidding, the accelerated process will enable franchises to nominate a set number of players from the remaining ones. The list is submitted on the first day, and the nominated players go up for bidding the next day. Once these players have been presented, the franchises will be asked to submit their wish list from the complete list of players. Those unsold will come up for auction after all the players have been called once. The list of unsold players, however, is drawn up subject to the franchises\u2019 request.","As per the new IPL player policy, each franchise can spend a maximum of INR 80 crore (USD 12.5m) on their squad salaries. The new rules also dictate that franchises spend 75% of the salary cap, which amounts to INR 60 crore (USD 9.4m approx.). The player retention rules stipulate that a team can retain a maximum of five players through a combination of pre-auction retention and Right-To-Match (RTM). A franchise can retain a maximum of three capped India players and two capped overseas players. Having each retained three players, Super Kings, Daredevils, Mumbai Indians and Royal Challengers have only two RTMs remaining. The other four franchises have three RTMs, each having retained no more than two players.","In order to predict the price of a batsman, there are several important parameters to consider. Runs are an essential parameter that tells us the best performance a player will give, which decides the player\u2019s popularity among fans. The batting average is the total number of runs a batsman has scored divided by the number of times they have been out, which tells us how consistent a batsman is, which is essential because the team must score within ten wickets, of which not all are specialized in batting. A batting strike rate is a measure of how frequently a batsman achieves the primary goal of batting, namely scoring runs, which is important because the speed at which the runs are scored is critical in high-scoring games. Balls faced is the number of balls that the batsman has played in the entire season. The batsman can bat in the first inning or the second inning, decided by the captain of the toss-winning team. Price is the output of our model.","In order to predict the price of a bowler, there are several important parameters to consider. Runs are an essential parameter that tells us how many runs a bowler has given in the past. The lesser runs he/she gives, the better the bowler. Bowling average is the ratio of runs conceded per wickets taken, meaning that the bowling average is, the better the bowler is performing, which tells us how much the bowler will allow the opponent to make runs. A lesser number of runs is preferred. Bowling strike rate is the balls bowled by wickets taken, which tells how quickly a bowler can take wickets. The economy runs per over, which tells if the bowler can bowl with lesser runs given. Balls bowled is the number of balls that the bowler has played in the entire season. The bowler can ball in the first inning or the second inning, decided by the captain of the toss-winning team. Price is the output of our model.","At present, choosing to bid for a player is done by eight people from each team. Each member has different expertise and contributes to the final decision-making, making it challenging to make decisions. Furthermore, pressure situations and hurried decisions which need to be made at the auction can lead to costly mistakes. The proposed model makes the decision-making more accurate, fast and less prone to errors. We can predict the price of a player based on his past performance.","Another problem that the present method suffers from is that opponents are often aware of the team\u2019s favourite player due to regional popularity. This knowledge has often been abused by the opponents to inflate the price of the desired players. Our model helps the bidder realize that the range of the price the player is expected to be sold at, making them aware of the same to adjust their budget plans.","Thirdly, the accuracy with which auctioneers can evaluate a player is dependent on their experience in evaluating players, which is also being taken care of by our model by using player historical performance to predict the cost.","In this work, we have shown how we can use neural networks and K-Means or Hierarchical clustering in place of clustering algorithms to represent data in a meaningful way to predict the best batsman/bowler to be sent next for a given match condition at an Indian Premier League Cricket Match. We predicted the best bowler/batsman for a given match condition using the match parameters of every ball. We carried out tests using various neural networks ranging from single-layered perceptron to multilayered multi-neuron neural networks, along with a variety of data representations. The neural network with three hidden layers perceptron gave the best results for batsman and bowlers, respectively. These neural networks can produce fast and accurate results within 3 seconds. The activation functions used were ReLu and SoftMax. We used K-Means and hierarchical clustering to generate data. We also predict an ideal team for a match using K-Means Clustering and hierarchical clustering, which found interesting and accurate patterns, constraints."],source:"https://ieeexplore.ieee.org/document/9198371"},{name:"prediction-ipl-regression",title:"Prediction of Player Price in IPL Auction Using Machine Learning Regression Algorithms",date:"August 02, 2020",content:["Cricket is administered by the Board for Control of Cricket in India(BCCI). The shortened 20-over format of playing cricket was introduced to counter the falling attendance of spectators. Since then, more and more countries have introduced this format of cricket. Currently, the Premier League (IPL) is an annual cricket tournament sixth most attended league globally, and the world's most attended league as of 2016.","The participating franchises form their teams by conducting an auction before the tournament from a pool of national and international cricket players of different countries. After the players have been presented for bidding, the accelerated process will enable franchises to nominate a set number of players from the remaining ones.","As per the new IPL player policy, each franchise can spend a maximum of INR 80 crore (USD 12.5m) on their squad salaries. The new rules also dictate that franchises spend 75% of the salary cap, which amounts to INR 60 crore (USD 9.4m approx.). The player retention rules stipulate that a team can retain a maximum of five players through a combination of pre-auction retention and Right- To-Match (RTM). A franchise can retain a maximum of three capped India players and two capped overseas players. Having each retained three players, Super Kings, Daredevils, Mumbai Indians and Royal Challengers have only two RTMs remaining. The other four franchises have three RTMs, each having retained no more than two players.","Team managers, who can serve only one team in a match, will have to manage their team in two innings: when the team is batting and when the same team is bowling/fielding. The team manager has to deal with target score, innings, wickets, over, ball, batsman (on strike), the batsman (not on strike) and the bowler bowling the over. The team will have to bat in one inning and bowl in the other inning, which is the captain of the toss winning team decides. The IPL match consists of 20 overs with six balls in each over. An over must be played in its entirety by a single bowler. The target score is the minimum score that the team should have made, in a particular ball of an over, to make the team likely win the match. Wickets are defined as the number of batsmen who have become out. A batter who has become out cannot bat for the rest of the match. At any given ball, there must be two batsmen on the pitch. A batter who has become out must be replaced.","In an IPL match, from the batting team manager's perspective, after one of his/her batsmen has become out, he/she must send another batsman to replace the one who has become out. The choice must be made in such a way that the batting team wins. To do so, the team manager has to choose a replacement batsman such that the batsman can perform well with the given match conditions. The match conditions that affect the batsman's performance include target score, innings, wickets, over, ball, the batsman (not out) and the bowler.","Similarly, from the bowling team manager's perspective, after each over, he/she must decide which bowler to send next. At the end of each over, the bowling/fielding team's manager must send a bowler such that the bowling/fielding team wins. To do so, the team manager has to choose a bowler for the next over such that the bowler can either make it hard for the opposing team's batsmen to score or make them 'out' within the given match conditions. The match conditions that affect the bowler's performance include target score, innings, wickets, over, ball, the batsman (on strike) and the batsman (not on strike).","We have attempted to solve these problems. Firstly, the decision to bid for a player is made by eight people from each team. Each member has different expertise and makes equal contributions to the final decision-making, making it challenging to make unanimous decisions. Furthermore, pressure situations and hurried decisions which need to be made at the auction can lead to costly mistakes. The proposed model makes the decision-making more accurate, fast and less prone to errors.","Another part of this problem is that the present method suffers from is that opponents are often aware of the team's favourite player due to regional popularity. The opponents have often abused this knowledge to inflate the price of the desired players. At present, the accuracy with which auctioneers can evaluate a player depends on their experience in evaluating the eight members of the bidding team.","Secondly, from the team manager's perspective, sending the batsman/bowler is done by either the team captain or the team manager. Team captains are often the ones to decide which batsman/bowler to send because they are always present near/on the field to make quick decisions. Their decisions are prone to errors due to their reliance on intuition and sentimental issues from playing in the cricket match. Team managers, who would be ideal for making independent decisions, are often not consulted because they do not have enough time to compare the match parameters with the previous match data. Their decisions are also prone to errors.","A player, who has not performed well or has not been given enough opportunities, might miss out on some opportunities that were better suited for him/her.","The first problem can be solved using a neural network to train a neural network with the player performance parameters & cluster numbers of the players and the price at which the player was sold for in the previous year.","The second problem can be solved using two neural networks to train the model for every ball that has been played in the past. By doing so, our network will accurately predict which batsman/bowler to send next.","We have used machine learning, a branch of computer science, to train the machine based on past data to predict future outcomes. Our problem is related to classification because it involves classifying which cluster number the batsman/bowler needs to belong to, given the match parameters. Artificial Neural Networks(ANNs) are composed of many highly interconnected processing elements (neurons) working in a multilayered structure that receives inputs, processes inputs, and produces an output. We used ANNs because they are tolerant to data quality issues and neither need normalization nor require independence assumptions. Furthermore, they provide faster and more accurate results when compared to other machine learning techniques.","We have used SoftMax and ReLu activation function. SoftMax is an activation function that uses x number of real numbered inputs and outputs a probabilistic value that is ideal in deciding which decision is when the output neural network has more than two neurons. ReLu is an activation function that outputs the positive real number if positive else outputs 0.","We have used the K-Means clustering technique, which can be used on well-separated data. The algorithm starts with random initial centroids with computation of the Euclidean distance from each data point. The closest centroid is the cluster to which a data point is marked. The centroids are then computed using the mean of all the data points belonging to it. This process is continued till the centroids change. Hierarchical clustering starts with each data point as a cluster and then merging the closest ones into one cluster. This cluster is then chosen as a data point, and the parent cluster is formed using it and the other points. This process is continued till the required numbers of clusters are obtained. The final result will be a dendrogram.","This work predicted the cost at which a player can be sold in the Indian Premier League Auction using machine learning-based algorithms. We estimated the players' selling price using their past performance parameters like runs, balls, innings, wickets and matches played. Tests were carried out in various machine learning models like Decision Tree Regressor, K-Nearest Neighbors (KNN), Linear Regression, Stochastic Logistic Regression, Random Forest Regressor and Support Vector Regression (SVR). Among these, SVR and Linear Regression gave the best results for predicting batsman and bowlers, respectively. These algorithms can produce fast and accurate results within 3 seconds, helping auctioneers make quick decisions. We have also considered the inflation factor and mapping the same to the budget during the model's training."],source:"https://ieeexplore.ieee.org/document/9198668"},{name:"jsf-sudoku",title:"Online Sudoku Generator and Solver for Competitions using Java Server Faces",date:"May 09, 2020",content:["The name \u201cSudoku\u201d originates from Japanese words: \u201csu\u201d, which means \u201cnumber,\u201d and \u201cdoku\u201d, which means \u201csingle\u201d. When translated into English, it most accurately means \u201csingle numbersonly\u201d. The game gained worldwide popularity in 2004, though when it was published by The Times in London. It has been reported to be the most significant trend since the invention of Rubik\u2019s Cube in the 1980s.","To win the Sudoku game, one must fill up all the vacant boxes with the allowed range of numbers in the Sudoku puzzle. All the entered numbers must follow specific rules. The fundamental requirement of solved Sudoku is that no row, column or subgrid can contain the same number twice.","We have specifically solved Rank 3 Sudoku puzzles which are the standard type and the most well-known. A sudoku rank refers to the square root of the number of blocks and subgrids that are present.","Well-formed Sudoku will have one unique solution and no other possible solutions when the given clues are at least 17. To keep the same swift check for solutions, we utilized the mathematical lower limit of given clues and ensured our options never exceeded that number.","We have chosen difficulties within the constraint previously discussed according to the number of possible combinations in the grid, excluding the givens changing. The fewer givens there are, the more potential combinations there are, and therefore, the harder to find the combination that works with the three rules of Sudoku. When setting the difficulty level, it is vital to ensure that the Sudoku generated will be well-formed.","Worldwide, Sudokus have gained much popularity due to annual Sudoku Championships being organized in locations where there is the scope of growth in the Professional Sudoku solvers community. Due to this rapid growth of Sudoku popularity, there has been a growth in demand for Sudoku generating and solving software. The programing problem is an NP-Complete. Our focus will be on writing software for organizing a free and fair competition.","Sudoku is a trendy pass-time game that had gained much popularity when it was published by The Times in London. We have used Java Server Faces (JSF) as a tool for the Full-Stack development of Sudoku as a web browser-based game. By building this project, we had gained a better understanding of the framework. In this work, we present an algorithm for solving the Sudoku problem and a safe way of validating the results keeping scalability in mind."],source:"https://www.techrxiv.org/articles/preprint/Online_Sudoku_Generator_and_Solver_for_Competitions_using_Java_Server_Faces/12093732/1"}],b=function(e){var t=e.research;return Object(d.jsx)(d.Fragment,{children:t.map((function(e,t){return Object(d.jsxs)(o.b,{className:"list-item",to:"/research/".concat(e.name),children:[Object(d.jsx)("h3",{children:e.title}),Object(d.jsxs)("p",{children:[e.content[0].substring(0,150),"..."]}),Object(d.jsx)(l,{})]},t)}))})},g=function(){return Object(d.jsx)("h1",{children:"404: Page Not Found"})},w=function(e){var t=e.match.params.name,a=f.find((function(e){return e.name===t}));if(!a)return Object(d.jsx)(g,{});var n=f.filter((function(e){return e.name!==t}));return Object(d.jsx)(d.Fragment,{children:Object(d.jsxs)("div",{class:"page-content",children:[Object(d.jsx)("h1",{children:a.title}),Object(d.jsxs)("h4",{children:["Published on: ",a.date]}),a.content.map((function(e,t){return Object(d.jsx)("div",{children:Object(d.jsx)("p",{children:e},t)})})),Object(d.jsx)("a",{class:"button",href:a.source,target:"_blank",rel:"noreferrer",children:"Source"}),Object(d.jsx)("h3",{children:"Other Research:"}),Object(d.jsx)(b,{research:n})]})})},j=function(){return Object(d.jsx)(d.Fragment,{children:Object(d.jsxs)("div",{class:"page-content",children:[Object(d.jsx)("h1",{children:"Research"}),Object(d.jsx)(b,{research:f})]})})},v=[{name:"insurance-advisor",title:"Insurance Advisor Software",skills:"Django, Bootstrap, Machine Learning",content:["The Insurance advisor software was designed to collect information about the user\u2019s needs and history and suggest suitable insurance plans. The software is consumer-centric because it prioritizes ample coverage over the price of insurance. It may not guarantee the cheapest coverage, but it will guarantee that the consumer has as much coverage as required with a few extra dollars. The goal of this research is to ensure that consumers have adequate coverage when filing for insurance claims while allowing users to pick low-cost insurance policies. ","Types of insurance provided include Automobile Insurance, House Insurance, Term Life Insurance, Disability Insurance, Health Insurance and Umbrella Policy. The software was implemented in Django with Python backend along with the MySQL database. We used Linear regression, Ridge regression, Bayesian Ridge regression, Lasso Regression, Lasso LARS regression and a deep neural network with four hidden layers, Decision Tree Regression, Ada Boost Regression, Gradient Boosting Regression, XG Boost Regression, Random Forest Regression, Extra Tree Regression, Support Vector Regression, K Nearest Neighbors Regression, Bagging Regression and Voting Regression to predict the insurance premium based on the user\u2019s health. Of all the methods used, Voting Regression with an ensemble of two Gradient Boosting Regressession models gave the most negligible Mean Absolute Error(MAE).","The software that targets citizens of Ontario, Canada who want to purchase private insurance. But in the future, the software can be updated to provide insurance as per regulations of individual provinces and possibly of other countries as well. This will require keeping track of the minimum insurance requirements of each province and country by law."],source:"https://github.com/dhatwalia/insurance"},{name:"optimal-hospital",title:"Optimal hospital placement for COVID-19 patients",skills:"Machine Learning, Optimization",content:["At present, cases of COVID-19 are appearing in a non- uniform manner across the country. This distribution is hard to predict because travel of people from one place to another is influenced by many factors including work, education, climate, geopolitical factors etc. In the ever so connected world that we live, it makes it even more dif- ficult to track the spread of diseases. At present, setting up of hospitals is done in a localized manner. Macroscopic influences over number of patients visiting hospitals is not considered. When a hospital is having too many patients in an area, newer hospitals are set-up in order to accomodate for the healthcare requirement. This approach works with seasonal factors affecting spread of diseases. However, in a pandemic, spread of disease does not always follow the same pattern. The current medical health system is at risk of being overburdened by patients if the number of cases was to spike uncontrollably. To prepare ourselves for the worst- case scenario, the right decisions must be made quickly when upgrading the medical infrastructure of the country.","In a pandemic, in some places the number of are much higher than others. For example in places like Toronto and Montreal, where the number of travellers is more, the number of cases is also high. Whereas in other places like Thunder- Bay and Manitoba, the number of cases is low. The rate of spread is also influenced by the number of people travelling in and out of a city. This could rapidly change the number of patients that a hospital expects. This could be as a con- sequence of the early opening up of businesses or lack of preventive action. Therefore, there is a need for software that will determine which is the optimal place to set-up a hospital from a list of suitable sites. It is necessary that the software will rely on the latest data so that action can be taken as suited. The software needs to be able to accommodate rapid change in the COVID-19 hot-spots before the location of the hospitals needed is finalized. The software should yield fast results in order to help in quick decision making.","If we were to apply only optimization techniques towards solving this problem, then we would suffer from an instability in the solution. Each new patient getting added to the list of patients would require an alteration to the hospital site. Furthermore, it is also not possible to set up hospitals at the optimal location because of the site might not be available for constructing hospital. Some other building might already be occupying that location.","If we were to apply clustering algorithm, we would end up with centroid which would be ideal for setting up hospitals. But the centroids themselves might not be able available for constructing hospitals. Therefore, I have proposed a software that will use a com- bination of clustering and linear programming to minimize the distance of the patients from the hospitals.","In order to solve the problem, we must know at-least the lo- cation of sites that are available for constructing the hospitals and the location of patients. First I have clustered the patients in order to bring the number of patient-groups to a manageable level. This also helps increase the stability of the optimal solution. Then I have used Linear Programming to determine the hospital in such a way that each cluster is assigned only 1 hospital.","For as many patients as possible, these hospitals should be as accessible as possible. We must minimize the total distance that everyone has to travel to reach these hospitals to achieve maximum efficiency in COVID-19 isolation."],source:"https://github.com/dhatwalia/optimal-hospital-placement"},{name:"jsf-sudoku-solver",title:"JSF based Sudoku Solver",skills:"Java, JSF",content:["A Sudoku puzzle made up of 9x9 grid filled with numbers ranging from 1-9. The entire puzzle itself is divided into 9 3x3 sub-grids. The number of numbers already given can be used to greatly effect the difficulty of solving the puzzle. There are other versions of Sudoku with their own twists like including extra 3x3 subgrids in the intersection of the original 9 grids and so on. We spoke of the difficulty and number of combinations a single sudoku puzzle can have which makes it computationally difficult to find all solutions or the solutions that fall within certain characteristics.","We have successfully implemented a Sudoku puzzle in JSF. Though there is a lot of scope for improvement, the Sudoku puzzle itself will accurately generate a solved puzzle and check the correctness of the user\u2019s solution.","The main benefit of using our program is that the high complexity task of generating the Sudoku is quickly performed at the server side and checking for the correctness is done at the client side. This eliminates the need of sending the data from the server to the client and vice versa. Another implication of doing so is that we eliminate the risk of man in the middle attack.","This project through the usage of publicly available components showcases the benefits of using JSF and its wide variety of components whilst developing the complex parts in Java."],source:"https://github.com/dhatwalia/sudoku-solver"},{name:"gan-captcha-gen",title:"Generating digits for captcha using Generative Adversarial Network",skills:"Machine Learning, Deep Learning, Neural Networks",content:["We propose to generate digits for Captcha using Generative Adversarial Network(GAN). The captcha will be made up of digits only because it reduces the time it takes for a human to solve the captcha. This will also eliminate the need of manually generate captcha and increase the diversity in our captcha dataset. Since our captcha is made up of only digits, it also takes less time for humans to solve. Additionally, it is more language neutral.","Captcha was first introduced as an automated test to deter- mine if the user is a human or not. It generates a sequence of characters that humans can understand, but computers cannot. The human must enter the sequence in the text-box, that comes along with the it, in the order to solve the it. Due to its reliability, it has been considered useful by many websites. Text based captchas can take 11.5 seconds to solve.","Generative Adversarial Network(GAN) is a neural network which simultaneously train two models: a generator that cap- tures the data distribution, and a discriminator that determines the probability that a sample came from the training data. This discriminator can be trained from real samples and generate fake images using the generator.","We can use MNIST database of handwritten digits to solve the problem of training our discriminator. It has 60,000 training and 10,000 testing data samples. The data is publicly available and free to use in keras python library."],source:"https://github.com/dhatwalia/captcha_gen"},{name:"auto-man-sys",title:"Automobile Management System",skills:"PHP, MySQL, HTML, CSS",content:["Customers often don't have a convenient means to find a dealer that will sell the particular model of vehicle that they want. Having a database of automobiles will help them choose from a list of dealers that sell that particular model of vehicle. After booking the vehicle and making the payment, customers often don't have any reliable means for keeping track of how much progress has been made for the order that they have placed. They may at times rely on phone numbers to know where their vehicle is in the process of manufacturing, within the factory.","The aim of our project is to allow customers to conveniently book vehicles for purchase and track the progress made in the factory. This will be done through a web based application that will be connected to a database.","The customer will be able to place an order for a particular brand and model of vehicle. He/she can choose the color, no. of cylinders, transmission type for the vehicle of their choice and set a deadline for this vehicle to be delivered. Once the dealer is chosen and the specifications for the order have been provided, the database will store the order and vehicle details.","The dealer can update the cost of the vehicle. He/she decides the default price for a certain brand and model during registration. It is up to the dealer to decide whether the order is feasible or not. If it's not feasible, the dealer can delete the order.","The factory from time to time can update the status of the vehicle so that the customer can keep track of where the vehicle is in the process of manufacturing for the customer's particular vehicle.","Using our database, customers will be able to conveniently find a dealer to book the particular model of vehicle that they want. After booking, the customers will have a reliable way for keeping track of the progress made for each order that the customer had placed.","This will save the customer's time and money in looking for a dealer for a model of vehicle of customer's choice. This project will also make it easier for the customer to track the progress made in the factory for their particular order.","In future, this HTML-PHP based webpages can be upgraded to dynamically calculate the price of the variant that the customer wants. A payment gateway can also be attached with it so that the customers can make payment for it online and hence avoid having to go to the dealer."],source:"https://github.com/dhatwalia/auto-man-sys"}],y=function(e){var t=e.project;return Object(d.jsx)(d.Fragment,{children:t.map((function(e,t){return Object(d.jsxs)(o.b,{className:"list-item",to:"/project/".concat(e.name),children:[Object(d.jsx)("h3",{children:e.title}),Object(d.jsxs)("p",{children:[e.content[0].substring(0,150),"..."]}),Object(d.jsx)(l,{})]},t)}))})},k=function(e){var t=e.match.params.name,a=v.find((function(e){return e.name===t}));if(!a)return Object(d.jsx)(g,{});var n=v.filter((function(e){return e.name!==t}));return Object(d.jsx)(d.Fragment,{children:Object(d.jsxs)("div",{class:"page-content",children:[Object(d.jsx)("h1",{children:a.title}),Object(d.jsxs)("h4",{children:["Tech. Skills: ",a.skills]}),a.content.map((function(e,t){return Object(d.jsx)("div",{children:Object(d.jsx)("p",{children:e},t)})})),Object(d.jsx)("a",{class:"button",href:a.source,target:"_blank",rel:"noreferrer",children:"See project"}),Object(d.jsx)("h3",{children:"Other Project:"}),Object(d.jsx)(y,{project:n})]})})},x=function(){return Object(d.jsx)(d.Fragment,{children:Object(d.jsxs)("div",{class:"page-content",children:[Object(d.jsx)("h1",{children:"Projects"}),Object(d.jsx)(y,{project:v})]})})},O=function(){return Object(d.jsx)(d.Fragment,{children:Object(d.jsxs)("div",{class:"page-content",children:[Object(d.jsx)("h1",{children:"Volunteer"}),Object(d.jsx)("img",{src:"/helpage-india.png",alt:"help-age-india-logo",class:"image-100"}),Object(d.jsx)("p",{children:"HelpAge India is a charity in India that has worked with and for disadvantaged elderly for nearly four decades. It has been running in India since 1978. There is an estimated 106 million elderly in India. HelpAge advocates for their needs, such as Universal Pension, quality healthcare and abuse faced by senior citizens. It advocates for elder-friendly policies and works towards their implementation. It also works with Senior Citizens Associations to understand the needs of the disadvantaged elderly by working with them."}),Object(d.jsx)("p",{children:"The aim is to help elders live active, dignified and healthier lives. HelpAge's focus over the years has moved from Welfare to Development."}),Object(d.jsxs)("figure",{children:[Object(d.jsx)("img",{src:"/helping-elders.jpg",alt:"covid19-relief-india",class:"image-80"}),Object(d.jsx)("figcaption",{children:"Distribution of family Survival Kits for senior citizens in Kannigapuram, Chennai, India during COVID-19 pandemic."})]}),Object(d.jsx)("p",{children:"It provides elderly relief through various interventions for the elderly. It features one of the most extensive mobile healthcare programs through its Mobile Healthcare Units in India. It provides free healthcare services to destitute elders. It also helps elders earn their livelihood through the formation of Elder-Self-Help Groups, making them self-reliant. It conducts cataract surgeries to restore their sight. It's Support-a-Gran program looks after their basic needs. It also features Elder Helplines across India. It provides relief and rehabilitation for elders post disasters."}),Object(d.jsx)("a",{class:"button",href:"https://www.helpageindia.org/donate/",target:"_blank",rel:"noreferrer",children:"Donate"}),Object(d.jsx)("br",{}),Object(d.jsx)("br",{}),Object(d.jsx)("hr",{}),Object(d.jsx)("img",{src:"/bluesea.jpg",alt:"bluesea-foundation-logo",class:"image-100"}),Object(d.jsx)("p",{children:"Blue Sea Foundation is a Canadian charitable foundation that has been working with other charities to make the world better since 2010. Headquatered in Kitchener, they work exclusively with social service charities who serve the most precarious, marginalized, and neglected people in Canada and around the world."}),Object(d.jsxs)("p",{children:["They are known mainly for their three charitable campagins:",Object(d.jsxs)("ol",{children:[Object(d.jsx)("li",{children:"Coldest Night of the years - A winterrific family-friendly walk to raise money for local charities serving people experiencing hurt, hunger, and homelessness."}),Object(d.jsx)("li",{children:"Ride for Refuge - A family-friendly cycling and walking fundraiser that supports charities who provide refuge and hope for displaced, vulnerable, and exploited people everywhere."}),Object(d.jsx)("li",{children:"The Grand Parade - A super-fun, family-friendly fundraising walk that celebrates and supports aging Canadians and their families across Canada."})]})]}),Object(d.jsxs)("figure",{children:[Object(d.jsx)("img",{src:"/homeless.jpg",alt:"homeless-person",class:"image-80"}),Object(d.jsx)("figcaption",{children:"A helpless homeless person braving the harsh winter."})]}),Object(d.jsx)("p",{children:"They are driven by the suffering and need in our world, and believe that the best way to make a difference is to build your charity's fundraising and financial health. What powers their efforts is the deep desire to see charities better funded and thriving as a force in our communities."}),Object(d.jsx)("a",{class:"button",href:"http://www.blueseafoundation.org/",target:"_blank",rel:"noreferrer",children:"Website"}),Object(d.jsx)("br",{}),Object(d.jsx)("br",{}),Object(d.jsx)("hr",{}),Object(d.jsx)("img",{src:"/sickkids.jpg",alt:"bluesea-foundation-logo",class:"image-100"}),Object(d.jsx)("p",{children:"SickKids Foundation is a charitable foundation that supports The Hospital for Sick Children in Toronto, Canada. They believe that fighting for the health and wellbeing of children is one of the most powerful ways to improve society. They are committed to fostering an inclusive, accessible environment, where all individuals feel valued, respected and supported."}),Object(d.jsxs)("figure",{children:[Object(d.jsx)("img",{src:"/sickkids-cheque.jpg",alt:"homeless-person",class:"image-80"}),Object(d.jsx)("figcaption",{children:"Ontario Schools Battery Recycling Challenge(OSBRC) gives a $1769.36 check to SickKids Foundation in Toronto dated June 10, 2019."})]}),Object(d.jsx)("p",{children:"Their goal is to save lives, find new cures and provide world-class care. They are also fighting against the limits of a 70-year-old hospital where parts of the building dont meet modern building codes. Their most vulnerable patients are crammed into overcrowded rooms. Their our outdated spaces cant accommodate the weight of an MRI machine. Thats why they are trying to raise $1.5 billion dollars in donations. They need you on our side in the SickKids VS Limits Campaign, the biggest fundraising campaign in Canadian health-care history, to help build a brand-new hospital."}),Object(d.jsx)("a",{class:"button",href:"https://secure.sickkidsfoundation.com/donate?_ga=2.74558546.1389146586.1663201382-1329499667.1663201382",target:"_blank",rel:"noreferrer",children:"Donate"}),Object(d.jsx)("br",{}),Object(d.jsx)("br",{}),Object(d.jsx)("hr",{})]})})};r.a.render(Object(d.jsx)(i.a.StrictMode,{children:Object(d.jsx)(o.a,{children:Object(d.jsxs)("div",{children:[Object(d.jsx)(u,{}),Object(d.jsx)("div",{id:"page-body",children:Object(d.jsxs)(h.c,{children:[Object(d.jsx)(h.a,{path:"/",component:m,exact:!0}),Object(d.jsx)(h.a,{path:"/contact",component:p}),Object(d.jsx)(h.a,{path:"/research/:name",component:w}),Object(d.jsx)(h.a,{path:"/research-list",component:j}),Object(d.jsx)(h.a,{path:"/project/:name",component:k}),Object(d.jsx)(h.a,{path:"/project-list",component:x}),Object(d.jsx)(h.a,{path:"/volunteer",component:O}),Object(d.jsx)(h.a,{component:g})]})})]})})}),document.getElementById("root")),"/"!==window.location.pathname&&(window.location.href="/"),c()}},[[30,1,2]]]);
+//# sourceMappingURL=main.fb2a9e68.chunk.js.map
\ No newline at end of file
diff --git a/static/js/main.fb2a9e68.chunk.js.map b/static/js/main.fb2a9e68.chunk.js.map
new file mode 100644
index 0000000..99c2708
--- /dev/null
+++ b/static/js/main.fb2a9e68.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["reportWebVitals.js","components/ScrollToTop.js","NavBar.js","pages/HomePage.js","pages/ContactPage.js","content/research.js","components/ResearchList.js","pages/NotFoundPage.js","pages/ResearchPage.js","pages/ResearchListPage.js","content/project.js","components/ProjectList.js","pages/ProjectPage.js","pages/ProjectListPage.js","pages/VolunteerPage.js","index.js"],"names":["reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","withRouter","history","useEffect","unlisten","listen","window","scrollTo","NavBar","to","HomePage","class","src","alt","ContactPage","width","href","research","name","title","date","content","source","ResearchList","map","key","className","substring","NotFoundPage","ResearchPage","match","params","researchContent","find","otherResearch","filter","paragraph","target","rel","ResearchListPage","project","skills","ProjectList","ProjectPage","projectContent","otherProject","ProjectListPage","VolunteerPage","ReactDOM","render","StrictMode","id","path","component","exact","document","getElementById","location","pathname"],"mappings":"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","file":"static/js/main.fb2a9e68.chunk.js","sourcesContent":["const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import { useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\n\nfunction ScrollToTop({ history }) {\n useEffect(() => {\n const unlisten = history.listen(() => {\n window.scrollTo(0, 0);\n });\n return () => {\n unlisten();\n }\n });\n\n return (null);\n}\n\nexport default withRouter(ScrollToTop);\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport ScrollToTop from './components/ScrollToTop';\n\nconst NavBar = () => (\n \n);\n\nexport default NavBar;\n","import React from 'react';\n\nconst HomePage = () => (\n <>\n
\n
Prajwal
\n \n
\n Hello, world! I am a Full Stack Developer with 5+ years of experience in FinTech, CryptoTech, MarTech and Telematics using MERN stack, Machine Learning and Software Engineering.\n
\n
\n I love to work with Rust, Typescript, Python and C++.\n
\n
\n I can solve your problems with high throughput, scalable and maintainable technologies. I can lead development and wear multiple hats with product, design, development, testing, deployment and support teams in a collaborative environment. In a team with great diversity, I will learn from the passionate and experienced and mentor the energetic and curious.\n
\n >\n);\n\nexport default ContactPage;\n","const research = [\n {\n name: 'selection-ipl-ensembles-classifier',\n title: 'Selection of Players and Team for an Indian Premier League Cricket Match Using Ensembles of Classifiers',\n date: 'August 02, 2020',\n content: [\n `The Indian Premier League is an annual cricket tournament administered by the Board for Control of Cricket in India. It is a 20 over format of playing cricket introduced in 2003 as a need for a shorter version of the game to counter the falling attendance of spectators. Currently, it is the 6th most attended league globally, and the world’s most attended league as of 2016. `,\n `The participating franchises form their teams by conducting an auction before the tournament from a pool of national and international cricket players of different countries. The auction starts with the ‘marquee’ list, where 16 players in two batches of eight each come up for bidding. The marquee lot is followed by capped and uncapped players: batsmen, all-rounders, wicket-keepers, fast bowlers and spinners. After the players have been presented for bidding, the accelerated process will enable franchises to nominate a set number of players from the remaining ones. The list is submitted on the first day, and the nominated players go up for bidding the next day. Once these players have been presented, the franchises will be asked to submit their wish list from the complete list of players. Those unsold will come up for auction after all the players have been called once. The list of unsold players, however, is drawn up subject to the franchises’ request.`,\n `As per the new IPL player policy, each franchise can spend a maximum of INR 80 crore (USD 12.5m) on their squad salaries. The new rules also dictate that franchises spend 75% of the salary cap, which amounts to INR 60 crore (USD 9.4m approx.). The player retention rules stipulate that a team can retain a maximum of five players through a combination of pre-auction retention and Right-To-Match (RTM). A franchise can retain a maximum of three capped India players and two capped overseas players. Having each retained three players, Super Kings, Daredevils, Mumbai Indians and Royal Challengers have only two RTMs remaining. The other four franchises have three RTMs, each having retained no more than two players.`,\n `In order to predict the price of a batsman, there are several important parameters to consider. Runs are an essential parameter that tells us the best performance a player will give, which decides the player’s popularity among fans. The batting average is the total number of runs a batsman has scored divided by the number of times they have been out, which tells us how consistent a batsman is, which is essential because the team must score within ten wickets, of which not all are specialized in batting. A batting strike rate is a measure of how frequently a batsman achieves the primary goal of batting, namely scoring runs, which is important because the speed at which the runs are scored is critical in high-scoring games. Balls faced is the number of balls that the batsman has played in the entire season. The batsman can bat in the first inning or the second inning, decided by the captain of the toss-winning team. Price is the output of our model.`,\n `In order to predict the price of a bowler, there are several important parameters to consider. Runs are an essential parameter that tells us how many runs a bowler has given in the past. The lesser runs he/she gives, the better the bowler. Bowling average is the ratio of runs conceded per wickets taken, meaning that the bowling average is, the better the bowler is performing, which tells us how much the bowler will allow the opponent to make runs. A lesser number of runs is preferred. Bowling strike rate is the balls bowled by wickets taken, which tells how quickly a bowler can take wickets. The economy runs per over, which tells if the bowler can bowl with lesser runs given. Balls bowled is the number of balls that the bowler has played in the entire season. The bowler can ball in the first inning or the second inning, decided by the captain of the toss-winning team. Price is the output of our model.`,\n `At present, choosing to bid for a player is done by eight people from each team. Each member has different expertise and contributes to the final decision-making, making it challenging to make decisions. Furthermore, pressure situations and hurried decisions which need to be made at the auction can lead to costly mistakes. The proposed model makes the decision-making more accurate, fast and less prone to errors. We can predict the price of a player based on his past performance.`,\n `Another problem that the present method suffers from is that opponents are often aware of the team’s favourite player due to regional popularity. This knowledge has often been abused by the opponents to inflate the price of the desired players. Our model helps the bidder realize that the range of the price the player is expected to be sold at, making them aware of the same to adjust their budget plans.`,\n `Thirdly, the accuracy with which auctioneers can evaluate a player is dependent on their experience in evaluating players, which is also being taken care of by our model by using player historical performance to predict the cost.`,\n `In this work, we have shown how we can use neural networks and K-Means or Hierarchical clustering in place of clustering algorithms to represent data in a meaningful way to predict the best batsman/bowler to be sent next for a given match condition at an Indian Premier League Cricket Match. We predicted the best bowler/batsman for a given match condition using the match parameters of every ball. We carried out tests using various neural networks ranging from single-layered perceptron to multilayered multi-neuron neural networks, along with a variety of data representations. The neural network with three hidden layers perceptron gave the best results for batsman and bowlers, respectively. These neural networks can produce fast and accurate results within 3 seconds. The activation functions used were ReLu and SoftMax. We used K-Means and hierarchical clustering to generate data. We also predict an ideal team for a match using K-Means Clustering and hierarchical clustering, which found interesting and accurate patterns, constraints.`,\n ],\n source: 'https://ieeexplore.ieee.org/document/9198371',\n }, {\n name: 'prediction-ipl-regression',\n title: 'Prediction of Player Price in IPL Auction Using Machine Learning Regression Algorithms',\n date: 'August 02, 2020',\n content: [\n `Cricket is administered by the Board for Control of Cricket in India(BCCI). The shortened 20-over format of playing cricket was introduced to counter the falling attendance of spectators. Since then, more and more countries have introduced this format of cricket. Currently, the Premier League (IPL) is an annual cricket tournament sixth most attended league globally, and the world's most attended league as of 2016.`,\n `The participating franchises form their teams by conducting an auction before the tournament from a pool of national and international cricket players of different countries. After the players have been presented for bidding, the accelerated process will enable franchises to nominate a set number of players from the remaining ones.`,\n `As per the new IPL player policy, each franchise can spend a maximum of INR 80 crore (USD 12.5m) on their squad salaries. The new rules also dictate that franchises spend 75% of the salary cap, which amounts to INR 60 crore (USD 9.4m approx.). The player retention rules stipulate that a team can retain a maximum of five players through a combination of pre-auction retention and Right- To-Match (RTM). A franchise can retain a maximum of three capped India players and two capped overseas players. Having each retained three players, Super Kings, Daredevils, Mumbai Indians and Royal Challengers have only two RTMs remaining. The other four franchises have three RTMs, each having retained no more than two players.`,\n `Team managers, who can serve only one team in a match, will have to manage their team in two innings: when the team is batting and when the same team is bowling/fielding. The team manager has to deal with target score, innings, wickets, over, ball, batsman (on strike), the batsman (not on strike) and the bowler bowling the over. The team will have to bat in one inning and bowl in the other inning, which is the captain of the toss winning team decides. The IPL match consists of 20 overs with six balls in each over. An over must be played in its entirety by a single bowler. The target score is the minimum score that the team should have made, in a particular ball of an over, to make the team likely win the match. Wickets are defined as the number of batsmen who have become out. A batter who has become out cannot bat for the rest of the match. At any given ball, there must be two batsmen on the pitch. A batter who has become out must be replaced.`,\n `In an IPL match, from the batting team manager's perspective, after one of his/her batsmen has become out, he/she must send another batsman to replace the one who has become out. The choice must be made in such a way that the batting team wins. To do so, the team manager has to choose a replacement batsman such that the batsman can perform well with the given match conditions. The match conditions that affect the batsman's performance include target score, innings, wickets, over, ball, the batsman (not out) and the bowler.`,\n `Similarly, from the bowling team manager's perspective, after each over, he/she must decide which bowler to send next. At the end of each over, the bowling/fielding team's manager must send a bowler such that the bowling/fielding team wins. To do so, the team manager has to choose a bowler for the next over such that the bowler can either make it hard for the opposing team's batsmen to score or make them 'out' within the given match conditions. The match conditions that affect the bowler's performance include target score, innings, wickets, over, ball, the batsman (on strike) and the batsman (not on strike).`,\n `We have attempted to solve these problems. Firstly, the decision to bid for a player is made by eight people from each team. Each member has different expertise and makes equal contributions to the final decision-making, making it challenging to make unanimous decisions. Furthermore, pressure situations and hurried decisions which need to be made at the auction can lead to costly mistakes. The proposed model makes the decision-making more accurate, fast and less prone to errors.`,\n `Another part of this problem is that the present method suffers from is that opponents are often aware of the team's favourite player due to regional popularity. The opponents have often abused this knowledge to inflate the price of the desired players. At present, the accuracy with which auctioneers can evaluate a player depends on their experience in evaluating the eight members of the bidding team.`,\n `Secondly, from the team manager's perspective, sending the batsman/bowler is done by either the team captain or the team manager. Team captains are often the ones to decide which batsman/bowler to send because they are always present near/on the field to make quick decisions. Their decisions are prone to errors due to their reliance on intuition and sentimental issues from playing in the cricket match. Team managers, who would be ideal for making independent decisions, are often not consulted because they do not have enough time to compare the match parameters with the previous match data. Their decisions are also prone to errors.`,\n `A player, who has not performed well or has not been given enough opportunities, might miss out on some opportunities that were better suited for him/her.`,\n `The first problem can be solved using a neural network to train a neural network with the player performance parameters & cluster numbers of the players and the price at which the player was sold for in the previous year.`,\n `The second problem can be solved using two neural networks to train the model for every ball that has been played in the past. By doing so, our network will accurately predict which batsman/bowler to send next.`,\n `We have used machine learning, a branch of computer science, to train the machine based on past data to predict future outcomes. Our problem is related to classification because it involves classifying which cluster number the batsman/bowler needs to belong to, given the match parameters. Artificial Neural Networks(ANNs) are composed of many highly interconnected processing elements (neurons) working in a multilayered structure that receives inputs, processes inputs, and produces an output. We used ANNs because they are tolerant to data quality issues and neither need normalization nor require independence assumptions. Furthermore, they provide faster and more accurate results when compared to other machine learning techniques.`,\n `We have used SoftMax and ReLu activation function. SoftMax is an activation function that uses x number of real numbered inputs and outputs a probabilistic value that is ideal in deciding which decision is when the output neural network has more than two neurons. ReLu is an activation function that outputs the positive real number if positive else outputs 0.`,\n `We have used the K-Means clustering technique, which can be used on well-separated data. The algorithm starts with random initial centroids with computation of the Euclidean distance from each data point. The closest centroid is the cluster to which a data point is marked. The centroids are then computed using the mean of all the data points belonging to it. This process is continued till the centroids change. Hierarchical clustering starts with each data point as a cluster and then merging the closest ones into one cluster. This cluster is then chosen as a data point, and the parent cluster is formed using it and the other points. This process is continued till the required numbers of clusters are obtained. The final result will be a dendrogram.`,\n `This work predicted the cost at which a player can be sold in the Indian Premier League Auction using machine learning-based algorithms. We estimated the players' selling price using their past performance parameters like runs, balls, innings, wickets and matches played. Tests were carried out in various machine learning models like Decision Tree Regressor, K-Nearest Neighbors (KNN), Linear Regression, Stochastic Logistic Regression, Random Forest Regressor and Support Vector Regression (SVR). Among these, SVR and Linear Regression gave the best results for predicting batsman and bowlers, respectively. These algorithms can produce fast and accurate results within 3 seconds, helping auctioneers make quick decisions. We have also considered the inflation factor and mapping the same to the budget during the model's training.`,\n ],\n source: 'https://ieeexplore.ieee.org/document/9198668',\n }, {\n name: 'jsf-sudoku',\n title: 'Online Sudoku Generator and Solver for Competitions using Java Server Faces',\n date: 'May 09, 2020',\n content: [\n `The name “Sudoku” originates from Japanese words: “su”, which means “number,” and “doku”, which means “single”. When translated into English, it most accurately means “single numbersonly”. The game gained worldwide popularity in 2004, though when it was published by The Times in London. It has been reported to be the most significant trend since the invention of Rubik’s Cube in the 1980s.`,\n `To win the Sudoku game, one must fill up all the vacant boxes with the allowed range of numbers in the Sudoku puzzle. All the entered numbers must follow specific rules. The fundamental requirement of solved Sudoku is that no row, column or subgrid can contain the same number twice.`,\n `We have specifically solved Rank 3 Sudoku puzzles which are the standard type and the most well-known. A sudoku rank refers to the square root of the number of blocks and subgrids that are present.`,\n `Well-formed Sudoku will have one unique solution and no other possible solutions when the given clues are at least 17. To keep the same swift check for solutions, we utilized the mathematical lower limit of given clues and ensured our options never exceeded that number.`,\n `We have chosen difficulties within the constraint previously discussed according to the number of possible combinations in the grid, excluding the givens changing. The fewer givens there are, the more potential combinations there are, and therefore, the harder to find the combination that works with the three rules of Sudoku. When setting the difficulty level, it is vital to ensure that the Sudoku generated will be well-formed.`,\n `Worldwide, Sudokus have gained much popularity due to annual Sudoku Championships being organized in locations where there is the scope of growth in the Professional Sudoku solvers community. Due to this rapid growth of Sudoku popularity, there has been a growth in demand for Sudoku generating and solving software. The programing problem is an NP-Complete. Our focus will be on writing software for organizing a free and fair competition.`,\n `Sudoku is a trendy pass-time game that had gained much popularity when it was published by The Times in London. We have used Java Server Faces (JSF) as a tool for the Full-Stack development of Sudoku as a web browser-based game. By building this project, we had gained a better understanding of the framework. In this work, we present an algorithm for solving the Sudoku problem and a safe way of validating the results keeping scalability in mind.`,\n ],\n source: 'https://www.techrxiv.org/articles/preprint/Online_Sudoku_Generator_and_Solver_for_Competitions_using_Java_Server_Faces/12093732/1',\n },\n];\n\nexport default research;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport ScrollToTop from './ScrollToTop';\n\nconst ResearchList = ({ research }) => (\n <>\n {research.map((research, key) => (\n \n
\n >\n );\n};\n\nexport default ResearchPage;\n","import React from 'react';\nimport researchContent from '../content/research';\nimport ResearchList from '../components/ResearchList';\n\nconst ResearchListPage = () => (\n <>\n
\n
Research
\n \n
\n >\n);\n\nexport default ResearchListPage;\n","const project = [\n {\n name: 'insurance-advisor',\n title: 'Insurance Advisor Software',\n skills: 'Django, Bootstrap, Machine Learning',\n content: [\n `The Insurance advisor software was designed to collect information about the user’s needs and history and suggest suitable insurance plans. The software is consumer-centric because it prioritizes ample coverage over the price of insurance. It may not guarantee the cheapest coverage, but it will guarantee that the consumer has as much coverage as required with a few extra dollars. The goal of this research is to ensure that consumers have adequate coverage when filing for insurance claims while allowing users to pick low-cost insurance policies. `,\n `Types of insurance provided include Automobile Insurance, House Insurance, Term Life Insurance, Disability Insurance, Health Insurance and Umbrella Policy. The software was implemented in Django with Python backend along with the MySQL database. We used Linear regression, Ridge regression, Bayesian Ridge regression, Lasso Regression, Lasso LARS regression and a deep neural network with four hidden layers, Decision Tree Regression, Ada Boost Regression, Gradient Boosting Regression, XG Boost Regression, Random Forest Regression, Extra Tree Regression, Support Vector Regression, K Nearest Neighbors Regression, Bagging Regression and Voting Regression to predict the insurance premium based on the user’s health. Of all the methods used, Voting Regression with an ensemble of two Gradient Boosting Regressession models gave the most negligible Mean Absolute Error(MAE).`,\n `The software that targets citizens of Ontario, Canada who want to purchase private insurance. But in the future, the software can be updated to provide insurance as per regulations of individual provinces and possibly of other countries as well. This will require keeping track of the minimum insurance requirements of each province and country by law.`, \n ],\n source: 'https://github.com/dhatwalia/insurance',\n },\n {\n name: 'optimal-hospital',\n title: 'Optimal hospital placement for COVID-19 patients',\n skills: 'Machine Learning, Optimization',\n content: [\n `At present, cases of COVID-19 are appearing in a non- uniform manner across the country. This distribution is hard to predict because travel of people from one place to another is influenced by many factors including work, education, climate, geopolitical factors etc. In the ever so connected world that we live, it makes it even more dif- ficult to track the spread of diseases. At present, setting up of hospitals is done in a localized manner. Macroscopic influences over number of patients visiting hospitals is not considered. When a hospital is having too many patients in an area, newer hospitals are set-up in order to accomodate for the healthcare requirement. This approach works with seasonal factors affecting spread of diseases. However, in a pandemic, spread of disease does not always follow the same pattern. The current medical health system is at risk of being overburdened by patients if the number of cases was to spike uncontrollably. To prepare ourselves for the worst- case scenario, the right decisions must be made quickly when upgrading the medical infrastructure of the country.`,\n `In a pandemic, in some places the number of are much higher than others. For example in places like Toronto and Montreal, where the number of travellers is more, the number of cases is also high. Whereas in other places like Thunder- Bay and Manitoba, the number of cases is low. The rate of spread is also influenced by the number of people travelling in and out of a city. This could rapidly change the number of patients that a hospital expects. This could be as a con- sequence of the early opening up of businesses or lack of preventive action. Therefore, there is a need for software that will determine which is the optimal place to set-up a hospital from a list of suitable sites. It is necessary that the software will rely on the latest data so that action can be taken as suited. The software needs to be able to accommodate rapid change in the COVID-19 hot-spots before the location of the hospitals needed is finalized. The software should yield fast results in order to help in quick decision making.`,\n `If we were to apply only optimization techniques towards solving this problem, then we would suffer from an instability in the solution. Each new patient getting added to the list of patients would require an alteration to the hospital site. Furthermore, it is also not possible to set up hospitals at the optimal location because of the site might not be available for constructing hospital. Some other building might already be occupying that location.`,\n `If we were to apply clustering algorithm, we would end up with centroid which would be ideal for setting up hospitals. But the centroids themselves might not be able available for constructing hospitals. Therefore, I have proposed a software that will use a com- bination of clustering and linear programming to minimize the distance of the patients from the hospitals.`,\n `In order to solve the problem, we must know at-least the lo- cation of sites that are available for constructing the hospitals and the location of patients. First I have clustered the patients in order to bring the number of patient-groups to a manageable level. This also helps increase the stability of the optimal solution. Then I have used Linear Programming to determine the hospital in such a way that each cluster is assigned only 1 hospital.`,\n `For as many patients as possible, these hospitals should be as accessible as possible. We must minimize the total distance that everyone has to travel to reach these hospitals to achieve maximum efficiency in COVID-19 isolation.`,\n ],\n source: 'https://github.com/dhatwalia/optimal-hospital-placement',\n },\n {\n name: 'jsf-sudoku-solver',\n title: 'JSF based Sudoku Solver',\n skills: 'Java, JSF',\n content: [\n `A Sudoku puzzle made up of 9x9 grid filled with numbers ranging from 1-9. The entire puzzle itself is divided into 9 3x3 sub-grids. The number of numbers already given can be used to greatly effect the difficulty of solving the puzzle. There are other versions of Sudoku with their own twists like including extra 3x3 subgrids in the intersection of the original 9 grids and so on. We spoke of the difficulty and number of combinations a single sudoku puzzle can have which makes it computationally difficult to find all solutions or the solutions that fall within certain characteristics.`,\n `We have successfully implemented a Sudoku puzzle in JSF. Though there is a lot of scope for improvement, the Sudoku puzzle itself will accurately generate a solved puzzle and check the correctness of the user’s solution.`,\n `The main benefit of using our program is that the high complexity task of generating the Sudoku is quickly performed at the server side and checking for the correctness is done at the client side. This eliminates the need of sending the data from the server to the client and vice versa. Another implication of doing so is that we eliminate the risk of man in the middle attack.`,\n `This project through the usage of publicly available components showcases the benefits of using JSF and its wide variety of components whilst developing the complex parts in Java.`,\n ],\n source: 'https://github.com/dhatwalia/sudoku-solver',\n },\n {\n name: 'gan-captcha-gen',\n title: 'Generating digits for captcha using Generative Adversarial Network',\n skills: 'Machine Learning, Deep Learning, Neural Networks',\n content: [\n `We propose to generate digits for Captcha using Generative Adversarial Network(GAN). The captcha will be made up of digits only because it reduces the time it takes for a human to solve the captcha. This will also eliminate the need of manually generate captcha and increase the diversity in our captcha dataset. Since our captcha is made up of only digits, it also takes less time for humans to solve. Additionally, it is more language neutral.`,\n `Captcha was first introduced as an automated test to deter- mine if the user is a human or not. It generates a sequence of characters that humans can understand, but computers cannot. The human must enter the sequence in the text-box, that comes along with the it, in the order to solve the it. Due to its reliability, it has been considered useful by many websites. Text based captchas can take 11.5 seconds to solve.`,\n `Generative Adversarial Network(GAN) is a neural network which simultaneously train two models: a generator that cap- tures the data distribution, and a discriminator that determines the probability that a sample came from the training data. This discriminator can be trained from real samples and generate fake images using the generator.`,\n `We can use MNIST database of handwritten digits to solve the problem of training our discriminator. It has 60,000 training and 10,000 testing data samples. The data is publicly available and free to use in keras python library.`,\n ],\n source: 'https://github.com/dhatwalia/captcha_gen',\n },\n {\n name: 'auto-man-sys',\n title: 'Automobile Management System',\n skills: 'PHP, MySQL, HTML, CSS',\n content: [\n `Customers often don't have a convenient means to find a dealer that will sell the particular model of vehicle that they want. Having a database of automobiles will help them choose from a list of dealers that sell that particular model of vehicle. After booking the vehicle and making the payment, customers often don't have any reliable means for keeping track of how much progress has been made for the order that they have placed. They may at times rely on phone numbers to know where their vehicle is in the process of manufacturing, within the factory.`,\n `The aim of our project is to allow customers to conveniently book vehicles for purchase and track the progress made in the factory. This will be done through a web based application that will be connected to a database.`,\n `The customer will be able to place an order for a particular brand and model of vehicle. He/she can choose the color, no. of cylinders, transmission type for the vehicle of their choice and set a deadline for this vehicle to be delivered. Once the dealer is chosen and the specifications for the order have been provided, the database will store the order and vehicle details.`,\n `The dealer can update the cost of the vehicle. He/she decides the default price for a certain brand and model during registration. It is up to the dealer to decide whether the order is feasible or not. If it's not feasible, the dealer can delete the order.`,\n `The factory from time to time can update the status of the vehicle so that the customer can keep track of where the vehicle is in the process of manufacturing for the customer's particular vehicle.`,\n `Using our database, customers will be able to conveniently find a dealer to book the particular model of vehicle that they want. After booking, the customers will have a reliable way for keeping track of the progress made for each order that the customer had placed.`,\n `This will save the customer's time and money in looking for a dealer for a model of vehicle of customer's choice. This project will also make it easier for the customer to track the progress made in the factory for their particular order.`,\n `In future, this HTML-PHP based webpages can be upgraded to dynamically calculate the price of the variant that the customer wants. A payment gateway can also be attached with it so that the customers can make payment for it online and hence avoid having to go to the dealer.`,\n ],\n source: 'https://github.com/dhatwalia/auto-man-sys',\n },\n];\n\nexport default project;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport ScrollToTop from './ScrollToTop';\n\nconst ProjectList = ({ project }) => (\n <>\n {project.map((project, key) => (\n \n
{project.title}
\n
{project.content[0].substring(0, 150)}...
\n \n \n ))}\n >\n);\n\nexport default ProjectList;\n","import React from 'react';\nimport projectContent from '../content/project';\nimport ProjectList from '../components/ProjectList';\nimport NotFoundPage from './NotFoundPage';\n\nconst ProjectPage = ({ match }) => {\n const name = match.params.name;\n const project = projectContent.find(project => project.name === name);\n\n if (!project) return \n\n const otherProject = projectContent.filter(project => project.name !== name);\n\n\n return (\n <>\n
\n HelpAge India is a charity in India that has worked with and for disadvantaged elderly for nearly four decades. It has been running in India since 1978. There is an estimated 106 million elderly in India. HelpAge advocates for their needs, such as Universal Pension, quality healthcare and abuse faced by senior citizens. It advocates for elder-friendly policies and works towards their implementation. It also works with Senior Citizens Associations to understand the needs of the disadvantaged elderly by working with them.\n
\n
\n The aim is to help elders live active, dignified and healthier lives. HelpAge's focus over the years has moved from Welfare to Development.\n
\n \n
\n It provides elderly relief through various interventions for the elderly. It features one of the most extensive mobile healthcare programs through its Mobile Healthcare Units in India. It provides free healthcare services to destitute elders. It also helps elders earn their livelihood through the formation of Elder-Self-Help Groups, making them self-reliant. It conducts cataract surgeries to restore their sight. It's Support-a-Gran program looks after their basic needs. It also features Elder Helplines across India. It provides relief and rehabilitation for elders post disasters.\n
\n Blue Sea Foundation is a Canadian charitable foundation that has been working with other charities to make the world better since 2010. Headquatered in Kitchener, they work exclusively with social service charities who serve the most precarious, marginalized, and neglected people in Canada and around the world.\n
\n
\n They are known mainly for their three charitable campagins:\n
\n
Coldest Night of the years - A winterrific family-friendly walk to raise money for local charities serving people experiencing hurt, hunger, and homelessness.
\n
Ride for Refuge - A family-friendly cycling and walking fundraiser that supports charities who provide refuge and hope for displaced, vulnerable, and exploited people everywhere.
\n
The Grand Parade - A super-fun, family-friendly fundraising walk that celebrates and supports aging Canadians and their families across Canada.
\n \n \n \n
\n They are driven by the suffering and need in our world, and believe that the best way to make a difference is to build your charity's fundraising and financial health. What powers their efforts is the deep desire to see charities better funded and thriving as a force in our communities.\n
\n SickKids Foundation is a charitable foundation that supports The Hospital for Sick Children in Toronto, Canada. They believe that fighting for the health and wellbeing of children is one of the most powerful ways to improve society. They are committed to fostering an inclusive, accessible environment, where all individuals feel valued, respected and supported.\n
\n \n
\n Their goal is to save lives, find new cures and provide world-class care. They are also fighting against the limits of a 70-year-old hospital where parts of the building dont meet modern building codes. Their most vulnerable patients are crammed into overcrowded rooms. Their our outdated spaces cant accommodate the weight of an MRI machine. Thats why they are trying to raise $1.5 billion dollars in donations. They need you on our side in the SickKids VS Limits Campaign, the biggest fundraising campaign in Canadian health-care history, to help build a brand-new hospital.\n\n
\n >\n);\n\nexport default VolunteerPage;\n","import 'whatwg-fetch';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n BrowserRouter,\n Route,\n Switch,\n} from 'react-router-dom';\nimport reportWebVitals from './reportWebVitals';\nimport './index.scss';\nimport NavBar from './NavBar';\nimport HomePage from './pages/HomePage';\nimport ContactPage from './pages/ContactPage';\nimport ResearchPage from './pages/ResearchPage';\nimport ResearchListPage from './pages/ResearchListPage';\nimport ProjectPage from './pages/ProjectPage';\nimport ProjectListPage from './pages/ProjectListPage';\nimport VolunteerPage from './pages/VolunteerPage';\nimport NotFoundPage from './pages/NotFoundPage';\n\nReactDOM.render(\n \n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n \n ,\n document.getElementById('root')\n);\n\n// Note by dhatwalia:\n// GitHub Pages doesn't handle client-side routing by default and gives 404 error.\n// This is a hack to redirect to the HomePage when we refresh on any page that isn't the HomePage.\nif (window.location.pathname !== '/') {\n window.location.href = '/';\n}\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}
\ No newline at end of file