Typeface - Project Assignment Questions
Typeface - Project Assignment Questions
Typeface - Project Assignment Questions
APIs
The goal of this project is to implement 1. Upload File API: Allow users to upload files onto the platform.
a simplified Dropbox-like service where Endpoint: POST /files/upload
users can upload, retrieve, and manage Input: File binary data, file name, metadata (if any)
their files through a set of RESTful APIs. Output: A unique file identifier
Alongside the backend APIs, a basic UI Metadata to Save: File name, createdAt timestamp, size, file type
will also be provided to showcase
these functionalities. The service 2. Read File API: Retrieve a specific file based on a unique identifier.
should also support the storage of Endpoint: GET /files/{fileId}
metadata for each uploaded file, such Input: Unique file identifier
as the file name, creation timestamp, Output: File binary data
and more.
3. Update File API: Update an existing file or its metadata.
Endpoint: PUT /files/{fileId}
Input: New file binary data or new metadata
Output: Updated metadata or a success message
5. List Files API: List all available files and their metadata.
Endpoint: GET /files
Input: None
Output: A list of file metadata objects, including file IDs, names,
createdAt timestamps, etc
UI
1. File Upload Section: A form to upload a new file and its metadata.
2. File List Section: A table or list view that showcases all the files
available on the platform.
3. File Action Section: Options to download, update, or delete files by
interacting with the corresponding APIs.
Technologies
Architecture
1. Backend Server: Responsible for handling API requests.
2. Frontend: Interacts with the backend via API calls to render the UI.
3. Database: Stores metadata about the files.
4. File Storage: The actual storage where files are saved.
Important Notes
Q1. Provide an API to search birds from the above dataset with Natural Language. Ex: Blue Bird, Bird with wings open,
etc. An API could be a simple function or your defined HTTP API call, either is fine.
Q2. Provide an API that returns birds of interest (recommendation of birds) based on the search history requests done using
the above Q1 API.