{"componentChunkName":"component---src-pages-projects-js","path":"/projects/","result":{"data":{"allProjectsJson":{"edges":[{"node":{"description":"I built this site with amazing tools like Gatsby, Emotion, and React Spring. Through this project, I learnt more about the gotchas with static sites, basic GraphQL, styled components, the current state of animation, and basic SVG manipulation. It was a lot of fun 😃","link":"https://github.com/asherLZR/personal-website","subtitle":"Very Meta!","title":"Personal Site","imgSrc":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAACjklEQVQ4y52VzW4TMRSFZ1IpW9jDq8AW9sAa9rBDQgieolJhCc/ADjb9oQilEiAkKrUCAQtSQdR2PFOSJp6xrznn2kkn/QOxuPJMbH9zru/xTeaLOkuRh92QeVNnrrCXXFE/wriKGPjCekSD6OP9FebuYbyo+0yd4/cc73i22RTWIag2Ez4/wGSFRcGZOriqFWWtv+lcYXcQdxwgkWFzMmYPoai7GF+0QLXfs873x+K/H8bYGXu/bxvMNT6BMS4RKkbVZgDZzFLZFFYCtG+9bA2DvK0krBoJKynWjEivEv9lxI86RJOgi0wZ0cmcUbkPE8z6wURkowph2RAW5HU5F/oBzMmHg4AMhOAItTcwZqRe5pnp2exBWQ8wqJH18gRsDkzo+4OpUqa/DU6XwMeqDmcmm8O4EDCkd7Q5hT63f8da/3nEvS4V6iaBa6weUnXyppTTQOEMKNPXM2WhWMjCPiNwQEuwippqe8M5UDmCa/XVVoXdZEH0RbZHM+B5sONQ7qEYFQXzE9hE4PD/gd8iEAonTLmv9K+Hvp1y+NeUcY7+x9gl4DsCX2pRfk0aLIjm/YvKNozmh92mRXlK4N1k6kY+/o62OaMwcrzKXLs1lJltjL2Om2Iv6EWPKmmd+OXTfDd9Xo9nxxvVsswGbx0Uaru6nczdsBkodNnMpd+2iSrDjYJ3vXagqO6qS+1Luw3u4lKCOlWK9PVMV8xcQJ3Ip6H4XSgrUysz9n5k1AsE5QJyjcDEYjpPhvM/Jw2rz3OirWAPB1W0mUtpKiz1xDwq1Bebh9h9mf4tXvQZuDrZZNO97QFwhRDHjh0FzYAxTN3RMzWTLsGI57xOjuaHaekzxBPEtaDrdN+C9kIT/wL+AH91mYTDPw3AAAAAAElFTkSuQmCC","aspectRatio":1,"src":"/static/5dd3ce51a34316214fe3117ce03d8080/71eb7/ashers-website.png","srcSet":"/static/5dd3ce51a34316214fe3117ce03d8080/b5811/ashers-website.png 25w,\n/static/5dd3ce51a34316214fe3117ce03d8080/8ba1e/ashers-website.png 50w,\n/static/5dd3ce51a34316214fe3117ce03d8080/71eb7/ashers-website.png 100w,\n/static/5dd3ce51a34316214fe3117ce03d8080/905ea/ashers-website.png 125w","sizes":"(max-width: 100px) 100vw, 100px"}}}}},{"node":{"description":"Owing to the events of the year 2020, this is a hacked together Scrabble-like game to pass the time with friends and family. It includes simple, back-to-basic rules which emulate over-the-board play, and is of course, sans ads! It was implemented with Typescript React and Node.js with Socket.IO.","link":"https://github.com/asherLZR/parole-con-amici","subtitle":"Multiplayer Online Board Game","title":"Parole Con Amici","imgSrc":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEv0lEQVQ4y01Ua0yTVxg+3/ZjMZ0MgVJBi6MoBRy1VaSV3kvBsc25eCFa3YbAhJar0zknLnEanZlmG4pOhiJWvGOdi5rMkIkacDcnk12YGk2IW0zMzC7sYr5v77NzvhbcjzfnO++X9znP897YPnc12+eKmbta2ucKsg5XUMPPMu6LcBviJsdsKOpT/2kexozGMxYDlMTZoX4HAx3u4G3uw15XFbgPBzwh1bhf9Yl//PsWPwNqzAiGawRQgHFm3NEsgtp5UNgTkk8UNcr7XSFqsVXSDmsFtTurSfgOemvk6GNBYc1qbExplHL0ooLtdVYpRwrrlN0FlTRnvI2mJelpmj6RzJMSyaSdQIVJFtqa9yId9zcoHFSJgopYVaEkJLIodVWOcrSwnppy5yMjQUuvvpxCVzpz8dt5G/7osWGwaxo2N+gpM3UcVWYU45i/nkZABYbAEgw1HPlWO8/LYV+tst5cinTdWOreno5/TulxN5wI5WI+8LkTP4e1GO5KwQ+dU2Ayamj55NkCVGmPyhd51wjAsmiSq2WeN8p8IpU+2mbA8NEk3D+ZDuq1Qem1gy47gCt2/P1JNu6F4zEQzkSmLoGarcuIF0x0gGBZJuRGxAvH/fVyleEZmudLIHzjwoMLVqwtT0d3iwm45sGDS3acfCcHp98zYfhTK/CtG68vG0/P6WwUKW6UY9WPCMAhcYkUrSCv1ky71k4Cvi+E0udE/OOPYsPyNGDQh1/O2ZD15BhMNYzBcI+dP+LDxbYczNQaqNNTS1ypABxisYbFYW8dOXRGOrvdCPR7gc8cuNRqwtCpmRyQ36+68dcFu8oUQv6XLtw5MwMmXQq12atof7QwsgooJB/11ZMjOZtObJvCX/dC7nWoJ/o9OLQxGwsKtSjKj8fSp5PxZ08B8LUb1yMWWHQTaa+jmjr+B6hKPlm8gkqS8+mtGi6x24ibbYmciQ2tq/TwmB7D6a2ZGDyWh5tdeVGWAz4c2ZKBWUlZ1OVvoFgOVcliXnHIVytvMC2i/OxEutGuw7W3Gb579xH0bWD48X0J9w+N41V2qaayH/DieXc8BSc/S+HCOjkmOTLaNly2LF5yJJmpqZThzi4JVzno9Z1j8OvZXPx+bobKjC47get+7HhDD1PcZFppnE31BrO81bqEp61BbRuxNW5HK92ozJ/oxUteRndbJfRvYZxZAi9KEa+8n5sP//KCbKxNgXGsnhYaLDjVuknZPy+AoMF9CwceaEaGOiBYdnpqlM15AcpJjoMrSyJnpkTVc+PwQdMktK5Lw9qKVFiz48gxzkyLDAW40sKorzNXqcgvxcFZ5YE9lnLGBzoodbjEYAebVVBvjdIyq1J507SYhC1J81ORbjr5dWZ6IcVOm0xlFJzqpy9amNLfxpRXsqYjbA02r0icx5ZqLdLD9eUOjYLyERRzLQvrKmog0fQ8HfRx8WtUl2uX+7Yz+epuhvLsAoQdq5tdbDHDT2Ddc9eP7kOpY2QnulX56rKIWhX2OJdz5iE0PVWKnesW4KsPJ2BhRs7tzoJ1gVBcE8ONe+xMyUrpmK/x4YKNLVkp9q2JVT8S61OZT5IcyikeKikpjuQb7WVr2GrNqtQKlsYs0vk5a5gAE7H/AevZOIFXkqBUAAAAAElFTkSuQmCC","aspectRatio":1,"src":"/static/ab50255eb0d33d15a9f5138c7c0f37dc/71eb7/parole-con-amici.png","srcSet":"/static/ab50255eb0d33d15a9f5138c7c0f37dc/b5811/parole-con-amici.png 25w,\n/static/ab50255eb0d33d15a9f5138c7c0f37dc/8ba1e/parole-con-amici.png 50w,\n/static/ab50255eb0d33d15a9f5138c7c0f37dc/71eb7/parole-con-amici.png 100w,\n/static/ab50255eb0d33d15a9f5138c7c0f37dc/92ab1/parole-con-amici.png 150w,\n/static/ab50255eb0d33d15a9f5138c7c0f37dc/b3a76/parole-con-amici.png 200w,\n/static/ab50255eb0d33d15a9f5138c7c0f37dc/d5cf4/parole-con-amici.png 240w","sizes":"(max-width: 100px) 100vw, 100px"}}}}},{"node":{"description":"While it is agreed that one of the best modes of learning is through teaching, this is rarely tapped upon. The proposal was to build a video learning website where the content creators are students. Students upload videos of themselves teaching different topics within a unit, soliciting feedback from their peers. The code written here was written under time pressure for presentation purposes only.","link":"https://github.com/asherLZR/perspective","subtitle":"Hackathon Project - 2nd Place Winners, Hackamon 2019","title":"Perspective","imgSrc":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAADLUlEQVQ4y21UTUwTQRTebVE8GA8YAQVEsVJAgxAORhNjovFqQvTqBQ4msG2BgwLlx4JQjIAXSUz06klmtqV0KQUSxcSLV0w8ejJw4GgMtp3nmzez24Vw+PKm05lvv/feN88wIszQCFC0uFzfR6QMi+0h/hgRXsJ9geu/iH3EV8QT3Mfz8i4P0j0Jj9DiAfUn60RsIQAPKlhyfeS3xXYQ3R6pxUyKpIzISFkPQigCVBXhBR2FD3Kv6CNfVOo0qS/lHlKhyP5hFEY/rvsp+uHuFfFMUZMu6ZRNt2adPmVFeSkQ5aJy0BYnB2yo9EPtiVODtjyDtWUFpZb1uinfQ2x6ypAsiORdr/IiPLUGTZMOXHlRRpOOzQlH1MUzQEqVyl1Elcw75dUM06yIcXFnIS8ev9+GjmQO2mfXDuEGxRxcn8nBhXhGlUAKUaRDBlkDf5iy2H3LcGnSEbcXNuDm/BZUj2Sg6vkKnB1WkOvq0Qy0J9chnHCgfswjLGnCn4b2mdrEYtfFsxCaXIVQIocHcB8/YvQxjWWZIjRPOdA2vQY6ZaHvCzqPhCXtMepi/VgWWvBCy/Q6BGM2dd1UGZBNAlEbwkjmIwRtJ6DG0gs4QhhOZKH15TqcGLBdG3mGNqMcZLOOJZRc9JxcyTJlJGxFhRcnHDCefgJd30MKW5Ds2nEpR1TK+3qjIL/WMJ4Vlycy8OjDN3jwdluR9vtqiCpD2JBmtI6PUCvEBuuH7hpaNE444twzGz5+/wU7v/fh9JANtdjtGkT1cAZqR1fh1vwG3H2zCY3jq9RlUz1HSfjaoKlhsR+0gSaVNWybzon22Tx0zOWhFZsj60nAddtMHh6++wJdc3kh61m2DD9AhAw9LbpdwpqRlVJ9PA3nR1OidiSFNkqjgdPgxobxNBI7Qk8cmeqBWvMkzQQ9siQWyUcRVqiIsWIwxgAjBKNMIEBDrl2yUpmMfVbjixNhUM1DIl0iUvVFnDg0WJUdLG1cFQu+uYhk/IwaXzgGtTpTT16JXsSu5z3PtEfWFpPqklgmU8/CgJ7YvEwa4fpPXkUPXb5NS78Ai7nm3aNuWuyqb1oHXEH/AcFPErLPLd/JAAAAAElFTkSuQmCC","aspectRatio":1,"src":"/static/4c91e2f29d4bf18d5c5b687f94808c2e/71eb7/perspective.png","srcSet":"/static/4c91e2f29d4bf18d5c5b687f94808c2e/b5811/perspective.png 25w,\n/static/4c91e2f29d4bf18d5c5b687f94808c2e/8ba1e/perspective.png 50w,\n/static/4c91e2f29d4bf18d5c5b687f94808c2e/71eb7/perspective.png 100w,\n/static/4c91e2f29d4bf18d5c5b687f94808c2e/92ab1/perspective.png 150w,\n/static/4c91e2f29d4bf18d5c5b687f94808c2e/b3a76/perspective.png 200w,\n/static/4c91e2f29d4bf18d5c5b687f94808c2e/e87a5/perspective.png 456w","sizes":"(max-width: 100px) 100vw, 100px"}}}}},{"node":{"description":"Gusfield's Z-algorithm is used as a pre-processing step on the pattern as input to string pattern-matching algorithms like KMP and Boyer-Moore. I built this application with Vue.js as a first step towards understanding web technologies and the process from design to production.","link":"https://github.com/asherLZR/z-algorithm-visualised","subtitle":"Algorithm Visualisation","title":"Z-Algorithm Visualised","imgSrc":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAACaklEQVQ4y4VUO4taURC+uwu2SZ/8lUTUIsFOTBBUMGghmHQrGh8IivYubFKanyDbJWCRWEUUQY16BR/NpkiZbrPe62TmZOYya1i2+Djn3DvznW8eZ6zlcmkxTmS/WCyeIMqIr4hf+M1F7HF/jfiCeId4jBA/z1fITpmIUED8xjMI8Gyg94ifiDfiJ6RamQ9xpUhuEQ7igGcD3BulDLnwkght2/6ncLVaWfP5nA5XfDMRubw/3APgy4T4gqM7lZy9Z1V/WJGQAV52B0KqbBwmjRqF+OGp5IxDAnFYr9ew2WwMaC/QNkKIq43wEWGFE34rYZLBbDaDZrMJxWIRSqUSVKtVqFQq0Gq1YDqdAubMiwLtHfZ9RYTf1E3GgIzJKZfLQSwWg1QqBdFoFILBIGQyGV1xKdaezx2L+0z/9NpjMpmYtd/vQzKZhEgkAr1ez4RN+eTcHVSqflBRXCbxki2EpBS7APL5PAQCAeh0OrDb7Twy8VNC9ha/gDs/pLrb7Rba7Tb4/X5oNBqmOMeNfkR4QyFfqwobhURGzt1uF8LhMGSzWRiNRoaEiqXTwmRS6RERfubDXnqMQh2PxxCPxyEUCpnCpNNpSCQShnwwGJhUqEaXonwkwrcsfS9tQ8bD4RDq9bpplXK5bNqnUChArVYzaoXwSOFLInzED93003FjC3SDaxtVgwE9YZkwKR22elaHB56eq6bPc+IiMpk2l6rBnQeGw0EpI5wzx5k3vljphbrRYcWuag2ZMI6q8jn7n+gBq6f1a1zt+wasOn9HPGMh/01sb3Lz9PUx8Sd6TjxQb6jPEB8QL1RUZ5rjL2DK+YaBsLo+AAAAAElFTkSuQmCC","aspectRatio":1,"src":"/static/f3d6433192f967eb6db1ee1f8088f9fe/71eb7/zalg.png","srcSet":"/static/f3d6433192f967eb6db1ee1f8088f9fe/b5811/zalg.png 25w,\n/static/f3d6433192f967eb6db1ee1f8088f9fe/8ba1e/zalg.png 50w,\n/static/f3d6433192f967eb6db1ee1f8088f9fe/71eb7/zalg.png 100w,\n/static/f3d6433192f967eb6db1ee1f8088f9fe/905ea/zalg.png 125w","sizes":"(max-width: 100px) 100vw, 100px"}}}}},{"node":{"description":"Safehearts is an Android-FHIR app for medical practitioners to monitor patients' key health stats. It was my first foray into Android programming and was instructive in design thinking within the Object-Oriented paradigm. Functional and reactive programming were disallowed. The app uses Strategy & Adapter patterns and demonstrates SOLID principles.","link":"https://github.com/asherLZR/safehearts","subtitle":"Uni Assignment, Software Architecture & Design","title":"Safehearts","imgSrc":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAD00lEQVQ4y22UW2wUVRzGv5lddrs7u1taVGpjNaY0QSAWURIQvIREjTGGB1/URB98IEECES/0ujtdxNZavGCqyANqgAQUbZHEECzaWNQoLQlR6oOCEpooF20EtKbd7vz9/mdmti1xky8758yc3/n+l3PgwIWDNgC/8j8X0XEKOT67i6jnqQ+or6gvqfepNVRN8I1Zk+L6FDbzuRlmMom8QuwAPp//B6giJZyfIZ2jrlDd/LbSMWCF5pFGOxAnWWEpA3Mfp8anAQocqyYDFXTOf6fg3IiD7FIqgOagsIjvzH1iypE7wQ+8tOV6KUqfS2P445TZ2EDHGOoSBy1ktESCPLj1GmIAo5OcZOw2bxZavDhahSAdS4zPCWQN2PEjmPCh2dMJbEgn8QwYd17t9qWMO+NMyiNtHtDoLbjpNbmhokOiaJEImqW2qkuuS24R3SjNDX2oO+6Y3DZ3anEIyy4PXhQ1lIyBNXhLF3ZL36GfZP/e7+XaxIsyv+ZV+ePi3/LFZ6c0THUbOi36LlsvJLD2GgV2BLkoaGh0YmC9+09KdaZd7ly8XQ58NCxnz4xK+OvvOyUVsc2S9HOpKugmSbzwiIZ7OABO6o42Q1tx23Y52PujzI7m5dbaN2To2IiMjY1LsVg0wGPfnpU5cQMMq13w/xs61OFgCDQhM/nMnyyvf1sO9gxL/5HTsnPHoHS//o14XlG+PnrGFCksVtABAbBxtwKHrgZaaJLa67tkdPQf+f23y7K1fUD27TkhA/2/yK53j0tV6iUtzP8ANymwtW96yPphfd02uXjhSpAxTy79NWbc6mZ33bFDPvl4WOY6W7SFZoScxHOvENjYNb0o2hL187bR2aVSEYZ/OCe7dh43hbibwJ4PT4bAaUXJErjuMZ7jp++d0Tb2VA+eP3fZFECdrLz9HTly+GfZu/uEqX6U3TDVNm001PRnDPdXYw2ELhsGdNI/uzwl7EXm0aur3irV5e3mhIB5XcxU1FS+bForU2ps/7Qksf7NcrwHOtyIMjy6gudQ/J1ypaOnzVtGd+HR09PC6pZgjoHpmk0jUSysiuEeoAI99mzsQwJPrWeBQmghvAzSV18OVng5KCyvoU7EsXoVa8GLJm9DfzdCrLmYJPTJdfxg0g/fLCwEjouB9Dl4b5ydj+PhBzJ4CzRlP8j0YRaWwaLPmwmtxFHej/etTGLD534KXAkXT0k7ounfJNbuiVoL5qXRydWf2gSBIGj+ELXqzGAOBnlrbwRiiBC8imnoZLIPOXh2iPPfsS16GUVrzFq25Ba6KbMeAt3ZWO3DoliE/wD081wLajDgZwAAAABJRU5ErkJggg==","aspectRatio":1,"src":"/static/0cfcf8568a4b59a7c5c3e5137a0c6a6d/71eb7/safehearts.png","srcSet":"/static/0cfcf8568a4b59a7c5c3e5137a0c6a6d/b5811/safehearts.png 25w,\n/static/0cfcf8568a4b59a7c5c3e5137a0c6a6d/8ba1e/safehearts.png 50w,\n/static/0cfcf8568a4b59a7c5c3e5137a0c6a6d/71eb7/safehearts.png 100w,\n/static/0cfcf8568a4b59a7c5c3e5137a0c6a6d/92ab1/safehearts.png 150w,\n/static/0cfcf8568a4b59a7c5c3e5137a0c6a6d/85185/safehearts.png 182w","sizes":"(max-width: 100px) 100vw, 100px"}}}}}]}},"pageContext":{}},"staticQueryHashes":["671693147","671693147"]}