CodeForPhilly / CodeForPhilly/balancer-main

[Back End] Upgrade existing Upload File Endpoint

Open
#101 0 comments 0 reactions 1 assignee Claimed by @ryanrrogers View on GitHub
Dominant language
TypeScript
Stars
21
Forks
19
PR merge metrics
No merged PRs in 30d

Description

### Objective

Modify the existing document management system's API endpoint to support additional functionality and data fields in line with new project specifications. These changes aim to enhance the system's capability in handling file operations, including uploading, listing, and deleting documents.

Scope
API Endpoint Modifications:

Update the existing API to accept POST, GET, and DELETE requests.
Ensure compatibility with the newly specified data fields.
Data Fields to be Supported:

1. GUID (Globally Unique Identifier)
2. Filename
3. File Content
4. Date of Upload
5. Size
6. Page Number
7. File Type
8. Uploaded By
9. Title
10. Source URL
11. Analyzed (Y/N)
12. Approved (Y/N)

### Functional Requirements
**POST (File Upload):**

Accept a JSON payload containing filename, file_content (Base64 encoded), size, page_number, file_type, uploaded_by, title, and source_url.
Automatically generate and assign a GUID and Date of Upload upon file submission.
Set the Analyzed and Approved fields to 'N' by default.

JSON payload for POST endpoint:

{
"filename": "example.pdf",
"file_content": "",
"size": 102400, // Size in bytes
"page_number": 15,
"file_type": "pdf",
"uploaded_by": "username",
"title": "Example Document Title",
"source_url": "http://example.com/source-of-the-document"
}

**GET (List Files):**

Retrieve a list of files along with their respective information, as outlined in the data fields.

**DELETE (Remove File):**

Allow the removal of a file from the system using its GUID.

**Technical Specifications**

- Implement authentication for the POST, DELETE, and GET requests to prevent unauthorized file uploads or deletions.
- The system must ensure the integrity and security of the file content during upload, storage, and retrieval.
- All API responses should be in JSON format, adhering to RESTful principles.

This is what is already created. This needs to be modified to the above requirements.

![Image](https://github.com/CodeForPhilly/balancer-main/assets/26842253/68211c7e-1378-418b-89b6-80207cbacb4e)

![Image](https://github.com/CodeForPhilly/balancer-main/assets/26842253/18ea0058-7e5e-412e-8949-c4b5b26324ce)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.