{"id":101,"date":"2024-01-10T08:32:06","date_gmt":"2024-01-10T08:32:06","guid":{"rendered":"https:\/\/stormmwright.com\/?page_id=101"},"modified":"2024-10-22T06:59:22","modified_gmt":"2024-10-22T06:59:22","slug":"projects","status":"publish","type":"page","link":"https:\/\/stormmwright.com\/","title":{"rendered":"Projects"},"content":{"rendered":"\n<div class=\"wp-block-kenta-blocks-spacer kb-spacer-352db68a kb-spacer\" aria-hidden=\"true\"><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-group kb-group-c0904aa1 kb-group\"><div class=\"kb-group-inner-container\">\n<div class=\"wp-block-kenta-blocks-row kb-row-a8b92d56 kb-row\"><div class=\"kb-row-inner-container\">\n<div class=\"wp-block-kenta-blocks-icon kb-icon kb-icon-bd93f53a\"><div class=\"kb-icon-wrap\"><i class=\"fas fa-mobile-screen\"><\/i><\/div><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-paragraph kb-paragraph kb-paragraph-421e3948\"><p class=\"\"><strong>Aura<\/strong>, <em>June 2021 &#8211; Present<\/em><\/p><\/div>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-kenta-blocks-separator kb-separator-c0a4ef33 kb-separator\"\/>\n\n\n\n<div class=\"wp-block-kenta-blocks-row kb-row-7d009cf6 kb-row\"><div class=\"kb-row-inner-container\">\n<div class=\"wp-block-kenta-blocks-group kb-group-d8701d78 kb-group\"><div class=\"kb-group-inner-container\">\n<div class=\"wp-block-kenta-blocks-paragraph kb-paragraph kb-paragraph-7c1c42b6\"><p class=\"\"><strong>Objective<\/strong>: To construct an iOS mobile application that serves as a color-oriented long-term mood tracker and integrates Apple&#8217;s HealthKit to provide end-of-the-week health-related resources based on the correlation between the user\u2019s mood entries and HealthKit statistics.<\/p><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-group kb-group-b11c2027 kb-group\"><div class=\"kb-group-inner-container\">\n<div class=\"wp-block-kenta-blocks-paragraph kb-paragraph kb-paragraph-bb8e1a05\"><p class=\"\"><strong>Outcome<\/strong>:<\/p><\/div>\n\n\n\n<ul style=\"margin-right:var(--wp--preset--spacing--60);margin-left:var(--wp--preset--spacing--60)\" class=\"wp-block-list\">\n<li>Engineered a minimum viable product in five weeks using Xcode as an integrated development environment.<\/li>\n\n\n\n<li>Configured and deployed a Parse server for user account management using Back4App.<\/li>\n\n\n\n<li>Designed and implemented view controllers to facilitate application content navigation.<\/li>\n\n\n\n<li>Implemented sign-in, log-in, and log-out account functionality and user persistence.<\/li>\n\n\n\n<li>Populated the calendar view with mood entry data using FSCalendar and the chart view with mood entry data using Google Chart API.<\/li>\n\n\n\n<li>Implemented HealthKit to track the user\u2019s sleep duration, steps or pushes for wheelchair users, and weight fluctuation statistics.<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-group kb-group-5cd8acc4 kb-group\"><div class=\"kb-group-inner-container\">\n<div class=\"wp-block-kenta-blocks-paragraph kb-paragraph kb-paragraph-bd5ae480\"><p class=\"\"><strong>Challenges<\/strong>:<\/p><\/div>\n\n\n\n<ul style=\"margin-right:var(--wp--preset--spacing--60);margin-left:var(--wp--preset--spacing--60)\" class=\"wp-block-list\">\n<li>Querying the Parse server for the correct color and updating the calendar view using the data from the asynchronous query. The calendar view required reloading after the completion of the query, as it rendered before completion.<\/li>\n\n\n\n<li>Determining the best approach for finding the correlation between a user\u2019s mood entries and HealthKit statistics. I attempted to use <a href=\"https:\/\/developer.apple.com\/documentation\/healthkit\/hkcorrelationquery?language=objc\" data-type=\"link\" data-id=\"https:\/\/developer.apple.com\/documentation\/healthkit\/hkcorrelationquery?language=objc\" target=\"_blank\" rel=\"noreferrer noopener\">HKCorrelationQuery<\/a> but settled for using <a href=\"https:\/\/developer.apple.com\/documentation\/healthkit\/hksample?language=objc\" data-type=\"link\" data-id=\"https:\/\/developer.apple.com\/documentation\/healthkit\/hksample?language=objc\" target=\"_blank\" rel=\"noreferrer noopener\">HKSample<\/a> to determine the correlation manually.<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-group kb-group-45f11405 kb-group\"><div class=\"kb-group-inner-container\">\n<div class=\"wp-block-kenta-blocks-paragraph kb-paragraph kb-paragraph-20847056\"><p class=\"\"><strong>Highlights<\/strong>:<\/p><\/div>\n\n\n\n<ul style=\"margin-right:var(--wp--preset--spacing--60);margin-left:var(--wp--preset--spacing--60)\" class=\"wp-block-list\">\n<li>Having complete creative control over an iOS mobile application project while interning at Meta.<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-row kb-row-01dabfa4 kb-row\"><div class=\"kb-row-inner-container\">\n<div class=\"wp-block-kenta-blocks-paragraph kb-paragraph kb-paragraph-4c6ac28f\"><p class=\"\"><strong>Topics<\/strong>: FSCalendar, Git, GitHub, Google Chart API, HealthKit, iOS Development, Objective-C, Parse, UI\/UX Design, Xcode<\/p><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-icon kb-icon kb-icon-f7e63632\"><a class=\"kb-icon-wrap\" href=\"https:\/\/github.com\/stormmwright\/Aura\" target=\"_blank\" rel=\"noopener\"><i class=\"fab fa-github\"><\/i><\/a><\/div>\n<\/div><\/div>\n<\/div><\/div>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-spacer kb-spacer-54d0166f kb-spacer\" aria-hidden=\"true\"><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-group kb-group-7a75a5c0 kb-group\"><div class=\"kb-group-inner-container\">\n<div class=\"wp-block-kenta-blocks-row kb-row-00a17a27 kb-row\"><div class=\"kb-row-inner-container\">\n<div class=\"wp-block-kenta-blocks-icon kb-icon kb-icon-dbcb6cef\"><div class=\"kb-icon-wrap\"><i class=\"fab fa-facebook-f\"><\/i><\/div><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-paragraph kb-paragraph kb-paragraph-3b3628dc\"><p class=\"\"><strong>Facebook Groups Tab Software Engineer Intern<\/strong>, <em>May &#8211; August 2022<\/em><\/p><\/div>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-kenta-blocks-separator kb-separator-e99a58c1 kb-separator\"\/>\n\n\n\n<div class=\"wp-block-kenta-blocks-paragraph kb-paragraph kb-paragraph-32e9a0bf\"><p class=\"\"><strong>Objective<\/strong>: To implement a new surface bundle with a corresponding pivot button within the Facebook Groups tab.<\/p><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-group kb-group-b8a807ef kb-group\"><div class=\"kb-group-inner-container\">\n<div class=\"wp-block-kenta-blocks-paragraph kb-paragraph kb-paragraph-d6e2bc8e\"><p class=\"\"><strong>Outcome<\/strong>:<\/p><\/div>\n\n\n\n<ul style=\"margin-right:var(--wp--preset--spacing--60);margin-left:var(--wp--preset--spacing--60)\" class=\"wp-block-list\">\n<li>Implemented rendering logic on both iOS and web sides.<\/li>\n\n\n\n<li>Implemented user data retrieval using GraphQL.<\/li>\n\n\n\n<li>Built data observable logic and populated the surface with user data.<\/li>\n\n\n\n<li>Optimized the surface with user interface details such as a progress indicator and default user interface for network failure.<\/li>\n\n\n\n<li>Completed a second milestone consisting of constructing a sub-navigation surface with similar functionality.<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-group kb-group-7f7e2b46 kb-group\"><div class=\"kb-group-inner-container\">\n<div class=\"wp-block-kenta-blocks-paragraph kb-paragraph kb-paragraph-d51b49bf\"><p class=\"\"><strong>Challenges<\/strong>:<\/p><\/div>\n\n\n\n<ul style=\"margin-right:var(--wp--preset--spacing--60);margin-left:var(--wp--preset--spacing--60)\" class=\"wp-block-list\">\n<li>Ramping up on the Groups tab codebase to familiarize myself with different code snippets and their functionality. The Groups tab codebase was initially overwhelming as it was one of the largest at Meta, but I utilized best practices for searching the codebase and followed code paths.<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-group kb-group-0945a07b kb-group\"><div class=\"kb-group-inner-container\">\n<div class=\"wp-block-kenta-blocks-paragraph kb-paragraph kb-paragraph-b187cb99\"><p class=\"\"><strong>Highlights<\/strong>:<\/p><\/div>\n\n\n\n<ul style=\"margin-right:var(--wp--preset--spacing--60);margin-left:var(--wp--preset--spacing--60)\" class=\"wp-block-list\">\n<li>Implementing user interface details using Facebook-specific assets.<\/li>\n\n\n\n<li>Pushing production-ready iOS and web code to the Meta codebase.<\/li>\n\n\n\n<li>Working on a team of knowledgeable engineers with diverse backgrounds.<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-paragraph kb-paragraph kb-paragraph-6f7dcf1e\"><p class=\"\"><strong>Topics<\/strong>: GraphQL, iOS Development, Mercurial, Objective-C, UI\/UX Design, Visual Studio Code, Web Development, Xcode<\/p><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-paragraph kb-paragraph kb-paragraph-2dfa1f9f\"><p class=\"\"><em>The specifics of this project are confidential.<\/em><\/p><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-spacer kb-spacer-89a3e968 kb-spacer\" aria-hidden=\"true\"><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-group kb-group-ac58e5c0 kb-group\"><div class=\"kb-group-inner-container\">\n<div class=\"wp-block-kenta-blocks-row kb-row-fd96b5c2 kb-row\"><div class=\"kb-row-inner-container\">\n<div class=\"wp-block-kenta-blocks-icon kb-icon kb-icon-86fd87a0\"><div class=\"kb-icon-wrap\"><i class=\"fab fa-github\"><\/i><\/div><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-paragraph kb-paragraph kb-paragraph-2e4225f1\"><p class=\"\"><strong>GitHub Repositories<\/strong><\/p><\/div>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-kenta-blocks-separator kb-separator-0a8a0cf3 kb-separator\"\/>\n\n\n\t\t<div class='wp-block-ghb-github align' id='ghbMainArea-391a206a-a' data-attributes='{&quot;align&quot;:&quot;&quot;,&quot;cId&quot;:&quot;391a206a-a&quot;,&quot;userName&quot;:&quot;stormmwright&quot;,&quot;columns&quot;:{&quot;desktop&quot;:2,&quot;tablet&quot;:2,&quot;mobile&quot;:1},&quot;columnGap&quot;:&quot;20px&quot;,&quot;rowGap&quot;:&quot;20px&quot;,&quot;nameColor&quot;:&quot;rgba(249, 87, 56, 1)&quot;,&quot;modalBtnColors&quot;:{&quot;color&quot;:&quot;#fff&quot;,&quot;bg&quot;:&quot;rgba(249, 87, 56, 1)&quot;},&quot;modalBtnBorder&quot;:{&quot;color&quot;:&quot;rgba(249, 87, 56, 1)&quot;,&quot;style&quot;:&quot;solid&quot;,&quot;width&quot;:&quot;1px&quot;},&quot;layout&quot;:&quot;default&quot;,&quot;elements&quot;:{&quot;logo&quot;:true,&quot;repoName&quot;:true,&quot;desc&quot;:true,&quot;download&quot;:true,&quot;topic&quot;:true,&quot;pagination&quot;:true,&quot;masonry&quot;:false},&quot;query&quot;:{&quot;postsPerPage&quot;:8},&quot;background&quot;:{&quot;color&quot;:&quot;#000&quot;},&quot;padding&quot;:{&quot;top&quot;:&quot;20px&quot;,&quot;right&quot;:&quot;20px&quot;,&quot;bottom&quot;:&quot;20px&quot;,&quot;left&quot;:&quot;20px&quot;},&quot;cardBG&quot;:{&quot;color&quot;:&quot;#000&quot;},&quot;cardPadding&quot;:{&quot;top&quot;:&quot;35px&quot;,&quot;right&quot;:&quot;20px&quot;,&quot;bottom&quot;:&quot;35px&quot;,&quot;left&quot;:&quot;20px&quot;},&quot;cardBorder&quot;:{&quot;color&quot;:&quot;#222&quot;,&quot;style&quot;:&quot;solid&quot;,&quot;width&quot;:&quot;1px&quot;},&quot;githubIcon&quot;:{&quot;size&quot;:35,&quot;color&quot;:&quot;#fff&quot;},&quot;nameTypo&quot;:{&quot;fontSize&quot;:{&quot;desktop&quot;:16,&quot;tablet&quot;:15,&quot;mobile&quot;:15},&quot;fontWeight&quot;:400,&quot;lineHeight&quot;:&quot;135%&quot;},&quot;descTypo&quot;:{&quot;fontSize&quot;:{&quot;desktop&quot;:15,&quot;tablet&quot;:15,&quot;mobile&quot;:15},&quot;fontWeight&quot;:400,&quot;lineHeight&quot;:&quot;135%&quot;},&quot;descColor&quot;:&quot;#ccc&quot;,&quot;downloadBtnTypo&quot;:{&quot;fontSize&quot;:{&quot;desktop&quot;:16,&quot;tablet&quot;:15,&quot;mobile&quot;:15},&quot;fontWeight&quot;:400,&quot;lineHeight&quot;:&quot;135%&quot;},&quot;downloadBtnColors&quot;:{&quot;color&quot;:&quot;#fff&quot;,&quot;bg&quot;:&quot;#000&quot;},&quot;downloadBtnPadding&quot;:{&quot;top&quot;:&quot;4px&quot;,&quot;right&quot;:&quot;8px&quot;,&quot;bottom&quot;:&quot;4px&quot;,&quot;left&quot;:&quot;8px&quot;},&quot;downloadBtnBorder&quot;:{&quot;color&quot;:&quot;#222&quot;,&quot;style&quot;:&quot;solid&quot;,&quot;width&quot;:&quot;1px&quot;},&quot;pageBtnTypo&quot;:{&quot;fontSize&quot;:{&quot;desktop&quot;:16,&quot;tablet&quot;:15,&quot;mobile&quot;:15},&quot;fontWeight&quot;:400,&quot;lineHeight&quot;:&quot;135%&quot;},&quot;pageBtnColors&quot;:{&quot;color&quot;:&quot;#fff&quot;,&quot;bg&quot;:&quot;#000&quot;},&quot;pageBtnActiveColors&quot;:{&quot;color&quot;:&quot;#000&quot;,&quot;bg&quot;:&quot;#fff&quot;},&quot;pageBtnBorder&quot;:{&quot;color&quot;:&quot;#eee&quot;,&quot;style&quot;:&quot;solid&quot;,&quot;width&quot;:&quot;1px&quot;},&quot;modalBtnTypo&quot;:{&quot;fontSize&quot;:{&quot;desktop&quot;:15,&quot;tablet&quot;:15,&quot;mobile&quot;:15},&quot;fontWeight&quot;:400,&quot;lineHeight&quot;:&quot;135%&quot;},&quot;modalBtnHoverColors&quot;:{&quot;color&quot;:&quot;#fff&quot;,&quot;bg&quot;:&quot;#000&quot;},&quot;modalBtnPadding&quot;:{&quot;top&quot;:&quot;8px&quot;,&quot;right&quot;:&quot;25px&quot;,&quot;bottom&quot;:&quot;8px&quot;,&quot;left&quot;:&quot;25px&quot;},&quot;modalBtnHoverBorder&quot;:{&quot;color&quot;:&quot;#eee&quot;,&quot;style&quot;:&quot;solid&quot;,&quot;width&quot;:&quot;1px&quot;}}'><\/div>\n\n\t\t<\/div><\/div>\n\n\n\n<div class=\"wp-block-kenta-blocks-spacer kb-spacer-84f055d4 kb-spacer\" aria-hidden=\"true\"><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","site-transparent-header":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","ngg_post_thumbnail":0,"footnotes":""},"class_list":["post-101","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/stormmwright.com\/index.php?rest_route=\/wp\/v2\/pages\/101"}],"collection":[{"href":"https:\/\/stormmwright.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/stormmwright.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/stormmwright.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stormmwright.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=101"}],"version-history":[{"count":46,"href":"https:\/\/stormmwright.com\/index.php?rest_route=\/wp\/v2\/pages\/101\/revisions"}],"predecessor-version":[{"id":392,"href":"https:\/\/stormmwright.com\/index.php?rest_route=\/wp\/v2\/pages\/101\/revisions\/392"}],"wp:attachment":[{"href":"https:\/\/stormmwright.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}