Skip to content

Commit e5312d1

Browse files
authored
Merge pull request #98 from tracet2t/86ewzhmnc-fetch_api
Finalized the Super admin Components and functionalities with UI fixes
2 parents 030b14d + 74c720b commit e5312d1

File tree

75 files changed

+8491
-3072
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+8491
-3072
lines changed

docs/api/API_PROJECTS.md

Lines changed: 415 additions & 0 deletions
Large diffs are not rendered by default.

docs/api/API_Registration.md

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
# API Guide
2+
3+
Welcome to the Digital Logbook API documentation. This guide provides an overview of available endpoints and how to use them.
4+
5+
## Table of Contents
6+
7+
- [Authentication](#authentication)
8+
- [Endpoints](#endpoints)
9+
- [Projects](#projects)
10+
- [Invitations](#invitations)
11+
- [Error Handling](#error-handling)
12+
- [Best Practices](#best-practices)
13+
14+
## Authentication
15+
16+
All API endpoints require authentication via JWT tokens. Include the token in the `Authorization` header:
17+
18+
```
19+
Authorization: Bearer <your_jwt_token>
20+
```
21+
22+
## Endpoints
23+
24+
### Projects
25+
26+
For detailed project endpoint documentation, see [API_PROJECTS.md](./API_PROJECTS.md)
27+
28+
**Available Operations:**
29+
30+
- Get all projects
31+
- Get project by ID
32+
- Create new project
33+
- Update project
34+
- Delete project
35+
- Manage project allocations
36+
37+
### Invitations
38+
39+
For detailed invitation endpoint documentation, see [API_INVITATIONS.md](./API_INVITATIONS.md)
40+
41+
**Available Operations:**
42+
43+
- Send invitations
44+
- Validate invitation tokens
45+
- Accept invitations
46+
- Resend invitations
47+
48+
## Error Handling
49+
50+
All endpoints return standard HTTP status codes:
51+
52+
| Status | Meaning |
53+
| ------ | --------------------- |
54+
| 200 | Success |
55+
| 400 | Bad Request |
56+
| 401 | Unauthorized |
57+
| 404 | Not Found |
58+
| 500 | Internal Server Error |
59+
60+
### Error Response Format
61+
62+
```json
63+
{
64+
"error": "Error description"
65+
}
66+
```
67+
68+
## Best Practices
69+
70+
### 1. Request Validation
71+
72+
- Always validate input data before sending requests
73+
- Check that required fields are present
74+
- Ensure data types match expected values
75+
76+
### 2. Error Handling
77+
78+
- Implement proper try-catch blocks
79+
- Handle specific error messages from the API
80+
- Log errors for debugging
81+
82+
### 3. Performance
83+
84+
- Use pagination for large datasets
85+
- Cache responses when appropriate
86+
- Implement request debouncing on the frontend
87+
88+
### 4. Security
89+
90+
- Never expose JWT tokens in logs
91+
- Always use HTTPS in production
92+
- Validate tokens on the backend
93+
- Implement rate limiting on sensitive endpoints
94+
95+
### 5. Testing
96+
97+
- Test all endpoints with valid and invalid data
98+
- Verify error handling
99+
- Test edge cases and boundary conditions
100+
101+
## Frontend Integration
102+
103+
When using these APIs in the frontend, consider using:
104+
105+
- **TanStack Query (React Query)** for caching and state management
106+
- **Custom Hooks** for reusable API logic
107+
- **Error Boundaries** for graceful error handling
108+
- **Toast Notifications** for user feedback
109+
110+
### Example Hook Pattern
111+
112+
```typescript
113+
import { useMutation } from "@tanstack/react-query";
114+
115+
export const useYourMutation = () => {
116+
return useMutation({
117+
mutationFn: async (payload) => {
118+
const response = await fetch("/api/endpoint", {
119+
method: "POST",
120+
headers: { "Content-Type": "application/json" },
121+
body: JSON.stringify(payload),
122+
});
123+
124+
if (!response.ok) {
125+
throw new Error("Request failed");
126+
}
127+
128+
return response.json();
129+
},
130+
onSuccess: (data) => {
131+
// Handle success
132+
},
133+
onError: (error) => {
134+
// Handle error
135+
},
136+
});
137+
};
138+
```
139+
140+
## Additional Resources
141+
142+
- [Database Schema](../schema/README.md)
143+
- [Project Endpoints](./API_PROJECTS.md)
144+
- [Invitation Endpoints](./API_INVITATIONS.md)
145+
146+
---
147+
148+
For questions or issues, please refer to the main [README.md](../../README.md)

0 commit comments

Comments
 (0)