During the Covid19 pandemic, now more than ever, it's important for health systems, health care organizations and volunteers to create and ensure an infrastructure and resources to support physicians, nurses, and care team members.
What it does
The website is a platform to connect volunteers and doctors in order to provide support for the doctors and healthcare workers as a social enterprise The website has 2 flows * volunteer * and * doctor *.
Doctor Flow: Doctors will sign in to the doctor's flow. They will create help requests on anything they need such as pet care, childcare, meal, drinks, medical supplies,... These help requests will be added to a list in the volunteer's flow. They can also access covid19 data live updates and nearby convenient stores in order to quickly get their needs.
Volunteer Flow: Volunteers will sign in to the volunteer's flow. They can access the list of help requests and pick requests that they think they can provide the support most efficiently. In each request, there will be detailed information on the doctors and their need requests. After the volunteer agrees to help, we will email both the doctor and the volunteer and connect them.
How I built it
- For the Frontend, I use the Material UI framework from ReactJs. I also use react-router and react-router dom in order to switch between the pages.
- To handle the API calls, I use axios and MongoDB cloud server. I call API for login/register, doctors' help request, volunteers' offer help to those help requests and finally load the nearby stores from the doctors' position.
- I use mapbox API to get the nearby stores (of the volunteers' locations) which will help the volunteers to have more resources to help the doctors.
- I use OpenStreetMap API to convert coordinates to address and then to nearby stores (of the doctors' locations) which can provide doctors with more information about the stores.
- I created my own login/register API using JSON web token and localstorage.
- More on the backend, I use mongoose (to test the web locally) and use mongodbcloud (to deploy). I also use express for the server and nodejs.
- Finally, to deploy the web, I use Heroku for React and Nodejs. I uploaded my database to MongoDB cloud and deploy through Github on Heroku. This is my github link: Quang's Repo
Challenges I ran into
I was having a tough time working alone (which is my fault cause I kinda miss the team forming up). However, I worked really hard in the last 2 days and I got a lot of help from the workshops and the mentors. I basically didn't sleep because of the time difference and I had to go to the workshops. Which is worth giving up my sleep anyway :))
I find implementing the API to convert address to coordinates and then to nearby stores really challenging since the address if not properly entered can be hard to be converted into coordinates.
I definitely struggle to deploy the website because throughout the hack I was testing locally on my device so I didn't even know there would be that much challenge hosting it up.
Accomplishments that I'm proud of
I am proud that I was able to build the project on my own using the frameworks and the techniques that I know. I also think that I have solved most of the API problem.
I deployed the React and Nodejs using an online cloud database and Heroku. This is absolutely wonderful.
I also was able to pass information between complex layers of components in React efficiently. I implemented the API and monitor them using states.
I created (actually watched and read a bunch of websites) a higher-order component (it is the hoc folder in the client). This called withAuth and if I wrap this around a component it will automatically check for login/register (meaning that if you didn't login you cannot enter that link)
What I learned
I learned a lot more about how to use the API and how to test and extract and handle the data response from them. It really helped my project a lot. I also find the API workshops extremely helpful.
I also learned to debug react component cycles quite effectively. And I know how to implement react context and redux. I manage to apply react router quite efficiently into product.
I learned a lot more about Github, making changes, adding, and pushing to the repo. I know how to switch and merge branch and pull requests.
I learned how to deploy a React and Nodejs project with online cloud database.
What's next for DoctorAlly
Definitely connecting with a partner. That can be any hospital or healthcare facility. In this way, I can have the doctors' users in my product verified. And in this way, my product can actually be used in real life. I can also have a lot more customer data in order to scale up my project and make improvements.
I can upgrade the website to have a realtime chat between the doctors and volunteers for better connections. I could also add the automatically send email address to both people after the volunteers have agreed to help the doctors.
Create a more efficient matching algorithm using more data including locations, needs, ages, connections.
Create a chatbot to directly answer questions from the users when they enter the website.
Create a ranking system for the volunteer side. If the volunteers contribute and help a lot of doctors' requests, for example taking care of children or providing meals, they will get more points and a higher ranking. This will help foster volunteer to help the doctors more.
It is best to connect with a platform of social media since many people use it and users of my product can connect with each other more efficiently.