# 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
Most endpoints require JWT authentication. Include the token in the Authorization header:
Authorization: Bearer <your_jwt_token>
POST /auth/register
Request Body:
{
"name": "string",
"email": "string",
"password": "string"
}
Response (201):
{
"message": "User registered successfully",
"user": {
"name": "string",
"role": "patient"
}
}
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"
}
}
POST /auth/login
Request Body:
{
"email": "string",
"password": "string"
}
Response (200):
{
"token": "jwt_token_string",
"user": {
"name": "string",
"role": "string"
}
}
GET /auth/profile
Headers Required: Authorization Bearer Token Response (200):
{
"user": {
"name": "string",
"email": "string",
"role": "string"
}
}
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"]
}
}
GET /getMed
Headers Required: Authorization Bearer Token Response (200):
{
"medicines": [
{
"id": "string",
"medicineName": "string",
"dosage": "string",
"frequency": "string",
"startDate": "date",
"endDate": "date",
"time": ["string"]
}
]
}
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"]
}
}
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"]
}
}
DELETE /Delete/:id
Headers Required: Authorization Bearer Token Parameters: id (medicine ID) Response (200):
{
"message": "Medicine deleted successfully"
}
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"
}
}
GET /getUsersLog
Headers Required: Authorization Bearer Token (Admin only) Response (200):
{
"logs": [
{
"userId": "string",
"medicineId": "string",
"status": "boolean",
"timestamp": "date"
}
]
}
GET /getAllLogs-AdminOnly
Headers Required: Authorization Bearer Token (Admin only) Response (200):
{
"logs": [
{
"userId": "string",
"medicineId": "string",
"action": "string",
"timestamp": "date"
}
]
}
All endpoints may return the following error responses:
{
"error": "Invalid request parameters"
}
{
"error": "Authentication required"
}
{
"error": "You don't have permission to access this resource"
}
{
"error": "Resource not found"
}
{
"error": "Internal server error"
}