This project is a full-stack web application for visualizing US Healthcare Sector data using the FHIR Standard. It is created with an Express.js backend, MySQL Database, and a Next.js frontend. It uses D3.js for data visualization, Tailwind CSS for styling, ShadcnUI as UI Component Library and other modern tools and libraries to provide a rich user experience.
backend
: The Express.js server application.frontend
: The Next.js client application.
Follow these steps to set up and run the project locally.
- Navigate to the backend directory:
cd backend
- Install the necessary dependencies:
npm/pnpm/bun install / yarn
- Start the server:
npm/pnpm/yarn/bun run dev
(For Development Purpose)npm/pnpm/yarn/bun start
(For Production Environment)
- Create a database named
visualisation
in your localhost from your SQL Workbench.
CREATE DATABASE visualisation
- Importing the FHIR sample data sql dump file to
visualisation
schema that we created earlier.
- Extract the data zip file from
data/sample_data.zip
-> In SQL Workbench : Go to Administration -> Data Import/Restore -> Import from self-contained file -> Select the dump file from your device i.e.data/sample_data.sql
-> Select default target schema tovisualisation
-> Start Import
- Create users table in your database to persist the data of users (for auth).
CREATE TABLE visualisation.`users` (
`Id` varchar(50) NOT NULL,
`Name` varchar(50) DEFAULT NULL,
`Email` varchar(50) DEFAULT NULL,
`Password` varchar(500) DEFAULT NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `Id` (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=795 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
- Navigate to the frontend directory:
cd ../frontend
- Install the necessary dependencies:
npm/pnpm/bun install / yarn
- Start the server:
npm/pnpm/yarn/bun run dev
(For Development Purpose)npm/pnpm/yarn/bun start
(For Production Environment)
Now you can access the frontend application at http://localhost:3000
and the backend will be serving at the designated port
(by default: http://localhost:3001/api
or depending on the setup).