Inspiration

This project was inspired by an existing and annual mentor program that one of our team members is a program administrator of. When the mentor program was first launched there were only 20 mentor and mentees to match and the matching was done manually. However, this program quickly grew to have 200+ mentors and mentees that spanned 10+ international time zones which made manually matching more cumbersome and did not always provide the most ideal match for all mentor-mentee pairings.

What it does

Penn-Pal is targeted towards three audiences: Mentors, Mentees, and Mentor Program Administrators. Penn-Pal provides an intuitive and simple portal for mentors and mentees from different locations, time zones, backgrounds, and experiences to sign-up and connect with each other. Mentor program administrators can use the application on a desktop or mobile device to create a new mentoring event and monitor the progress of participation rates.

Online live version

No installation required - open in your web browser

Home Page

Create Mentor Event

Event Created Successfully

Mentor/Mentee Application

Meet your New Mentor

Coming Soon

How we built it

On the frontend side, we used Next.js on top of React.js for the framework, Chakra and Material UI for the component libraries, LottieFiles for animation, JavaScript, TypeScript, HTML, CSS for the languages, as well as Vercel for hosting.

On the backend side, we use the Strapi headless CMS and Node.js for the framework, PostgreSQL and SQL for the database, JWT for the user authentication, Heroku for the hosting, and Postman for testing of the APIs.

For generating an anonymized test dataset, we used the Python Faker package. For the UI/UX design skeleton we used Figma. For productivity, we use Git and GitHub for version control, Trello for agile development, Google Slides and iMovie for the video demo presentation. Since our team is located in 3 different time zones (HKG, PST, and EST) that were 3 hours to 16 hours apart, we relied heavily on Slack and Zoom for team meetings.

Challenges we ran into

During the hackathon we overcame many challenges for both the front-end and back-end. We decided to try new programming languages, frameworks, and packages. Most of our time was spent reading documentation and debugging when the code did not perform as expected. Additionally, we had to determine the pros and cons of certain functionality, such as user authentication, being handled by the front-end or back-end.

We found limitations with the free version of hosted services, such as Strapi which required user authentication. We had issues logging in due to invalid credentials. As a result, we had to set up a new PostgreSQL database using Heroku to connect to it with the credentials using DataGrip. Another limitation was when we initially tried to use Firebase but found that the free version only allowed one admin user. As a workaround, we ended up implementing the authentication components in the front-end side when making called to the backend server side.

Accomplishments that we're proud of and what we learned.

During this hackathon, we decided to try programming languages, frameworks, and packages that we had not used before (and for some of us, never even heard of). Each member of the team came in with different backgrounds and experience levels and we were able to collaborate, teach, learn, and mentor each other.

What's next for Penn-Pal

With additional time and resources, we intend to improve the functionality of Penn-Pal:

  • Use machine learning models to produce better match results.
  • Add cybersecurity and encryption to protect the user data.
  • Integrate video-calling and messaging features.
  • Admin dashboard for progress tracking.

Built With

Share this project:

Updates