/MyMedVita

Titanite Cohort Group Project

Primary LanguageJavaScript

MyMedVita Web Application


BrandLogo

MyMedVita README

Please see below for detail guide on this application.
Explore the docs »

View Demo · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Description

The MyMedVita web application is a website designed to make prices and options for medical procedures more accessible and transparent to patients. Users can search for a specific medical procedure within their area and see a variety of providers that offer that procedure along with details such as provider name/specialty, negotiated price of procedure(with or without insurance), distance to the provider, provider address, and provider phone number.

(back to top)

Installation

How do you get your application up and running? This is a step by step list for how another developer could get this project up and running. The good target audience in terms of knowledge, would be a fellow Primer from another cohort being able to spin up this project. Note that you do not need a paragraph here to intro Installation. It should be step-by-step.

If your application has secret keys (for example -- Twilio), make sure you tell them how to set that up, both in getting the key and then what to call it in the .env file.

(back to top)

Prerequisites

Environment Variables

This application requires the setting of several environment variables in the deployment environment.

  • DATABASE_URL = used to define the database deployed environment URL if and only if the application is deployed.
  • SERVER_SESSION_SECRET = Used by the authentication logic to salt the encryption of passwords.
  • CONTACT_SERVICE = Email service name used by NodeMailer to send messages from the CONTACT page. (e.g. gmail)
  • CONTACT_USER = Email service username name used by NodeMailer to send messages from the CONTACT page. (e.g. from.me@gmail.com)
  • CONTACT_PASSWORD = Email service password used by NodeMailer to send messages from the CONTACT page. (e.g. password1234 (Don't use this password, it is really, really bad)).
  • CONTACT_EMAIL = email address used by NodeMailer to send emails to. (e.g. contactMe@MyMedVita.com)
  • GEOCODIO_API_KEY = used by the server to receive geocode information from 3rd party API geocod.io (Apply for key at geocod.io)

Third Party APIs

GEOCODIO geocodio provide geo-caching service to the server to identify the latitude and longitude of search zip codes for distance comparison. geocodio is a fee based service with 2,500 free look-ups a day. The MyMedVita Application is built to 'remember' each look up and store the data so it any zip never has to be referred to geocodio more than once. Other geocoding APIs are available but geocodio was selected for this application. Requires API key to be set as environment variable.

Tool Price Features Link
Geocodio Pay as you - go 2,500 free lookups/day, then $0.50/1,000 lookups Forward & reverse geocoding Batch List Geocoding Will geocode postal codes On-premise options https://www.geocod.io/
Opencage Geocoding API Small - $50/month for 10,000 requests/day Free while testing Forward & reverse geocoding No zip only option https://opencagedata.com/
Google Geocoding API 0–100,000 -0.005 USD per each (5.00 USD per 1000) Forward & reverse geocoding Maps SDK & geocoding API all in one place https://developers.google.com/maps/ documentation/geocoding/overview

Getting Started

  1. Create a database named MyMedVita,
  2. The queries in the database.sql file are set up to create all the necessary tables and populate the needed data to allow the application to run correctly. The project is built on Postgres, so you will need to make sure to have that installed. We recommend using Postico to run those queries as that was used to create the queries. For more detail see Database Documentation.
  3. Open up your editor of choice and run an npm install
  4. Run npm run server in one terminal
  5. Run npm run client in a separate terminal
  6. The npm run client command will open up a new browser tab for you!

(back to top)

Usage

The navigation header bar will have global navigation links for all users (both authenticated and unauthenticated). Before a user logs in, the Navigation bar will display links to the About, Features, and Contact pages. Upon clicking on these links it will navigate the user to the said links.

NavBar_1

Logon: After a user logs in, the Navigation bar will display links to the Marketplace, Features, About, Contact, and Profile pages.

NavBar_2

Landing Page: The splash page is the first page users will see when navigating to the site. Users will be able to click on links; "Start Shopping" or "View Features" page.

landingpage

Features: The features page will show details about MyMedVita’s application features.

featurespage

AboutPage: The about page will show information about MyMedVita; founders, mission, and vision to users.

The Contact Page: The Contact Page will allow users to enter their details in order to get in touch with someone from the MyMedVita team. Users will be able to enter their Name, Email, and a short message for questions or feedback. Clicking the Submit button will send their message to support@mymedvita.com

Login Page: The login page will allow users to enter their email address and password. Upon successful login, users will be navigated to the 1.8 MyMedVita Marketplace Page. An unsuccessful login will alert the users via a span tag advising the user their login credentials were invalid.

Registration Page: The Registration Page will allow users to enter their details to create an account. The page wil collect: first name, last name, email address, password, password confirmation. These would be OPTIONAL: phone number, gender, DOB, Address. Upon submission, users will navigate to the 1.8 MyMedVita Marketplace Page.

MarketPlace: Users will input search parameters into a form which will collect a keyword (possibly use a searchable select), zip code, and distance as well as search type.

Selection of multiple or all insurers.

Clicking on "Click Here for a CPT Reference Sheet" will provide all the CPT codes and description.

mktplace

Marketplace Results: The search results page will list all results gathered from the marketplace search query: -Provider -Price -Distance

Visual map of the area within the selected parameters by the user. Note: Provider HAS TO BE ORDERED in the following format: First Name Last Name, Credentials.

results

Providers Detail Page: Clicking on the provider will render a details page of that provider.

The Provider Details Page will list all details for a specified provider Results show: Provider, Procedure, Address, Price, Phone number, Distance, Map location

provider

User Page and User Edit Page: Allows the user to see the information and the edit page allows the user to edit that information.

user
useredit

Saved Searchers: Allows users to see their saved searches for later reference

searches

(back to top)

Built With

Node Express React Redux Postgresql MaterialUI API Docs React Leaflet Geocodio

Acknowledgement

Thanks to Prime Digital Academy who equipped and helped us to make this application a reality.

Support

If you have suggestions or issues, please email at: Nicole Kevin Jessica Alvin Ryan Sarith Scott