rahataid / rahat-beneficiary-mgmt

A web-based application facilitating beneficiary registration management and streamlining the process
GNU Lesser General Public License v3.0
0 stars 3 forks source link

Community-tool

The Community Tool is designed to facilitate efficient management of beneficiary data, ensuring accuracy, reliability, and security. It provides targeting, grouping, and reporting capabilities for beneficiaries based on geographical, social, economic, and physical indicators.

Environment Variables

To run this project, you will need to add the following environment variables to your .env file

PORT=5505
PORT_BEN=5501
PRIVATE_KEY=FILL_WITH_YOUR_PRIVATE_KEY
KOBO_URL= FILL_WITH_YOUR_KOBO_TOOL_URL
AUTH_TOKEN=FILL_WITH_YOUR_AUTH_TOKEN

JWT setup

JWT_SECRET_KEY=FILL_WITH_YOUR_SECRET_KEY
JWT_EXPIRATION_TIME=604800000
JWT_EXPIRATION_LONG_TIME=604800000

OTP time duration

OTP_DURATION_IN_SECS=300

Redis setup

REDIS_HOST= FILL_WITH_YOUR_REDIS_HOST
REDIS_PORT= FILL_WITH_YOUR_REDIS_PORT
REDIS_PASSWORD=FILL_WITH_YOUR_REDIS_PASSSWORD

Postgres database config

DB_HOST=FILL_WITH_YOUR_DB_HOST
DB_PORT=5432
DB_USERNAME= FILL_WITH_YOUR_USERNAME
DB_PASSWORD=FILL_WITH_YOUR_PASSWORD
DB_NAME= FILL_WITH_YOUR_DB_NAME

Prisma database connection

DATABASE_URL=postgresql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}?schema=public

SMTP setup

#Mailing Service
SMTP_HOST=smtp.gmail.com
SMTP_PORT=465
SMTP_USERNAME= FILL_WITH_YOUR_USERNAME
SMTP_PASSWORD= FILL_WITH_YOUR_PASSWORD

Run Locally

Clone the project

  git clone https://github.com/rahataid/rahat-beneficiary-mgmt.git

Go to the project directory

  cd rahat-beneficiary-mgmt

Install dependencies

  pnpm install

Prisma migration

 npx prisma migrate dev

Start the server

  pnpm dev

SDK

Installation

You can install the SDK via pnpm:

pnpm install @rahataid/community-tool-sdk

You need to install rumsan/react-query package:

pnpm install @rumsan/react-query

Getting Started

To get started with SDK

  import { clientName } from '@rahataid/community-tool-sdk/clients'
import {
  UseQueryResult,
  useMutation,
  useQuery,
  useQueryClient,
} from '@tanstack/react-query';
import {  useRSQuery } from '@rumsan/react-query'
  const { queryClient, rumsanService } = useRSQuery();

Client

Below are the sdk client that will be used to connect :

Example

Let's take an example for the appClient

import { getAppClient } from '@rahataid/community-tool-sdk/clients';
import { useQuery, useRSQuery } from '@rumsan/react-query';
import { FilterStatsDto } from '@rahataid/community-tool-sdk/app';

export const useAppStatsList = (data?: FilterStatsDto) => {
  // Get queryClient and rumsanService from useRSQuery hook
  const { queryClient, rumsanService } = useRSQuery();

  // Get appStatsClient using getAppClient function from SDK
  const appStatsClient = getAppClient(rumsanService.client);

  // Define query using useQuery hook from react-query
  const query = useQuery(
    {
      queryKey: ["GET_DASHBOARD", data], // Unique key for the query
      queryFn: () => appStatsClient.getAppStats(data), // Function to fetch data
    },
    queryClient, // Provide queryClient instance
  );

  return query; // Return the query object
};