This web application allow users to monitor their important health parameters in real time. Intuitive user dashboard, with video consulting and document management make it a one stop solution for all of our health realted problems.
- Monitor important parameters like glucose, blood pressure, and many more in real time.
- Video consultation factility - real time video call with availabe doctors
- Document store - users can store their health related documents at one place
- Chatbot - helps users to clarify their small doubts
- User can login and register in both ways - password or google
- History management
The project contains the following folders and services
caretaker
: Frontend developed using Next.jsbackend
: Node.js HTTP API server for REST API's, handling auth and consumer for Kafkafit-band-server
: Node.js server generating health parameters every 15 seconds and act as producer for kafka
Tech used to make scalable architecture -
- Next.js - Next.js provide modern framework to develop frontend with easy integration of tailwind css (utility-first CSS framework) and shadcn ui (collection of customizable react components)
- Node.js - Node.js is scalable and can handle a large number of concurrent connections due to its asynchronous, non-blocking I/O model.
- Kafka - Kafka provides real-time streaming data pipelines for the different health parameters generated every 15 minutes (Publisher - fit-band-server) and backend act as the consumer for the health data.
- ClickHouse - ClickHouse uses a column oriented structure and is highle performant. ClickHouse works best with immutable data and is great for analytics. ClickHouse is used to store health data of the users.
- PostgreSQL - PostgreSQL provides reliability, robust feature set, and strong support for complex queries and transactions, ensuring data integrity and scalability. It is used to store users and their history data.
- WebRTC - WebRTC is used for video calling facility, it enables real-time, peer-to-peer communication, offering seamless, secure, and high-quality video conferencing experiences over the internet.
-
Run
npm install
in all 3 services i.e. caretaker, backend, and fit-band-server. -
Make .env file in all 3 services and include all the environment variables.
-
caretaker
OPENAI_API_KEY, NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME, CLOUDINARY_API_KEY, CLOUDINARY_API_SECRET, OAUTH_CLIENT_ID -
backend
PORT, DATABASE_URL, JWT_SECRET, JWT_EXPIRE, COOKIE_EXPIRE, KAFKA_BROKER, KAFKA_USERNAME, KAFKA_PASSWORD, CLICKHOUSE_HOST, CLICKHOUSE_DATABASE, CLICKHOUSE_USERNAME, CLICKHOUSE_PASSWORD -
fit-band-server
KAFKA_BROKER, KAFKA_USERNAME, KAFKA_PASSWORD
-
-
Include kafka.pem file in backend and fit-band-server.
-
Run
npm run dev
in all 3 services i.e. caretaker, backend, and fit-band-server (make sure to have nodmeon in both backend and fit-band-server -npm install --save-dev nodemon
)
At this point following service would be up and running:
Service | PORT |
---|---|
caretaker | :3000 |
backend | :4000 |
fit-band-server | - |