Skip to content

SayantanBong007/Caretakr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Caretakr

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.

Features

  • 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

Architecture

The project contains the following folders and services

  • caretaker: Frontend developed using Next.js
  • backend: Node.js HTTP API server for REST API's, handling auth and consumer for Kafka
  • fit-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.

final

Setup Guide

  1. Run npm install in all 3 services i.e. caretaker, backend, and fit-band-server.

  2. 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

  3. Include kafka.pem file in backend and fit-band-server.

  4. 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 -

Demo Video and Presentation

Watch the demo video and ppt of Caretakr

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •