Documento is a Fullstack application built using React JS and Python. This repository contains the the UI, i.e, the Client Side of the application. Documento allows the user to make a summary out of their document or get answer to questions regarding their document. Documento uses two NLP models to process the Document.
Make sure you have the backend running before you start the application. This application can be executed using the command npm start
- Frontend - document-processor-client
- Backend - document-processor
The CLient side has the following Key Functionalities :
- Getting Summary For The Sample Document.
- Asking Questions About The Sample Document.
- Uploading Their Own Document.
- Getting Summary For Their Uploaded Document.
- Asking Questions About Their Uploaded Document.
The Client Side application runs on the address :
http://localhost:3000
It uses the following API Endpoints :
-
http://localhost:5000/getSummary
as the endpoint to get the summary for the sample data or the uploaded document. The endpoint is aGET
call and has the parametercontext
, which represents the context regarding which the summary is to be made using the backend server. -
http://localhost:5000/askQuestion
as the endpoint to get the answer to the question for the sample data or the uploaded document. The endpoint is aGET
call and has the following parameterscontext
, andquestion
, which represents the context and question regarding the context which needs to be answered by the backend server.
The key challenges faced while building the front-end application was ,
- Parsing the csv file to get the text for the backend server to process.
- Initially I wanted to allow uploading pdfs and parsing them, but it was not possible because of the contraints like knowing how the pdf was made, what the pdf contents are [images/links]. Since this was quite challenging I decided to let only the acceptance of doc/docx/text files.
There are the following improvements I would have made :
- Addigng more animation to the frontend.
- Adding animated indicators for loading data.
- Adding an improved user experience regarding pages, navigation and interactions.
- Overall a better design and implementation would be much better.