FindaDoc

Introduction

This application aims to allow its users to find medical care services and providers online in their nearest location. Our AI model delivers optimal care outcomes, lowers costs, and enhances access to high-quality healthcare for people across all socioeconomic levels.

Purpose

This prototype has the initial view of a web application allowing a user to enter the various conditions, location, and insurance information, and then be taken to a screen that shows the best available doctors in their area with upcoming appointments.

Technology

User Interface

This prototype is built mainly with Next.js (TypeScript) on the front end. Several other UI libraries are used for different purposes:

NextUI (a React UI library)

Tailwind(a utility-first CSS framework)

Framer Motion (animation library)

google-map-react (Google Maps library for React)

react-booking-calendar (Booking library for React)

zipcode-perogi (a zipcode lookup node module)

Backend

The backend functionality has not been implemented for this prototype but we can develop API and database for future versions. Here are some suggestions:

API

Node.js (JavaScript runtime environment)

Express.js (minimal and flexible Node.js framework)

Auth

Authentication can be implemented manually using libraries such asjwt(JSON Web Token). However, frameworks likeauth.jsorpassport.jsmake that process much easier and more secure. The provides the possibility to add OAuth from known platforms (Google, GitHub, etc.).

Data Models

Static data models have been used for the purpose of testing the demo Here is the basic schema:

Doctor = { id: 'number', name: 'string', specialty: 'string', address: 'string', zipcode: 'string', status: 'string', ratings :'number[]', visit: 'string[]', phone: 'string', avatar: 'string', email: 'string', insurances: 'string[]', }

Specialty = { id: 'number', title: 'string', conditions: 'string[]', }

Conditions = { id: 'number', name: 'string', doctor: 'string', }

Cities = { id: 'number', name: 'string', }

Insurance = { id: 'number', name: 'string', }

Database

MongoDB (non-relational database)

GraphQL (query language for API)

DevOps

Git (Version control)

Future iterations and todos

Calendar needs to be fully implemented and tested

Doctors locations should be implemented on the map and tested

Booking functionality needs to be added

Run the demo locally

First, clone or download the repo:

git clone https://github.com/payamdowlatyari/find-a-doc-app

Install packages:

npm i oryarn orpnpm

Run the development server:

npm run dev oryarn dev orpnpm dev