We were inspired by the recent COVID-19 pandemic - we realized that many workers in the industry are not ready for the digital age, and given the whole social distancing going on, it would be the perfect time to meet mentors online, to help guide (gyde) them to upskill themselves for the upcoming economy. We really liked how users interacted on Instagram, so we decided to adapt the photo feed in our app. Thus, it presents an easy-to-use, familiar interface for users to get used to, which will create lesser resistance to using our app if we do not need to change user behaviour.
What it does
Users sign up as mentor/mentees. If users sign up as mentees, they will get a curated photo feed of mentors based on their interest hashtags. If mentees see a mentor they want to engage with, they can choose to pay a fee for a "coffee chat" session - a messaging service on the app. Mentees can filter mentors based on hashtags, industry, companies, and professional experience. Mentees, on the other hand, earn a fee when they choose to accept an engagement request from the mentees.
How we built it
Frontend was built with ReactJS. Backend microservices are developed with NodeJS Database is a cloud based MongoDB Atlas cluster
Challenges we ran into
Joyce: I have never used react.js for a serious project before, so I had some problems recalling the syntax at first. I also ran into some problems with the styling. It was also my first time building a PWA, so there were some concepts I had to learn (eg. service worker, components). I also learned industry coding practices.
Abraham: I wanted to be able to automate deployment of our application to a GKE cluster. I set up a repository on Gitlab which has built in CI/CD tools, but the deployment pipeline kept failing. I believe I need more time to learn how to create a gitlabe-ci.yml file for a node application build. Another technical difficulty was in containerizing our application. Everything worked just fine, but when in a dockerized environment, our cloud db was not authorizing our microservices. I believe i needed to expose the correct ports to fix this.
Accomplishments that we're proud of
Joyce: I'm glad we managed to pull off 3 main functions in the given time. Abraham: I'm happy we were able to connect to a cloud based database. Development of the API for our solution was simple after automating the connection to the database.
What we learned
Joyce: I learned about Docker and Git commands. I also got to learn React.js, which I will probably be using for my future projects.
Abraham: I learned more about CI-CD. Gitlab-ci.yml files are crucial and need to be set up properly. I also learned how to containerize a full-stack application using docker-compose.
What's next for gyde
Video conferencing among mentors and mentees, location-based filter, forums for mentees to interact with each other.
Try It out
ci-cd, cloud, docker, gitlab, google, kubernetes, microservices, mongodb, mongodb-atlas, node.js, react, react-native, rest