The inspiration for this project came from the overwhelming number of requests hospitals and doctors had to go through due to the recent and ongoing pandemic. COVID-19 has caused devastation amongst many families and the profuse medical cases had led many hospitals to be unable to sustain their patients. As a result, we decided that through the use of some code and a well-designed website, we could create a solution for patients who cannot receive full appointments in-person. Diagnosis many times requires patients to wait long times on calls or chats to even become connected to a doctor who could provide professional help. Our platform, Pinpoint, aims to solve this issue in a unique way which is optimized for users to quickly select their issues and describe their problem. The user's details are then immediately sent to a doctor for a direct connection between the patient and the doctor. This allows for patients to receive assistance quickly and efficiently instead of waiting in a long queue, listening to the boring hold music.
What it does
Pinpoint has a set of functions which makes it easy and fluid for patients and doctors alike. Users are able to utilize the "Waiting Room" where they fill out a simple, but effective form, filling out details regarding themselves and the pain or situation they are experiencing. There is also an ingenious feature where the user can place a "pin" on the location of their pain using a graphic of the human body. Within the waiting room, patients will be able to chat with a support agent or someone similar in case they have any questions or concerns. The completed form is then sent to the doctor which will show up in a neat panel with all the other patients. The doctor will then be able to quickly get through each report and establish a direct video connection with the patient
How we built it
Building Pinpoint was a complex combination of nodejs, express-js, html, css, and socketio. Each component served a unique purpose in the overall execution from server-side code to frontend details. Nodejs was used for most of the backend programming involving functions such as the login, registration, form submissions, and any other backend-related functionality. Express was used for the server hosting and socketio was used for the communication between the server and the client. Finally, html and css were used for the entirety of the frontend and the designs seen across each of the pages.
Challenges we ran into
Although the execution may not seem difficult, creating a full blown system to increase the efficiency and better the user's experience ended up being quite a challenging task. There were many ideas we had originally come up with that could not be implemented due to either complicated errors or the limited time of the Hackathon. One of the major bugs we faced was revolving around the raycasting of a 3D model of the human body. When trying to figure out the issue in the three.js, we decided that it would be easier for the user to just pinpoint the pain on an image rather than a full 3D model. Another challenge we ran into was time. This site is fairly complex with all of the designing and coding it required. The 24 hours deadline took intense efforts from all team members to create a finished product which had most of the features we had drawn up and met the major functionality for the project.
Accomplishments that we're proud of
We're proud of having made something that society can benefit from in the long run.
What we learned
We learned a lot about 3D rendering on the browser using three.js and we got a lot more experience in client to server communication,
What's next for PinPoint (Here)
Next up for pinpoint is supported video and audio calling in the doctor rooms to make communication easier. We also plan on fixing our raycasting bugs and implementing a high quality humanoid into the browser on which the user can circle areas where they have pain. We also plan on adding more features to increase the ease of communication between doctor and user by implementing bilboards, built-in diagrams, annotations, and more.
Log in or sign up for Devpost to join the conversation.