Typeface - Project Assignment Questions

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

TYPEFACE INDIA PRIVATE LIMITED

PROJECT ASSIGNMENT QUESTIONS

A. FRONTENED PROJECT ASSIGNMENT QUESTION

Problem Statement Requirements

Design a Chat interface with threaded view

Design a chat interface, like MS • Basic chat UI interface


teams/Slack/WhatsApp. The interface should • Properly designed message component – A user
display a list of user messages, the interface has message would
a text field to type in messages and on hitting usually have a user identifier, time stamp and
send the message should be added to the list of message content
displayed messages. You could think of it as • Working flow – Typing a message, sending it,
texting yourself in teams. The interface should and displaying it in the view.
also allow users to reply to messages as threads, • Threaded View – Reply to a message and spawn
just like team's channels or slack threads. Just a threaded view.
the frontend implementation would suffice,
there is not backend component.
B. BACKEND PROJECT ASSIGNMENT QUESTION-

Project Description Requirements

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

4. Delete File API: Delete a specific file based on a unique identifier.


Endpoint: DELETE /files/{fileId}
Input: Unique file identifier
Output: A success or failure 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

1. Backend: Choose any backend language and framework you are


comfortable with (e.g., Java, Flask, Django, Express.js, FastAPI).
2. Database: You can use a database such as SQLLite, MySQL,
PostgreSQL, or MongoDB to store the files and metadata.
3. Frontend: A basic UI can be developed using HTML, CSS, and
JavaScript, or a frontend framework like React or Angular.
4. Storage: You may use local storage for simplicity or cloud storage
services like AWS S3 for storing files

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

1. Documentation: Please add a READ.me file with instructions as how to


run this project on a Windows machine.
2. Test cases: You will get bonus points for test automation.

C. AI/ML PROJECT ASSIGNMENT QUESTION-

Use any language of your choice.

Using the dataset provided here: https://www.kaggle.com/datasets/xiaojiu1414/cub-200-2011

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.

You might also like