Skip to content

Latest commit

 

History

History
337 lines (308 loc) · 5.22 KB

API_DOCS.md

File metadata and controls

337 lines (308 loc) · 5.22 KB
# MediFor7 API Documentation
MediFor7 API Documentation
MediFor7 - Medication Reminder App is a user-friendly web/mobile application designed to help users manage their medication schedules effectively.
The application aims to reduce missed doses and improve medication adherence through timely reminders and tracking.


## Base URL
```http
http://localhost:3000/api

Authentication

Most endpoints require JWT authentication. Include the token in the Authorization header:

Authorization: Bearer <your_jwt_token>

API Endpoints

Authentication APIs

1. Register User

POST /auth/register

Request Body:

{
  "name": "string",
  "email": "string",
  "password": "string"
}

Response (201):

{
  "message": "User registered successfully",
  "user": {
    "name": "string",
    "role": "patient"
  }
}

2. Admin Registration

POST /auth/register-admin

Request Body:

{
  "name": "string",
  "email": "string",
  "password": "string",
  "adminSecret": "string"  // Must match ADMIN_SECRET_KEY in backend .env
}

Response (201):

{
  "message": "Admin registered successfully",
  "user": {
    "name": "string",
    "role": "admin"
  }
}

3. Login

POST /auth/login

Request Body:

{
  "email": "string",
  "password": "string"
}

Response (200):

{
  "token": "jwt_token_string",
  "user": {
    "name": "string",
    "role": "string"
  }
}

4. Get Profile

GET /auth/profile

Headers Required: Authorization Bearer Token Response (200):

{
  "user": {
    "name": "string",
    "email": "string",
    "role": "string"
  }
}

Medicine Management APIs

1. Create Medicine

POST /createMed

Headers Required: Authorization Bearer Token Request Body:

{
  "medicineName": "string",
  "dosage": "string",
  "frequency": "string",
  "startDate": "date",
  "endDate": "date",
  "time": ["string"]
}

Response (201):

{
  "message": "Medicine created successfully",
  "medicine": {
    "id": "string",
    "medicineName": "string",
    "dosage": "string",
    "frequency": "string",
    "startDate": "date",
    "endDate": "date",
    "time": ["string"]
  }
}

2. Get All Medicines

GET /getMed

Headers Required: Authorization Bearer Token Response (200):

{
  "medicines": [
    {
      "id": "string",
      "medicineName": "string",
      "dosage": "string",
      "frequency": "string",
      "startDate": "date",
      "endDate": "date",
      "time": ["string"]
    }
  ]
}

3. Get Single Medicine

GET /getSingleMed/:id

Headers Required: Authorization Bearer Token Parameters: id (medicine ID) Response (200):

{
  "medicine": {
    "id": "string",
    "medicineName": "string",
    "dosage": "string",
    "frequency": "string",
    "startDate": "date",
    "endDate": "date",
    "time": ["string"]
  }
}

4. Update Medicine

PUT /updateMed/:id

Headers Required: Authorization Bearer Token Parameters: id (medicine ID) Request Body:

{
  "medicineName": "string",
  "dosage": "string",
  "frequency": "string",
  "startDate": "date",
  "endDate": "date",
  "time": ["string"]
}

Response (200):

{
  "message": "Medicine updated successfully",
  "medicine": {
    "id": "string",
    "medicineName": "string",
    "dosage": "string",
    "frequency": "string",
    "startDate": "date",
    "endDate": "date",
    "time": ["string"]
  }
}

5. Delete Medicine

DELETE /Delete/:id

Headers Required: Authorization Bearer Token Parameters: id (medicine ID) Response (200):

{
  "message": "Medicine deleted successfully"
}

Acknowledgment APIs

1. Create Acknowledgment

POST /createAck

Headers Required: Authorization Bearer Token Request Body:

{
  "medicineId": "string",
  "status": "boolean"
}

Response (201):

{
  "message": "Acknowledgment created successfully",
  "acknowledgment": {
    "id": "string",
    "medicineId": "string",
    "status": "boolean",
    "timestamp": "date"
  }
}

Admin APIs

1. Get User Logs

GET /getUsersLog

Headers Required: Authorization Bearer Token (Admin only) Response (200):

{
  "logs": [
    {
      "userId": "string",
      "medicineId": "string",
      "status": "boolean",
      "timestamp": "date"
    }
  ]
}

2. Get All Logs (Admin Only)

GET /getAllLogs-AdminOnly

Headers Required: Authorization Bearer Token (Admin only) Response (200):

{
  "logs": [
    {
      "userId": "string",
      "medicineId": "string",
      "action": "string",
      "timestamp": "date"
    }
  ]
}

Error Responses

All endpoints may return the following error responses:

400 Bad Request

{
  "error": "Invalid request parameters"
}

401 Unauthorized

{
  "error": "Authentication required"
}

403 Forbidden

{
  "error": "You don't have permission to access this resource"
}

404 Not Found

{
  "error": "Resource not found"
}

500 Server Error

{
  "error": "Internal server error"
}