\n \n \n \n
\n \n \nHelping make Climate Clock's clock face more personalizable was another goal of ours from the start of the project. We tackled the problem by improving the lifeline customization experience. Users are now able to add their own lifelines with custom values and headers. The way lifelines are displayed was also changed, and they are now able to be reordered and removed at any time. In addition, the default lifelines are always available from a dropdown.
\n \nWe took personalization of the clock face farther than lifelines, giving users the option to change settings from the display language to the clock's news ticker. We recognize that the message someone hopes to convey with a clock configuration is unique, and our customizability helps Climate Clock reach a large audience in this way. To support editing of such custom clock faces, we save lifelines locally so they can be viewed even after the browser is closed. We also support easy sharing of custom lifelines and settings with a sharable URL.
\n \nWith our improvements to clock face customizability and sharing, we recognized that the next step was to make these changes more presentable across the internet. Like the existing site, our web application allows clock faces to be embedded into other web pages, with the same responsiveness apparent on our own app. For example, clock faces wrap when the embed container is too small to display the side-by-side deadline and lifeline.
\n \n \n \n ',productManager:[a],techLead:[e],productDesigner:[i],softwareDevelopers:[{name:"Aaron Alexander",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/61lvCnbKdSmaTERznoacg4/0cd01dd4ee665e6fa9d4cae1c5c08771/aaron_alexander.jpg",alt:"Aaron Alexander"},role:"Software Developer",linkedIn:"https://www.linkedin.com/in/aaron-alexander-735328198/",active:!0,graduationYear:2025},{name:"Eesha Barua",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/1qFGV9373uRcwMiDfg2eKW/d7053db87ee72980daee16815c9599ae/Individual8.2V_-_Eesha_Barua.jpg",alt:"Eesha Barua Headshot"},role:"Software Developer",linkedIn:"https://www.linkedin.com/in/eesha-barua/",active:!0,graduationYear:2025},t,{name:"Sahil Kamboj",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/lpHUbSMrTyKgKkiygULT3/0945e3f696cfa4cb5cab9e52fd5e4e7b/Sahil.jpg",alt:"Sahil_Kamboj"},role:"Software Developer",linkedIn:"https://www.linkedin.com/in/kambojsahil/",active:!0,graduationYear:2023}],featured:!0,testimonial:"Joining the Climate Clock team gave me the opportunity to grow my skillset in different ways. Not only was I able to explore new technologies and frameworks, but I was also able to do so while keeping the message of a global cause in mind. I got to think and learn about the product-side and understand the thought process behind the design choices. Seeing those ideas come to fruition gave a sense of achievement and excitement knowing our hard work was paying off, certainly a rewarding experience!",testimonialSourceName:"Sahil Kamboj",testimonialSourceDescription:"Hack4Impact Software Developer",testimonialSourceImage:{src:"https://images.ctfassets.net/xig6hkxlux4q/lpHUbSMrTyKgKkiygULT3/0945e3f696cfa4cb5cab9e52fd5e4e7b/Sahil.jpg",alt:"Sahil_Kamboj"},testimonialSourceType:"Member"},{name:"MENTEE",semester:["Fall 2020","Spring 2021","Fall 2021"],slug:"mentee",headerImage:{src:"https://images.ctfassets.net/xig6hkxlux4q/7jHBpgk0ZTO6866qeULq2C/2f958675086131a940c029c48aa3fff9/Frame__Export_Target_.png",alt:"MENTEE Header"},summary:"Connecting underserved communities with a global network of mentors to secure their future.",nonprofitDescription:"MENTEE is a nonprofit that offers a network of global specialists and a supportive program to those 18 and older living around the world and marginalized in their own communities. They hope to help individuals and communities feel empowered and secure in their future, while creating lasting connections and learning that will accelerate their own success.",nonprofitUrl:"https://www.menteeglobal.org/",nonprofitLogo:{src:"https://images.ctfassets.net/xig6hkxlux4q/6tCwoMagOvbezSjSEE7WBf/bc9976670fd09c0e8cd20a3502b74708/Copy_of_mentee.png",alt:"MENTEE Logo"},logoWhite:{src:"https://images.ctfassets.net/xig6hkxlux4q/7fNwVoIe1O6OmPdn0Yhn01/837aa72bfde631a67dec1f35ab87f73a/Mentee.svg",alt:"Mentee Logo - White"},accentColor:"#deac21",fullDescription:'To help MENTEE further their mission, we created a platform to bring their program virtual and global. This application allows mentees to connect with mentors by browsing through mentor profiles and booking appointment times. Profiles showcase the mentor’s expertise, resources offered, languages spoken, and more. Mentors also have the option to insert videos into their profiles to highlight their skills and offer basic training. With this, mentees are offered the power of choice and access, while also making this mentorship program more scalable.
React, Redux, Flask, MongoDB
As a mentor you have the flexibility to set appointment times for when mentees can meet with you. You can then view your appointment requests in your portal.
\n \nEdit your profile with information about your background, career, and education. In addition you can add asynchronous mentorship videos
As a mentee you can find a mentor through the mentor gallery. Filtering by specialization and language will help you find the best fit.
\n \nYour mentee portal is where you can see the mentors you have bookmarked and the status of your upcoming appointments.
\n \nMake your profile public so other mentors/mentees can reach out to you through messages.
As an admin you can easily view real time data and download this data into a spreadsheet for further analysis. This will allow you to make guided decisions in directing mentees to certain mentors.
',productManager:[{name:"Angela Luo",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/18WGgxZlaSUTA7yHoFehRY/ac12aa902187f292643e453e9488d2b8/angela_luo.jpg",alt:"Angela Luo"},role:"Community Director",linkedIn:"https://www.linkedin.com/in/angela-luo-566340191/",active:!1,graduationYear:2023},{name:"Lam Tran",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/4H8i3qFTfMicHFFUyaiHRT/65c97fbddd252385c4c18ea60b034a76/lam_tran.jpg",alt:"Lam Tran"},role:"Product Manager",linkedIn:"https://www.linkedin.com/in/lamgtran/",active:!1,graduationYear:2022}],techLead:[{name:"Kelley Chau",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/2DSiFzPNiCRUNrLT930HuE/c136cf4b4375174ba2028aea4913bcb2/kelley_chau.jpg",alt:"Kelley Chau"},role:"Software Developer",linkedIn:"https://www.linkedin.com/in/kelley-chau-838ab313b/",active:!1,graduationYear:2021},{name:"Kendall Hester",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/5ijNsZj0eSIrivapxBS81H/8abc96fbd43f0c198ae43bcc986058f0/kendall_hester.jpg",alt:"Kendall Hester"},role:"Tech Director",linkedIn:"https://www.linkedin.com/in/kendall-hester-429591168/",active:!1,graduationYear:2023},{name:"Leonardo Galindo-Frias",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/3PvLLGxks8SwEHUYVGB8cM/99bfe24dcd625a8b71efb7b926c94a49/leonardo_galindo.jpg",alt:"Leonardo Galindo-Frias"},role:"Tech Lead",linkedIn:"https://www.linkedin.com/in/leonardo-galindo-frias/",active:!1,graduationYear:2023}],productDesigner:[{name:"Faith Losbanes",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/1UKEk8FLgJSFSzbYJzCZj2/c55ea362ac606bca6370798ab899df57/faith_losbanes.jpg",alt:"Faith Losbanes"},role:"Product Designer",linkedIn:"https://www.linkedin.com/in/faith-losbanes-527a97196",active:!0,graduationYear:2023},i],softwareDevelopers:[n,e,{name:"Ishaan Sharma",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/bbwQAF9WPPYBkaB1DYmsX/2bb2c7886e8e5ce1e9a69f01dcb3a560/ishaan_sharma.jpg",alt:"Ishaan Sharma"},role:"Software Developer",active:!1,graduationYear:2024},{name:"Luciana Toledo-López",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/1nKdkOrToSuX2rtfcSmHPe/8f397e1d68b2fc3574f122b2d00d47be/luciana_toledolopez.jpg",alt:"Luciana Toledo-López"},role:"Community Director",linkedIn:"https://www.linkedin.com/in/luciana-toledo-l%C3%B3pez-645556187/",active:!1,graduationYear:2023},{name:"Michael Chen",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/1jj1UPvuGJ3dVSy6vM5CMT/366d0438e7b572f3f7183db6f2047003/michael_chen.jpg",alt:"Michael Chen"},role:"Software Developer",linkedIn:"https://www.linkedin.com/in/mc578",active:!1,graduationYear:2021},{name:"Nayonika Roy",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/1rB9UpoDfGLY0N7uSSYopB/03009f027287961e06b50051a23d5cf3/nayonika_roy.jpg",alt:"Nayonika Roy"},role:"Software Developer",linkedIn:"https://www.linkedin.com/in/nayonika-roy-0162291b5/",active:!0,graduationYear:2023},{name:"Praneeth Guduguntla",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/4gFpG6CMatVUOB1914DGQc/c2a45f73892b8054de24a6c15553e97d/praneeth_guduguntla.jpeg",alt:"Praneeth Guduguntla"},role:"Product Manager",linkedIn:"https://www.linkedin.com/in/praneeth-g-277128133/",active:!0,graduationYear:2024},{name:"Zayyan Faizal",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/5WKJMiK8KxxbbSvXTSIUXf/ef8d70f2eb4645552b63bbc0653152c6/zayyan_faizal.jpg",alt:"Zayyan Faizal"},role:"Software Developer",linkedIn:"https://www.linkedin.com/in/zayyanfaizal/",active:!1,graduationYear:2022}],featured:!0,testimonial:"I am so grateful for this incredible University of Illinois student run team. They have been tirelessly devoted to the work they do, whether it be with me or others. I am incredibly impressed with their professionalism, and their creativity, and devotion to my idea and improving on my ideas in order to achieve something that is the best possible product.",testimonialSourceName:"Letitia Zwickert",testimonialSourceDescription:"Founder & CEO of MENTEE",testimonialSourceImage:{src:"https://images.ctfassets.net/xig6hkxlux4q/5unm8tulL4a2BchCOuueNn/630e48926bc7acdec1385ea594d87ac4/letitia-zwickert.jpg",alt:"Letitia Zwickert"},testimonialSourceType:"Nonprofit"},{name:"Falling Fruit",semester:["Spring 2021","Fall 2021"],slug:"falling-fruit",headerImage:{src:"https://images.ctfassets.net/xig6hkxlux4q/7otFuGt9TEUxfWdMtNML8C/993607728fcdbc2e45bd708bcb20d559/FF.png",alt:"Falling Fruit Header"},summary:"Curating an open-source, public database of urban foraging locations.",nonprofitDescription:"Falling Fruit is a nonprofit organization that created a web and mobile application to help foragers all across the globe identify, locate and document edible harvests in their local region through the use of an interactive map. ",nonprofitUrl:"https://fallingfruit.org/",nonprofitLogo:{src:"https://images.ctfassets.net/xig6hkxlux4q/6TTf25yGjQxLj2eLJe16fC/248c66ff9e3d619d29ef7978131695d9/FF_Logo.svg",alt:"Falling Fruit Logo"},logoWhite:{src:"https://images.ctfassets.net/xig6hkxlux4q/2RnIBcihuIbRMYyTg53CWg/048d5c2c41447f3ad6d8a99c050b7596/Falling_Fruit.svg",alt:"Falling Fruit Logo - White"},accentColor:"#f27c0d",fullDescription:'Founded in 2013, Falling Fruit is a nonprofit organization that seeks to create a global, comprehensive map of foraging locations. Their imported datasets include small neighborhood foraging maps to professionally-compiled tree inventories. The project is open-source, with all data being downloadable and editable by the public.
Hack4Impact’s partnership with Falling Fruit is designed to unite the two existing, separate mobile and desktop platforms into ONE responsive app. Currently, Ethan Welty (CEO and Co-Founder of Falling Fruit) maintains two separate repositories for these apps which has become redundant and tedious. Thus, our app seeks to preserve existing functionality, such as using the map view to look at nearby edible locations, learning more about a particular location, adding your own location and reviews, as well as supporting multiple languages. Additionally, the search, filter, and list view provide an accessible way to skim through locations and types to help foragers make the best out of their trip!
As an end user of Falling Fruit, I want to be able to browse nearby edible locations, search and filter for specific edible types, add a location, review a location, and report a location all in my own language.
Users range from a variety of expertise in both foraging and technology. Because of this, we aim to create a streamlined experience for novices and experts alike by the end of our partnership by providing additional onboarding or exploration features for new users, while keeping granular filters and information for experienced foragers.
Moreover, it was a big technical challenge to tackle continuity between mobile and desktop app display, as well as routing consistency between the apps. This impacted the way we thought about how to connect between the map and list views, as well as how to appropriately handle displaying location information on different modalities.
Falling Fruit is a front-end only project that utilizes React and Reach UI. There is an existing database built on PostgreSQL + PostGIS with two APIs to access it. The original Rails API is used for everything on the old mobile app. However, the old desktop web app uses a new NodeJS JSON API to access locations, while user management is still performed using the original Rails API. We have been working with Ethan Welty on API access and improvements, as he continues to work on a new API.
The landing page introduces the user to the global map of location clusters. Clicking on a cluster will result in zooming in closer and closer to a geographic area until you can see individual location pins. Users may also select whether or not they’d like the sidebar to update in real time as they move the map or manually refresh results.
For comparison, these are what the old website and mobile apps look like! We hope to maintain a lot of continuity between aesthetics and functionality, while still modernizing and improving other aspects!
After zooming in close enough, users can view individual location pins on the map, as well as a list of these locations in the sidebar.
On mobile, a list view is also provided on a separate tab so that users can easily scroll through nearby locations. This corresponds with the center of the map as given by the map view. Users may also open up a location information page through the entries in this list.
\n \nSearching for a particular address or location is available for users. The current location, if the user has enabled sharing their location, will also be available for the search. Multi-type filtering is also available for users who wish to narrow down the number of edible locations.
After clicking on a pin, users are able to view more information about that particular location in the sidebar, including photos, descriptions, and reviews. To review a location, users can directly submit one on the location information page.
For locations that are spam, inappropriate, or otherwise inaccurate, users can report these to an administrator which will review and notify them on the outcome if they provide a contact email address:
If users come across a location they’d like to add, they can submit it through a form that includes all the necessary location information. Users can drag the map in order to place the pin at the appropriate address.
Users that would like to tweak the map view to display satellite view or transit routes will be able to do so on the settings page. This is also where users can switch locales to a language that they use.
In order to achieve their mission, 3DP4ME faces a great logistical challenge. Prior to a patient receiving their hearing aid, a volunteer must collect the patient’s medical information, take an ear scan, create a 3D model, and finally, print the hearing aid. Even after delivery, 3DP4ME must periodically follow up with patients to ensure that the hearing aid is meeting the patient’s needs. In the past, volunteers manually collected this information in a non standardized way. Not only did this lead to confusion and delays, but this model of data collection wasn’t scalable.
We’ve been working with 3DP4ME since the Fall of 2020 to create a web dashboard that addresses these issues. Our dashboard serves as a single location for all data related to 3DP4ME’s operations. Using our application, patient data, ear scans, CAD files, and feedback can all be collected, shared, and viewed by the 3DP4ME team.
Our product heavily utilizes AWS infrastructure and services to deliver a reliable and secure application. The React frontend and Node.js backend are hosted on Elastic Beanstalk, while files and data are stored in S3 and MongoDB respectively. For authentication, we use AWS Cognito with Google OAuth. Then, we used Twilio for two-factor authentication through Whatsapp.
On top of that, we use automated testing and vulnerability scanning to ensure that our application is of the highest possible quality.
\n \nThere are a few special circumstances that present unique challenges and considerations for this project. First, since 3DP4ME is based in Jordan many of their volunteers’ native language is Arabic. To accommodate this, we added Arabic support, which includes flipping the left-to-right design to be right-to-left. Additionally, 3DP4ME is rapidly expanding, which means that our product needs to be built to grow with them! For this reason, we created a dashboard management page so that anyone without technical experience can alter the data collected on the patient management page. This means both our frontend and database schema are completely dynamic.
This is the main page the users are greeted with when they log in. From here users can view all patients or add a new patient.
This page stores all information for a single patient. Volunteers can add text, audio, and file data to a patient’s profile under the appropriate section tab.
Since our platform stores sensitive medical information, we need to have strong security. From the account management page, administrators can change the access levels of various users, controlling what information they can and cannot see.
3DP4ME is rapidly growing, so we need to make our application capable of growing with them. This page allows an administrator with no technical knowledge to change the fields that appear on the patient management page (similar to google forms).
Here are a few examples of how our website looks while in Arabic:
\n \n \n \n ',productManager:[{name:"Evan Eckels",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/6EekM2glgqSHUcYEy35TeW/c572d341c171f1959a86a41dccfe65bc/evan_eckels.jpg",alt:"Evan Eckels"},role:"Product Manager",linkedIn:"https://www.linkedin.com/in/evaneckels/",active:!1,graduationYear:2022},{name:"Gene Wang",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/2fMmJFChAdPKNqzsMsSQlB/98e3dc71910c2c94120e873c2cb7b73b/gene_wang.jpg",alt:"Gene Wang"},role:"Product Manager",linkedIn:"https://www.linkedin.com/in/genewang0/",active:!1,graduationYear:2021}],techLead:[{name:"Matthew Walowski",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/4p6LeyaGISibB1BsoV3PnW/1b2bb45c6387536fef6eeb4f04239148/matthew_walowski.jpg",alt:"Matthew Walowski"},role:"Tech Lead",linkedIn:"https://www.linkedin.com/in/matthew-walowski/",active:!1,graduationYear:2023},{name:"Utkarsh Awasthi",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/2Hkm6RDtebe3KSd3F7PxNC/09e9086bc44e9df153ac6435d51b942b/utkarsh_awasthi.jpg",alt:"Utkarsh Awasthi"},role:"Tech Lead",linkedIn:"https://www.linkedin.com/in/navamawasthi/",active:!1,graduationYear:2021}],productDesigner:[{name:"Anisha Rao",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/6wzTCsujxT5GoTFuJ9Rw5b/4bedf8bee9559a408022a1c4a8990a86/anisha_rao.jpg",alt:"Anisha Rao"},role:"Product Designer",linkedIn:"https://www.linkedin.com/in/anisharao14/",active:!1,graduationYear:2022}],softwareDevelopers:[{name:"Amit Sawhney",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/3tdBQH6lJJpDT9T7eJEy89/a7e68775c6f06c484dae9536a1bae1f0/amit_sawhney.jpg",alt:"Amit Sawhney"},role:"Co-Director",linkedIn:"https://www.linkedin.com/in/amit-m-sawhney/",active:!0,graduationYear:2024},n,a,o,{name:"Ashay Parikh",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/6xl3G73J4lqhVCYzxWWi0X/858d03944a3deb3cd3608176462edcfb/ashay_parikh.jpg",alt:"Ashay Parikh"},role:"Software Developer",linkedIn:"https://www.linkedin.com/in/ashay-parikh-a0621619a/",active:!0,graduationYear:2025},e,{name:"Kelly Dunleavy",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/3K2anWxHNhP3YQxj2peJks/3892b6c4e474c33cf28285ac051ca8b5/kelly_dunleavy.jpg",alt:"Kelly Dunleavy"},role:"Software Developer",linkedIn:"https://www.linkedin.com/in/kelly-dunleavy/",active:!1,graduationYear:2022},s,t,{name:"Sue Wee",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/6ttGOgP3HvGsbkg10W27Pb/0532d20938b7a108e1d0d84af555442e/sue_wee.jpg",alt:"Sue Wee"},role:"Software Developer",linkedIn:"https://www.linkedin.com/in/suewee/",active:!1,graduationYear:2023},r,{name:"Yogi Koppol",picture:{src:"https://images.ctfassets.net/xig6hkxlux4q/7H8e116EpQGqV1jgzuYNWd/c6b6d085164c14202cb1c0fa213c7dd3/ananth_koppol.jpg",alt:"Yogi Koppol"},role:"Product Manager",active:!0,graduationYear:2023}],featured:!0}]}}({},{},{},{},{},{},{},{}),uses:{}}],form:null}})