Link to home
Start Free TrialLog in
Avatar of curiouswebster
curiouswebsterFlag for United States of America

asked on

Angular: Need to use the UI to filter user confidential data

I need to allow users to upload their financial reports (PDF or CSV) to my site, but enable them to obscure private data (Business Name, Merchant Account Numbers, etc.) before any data gets stored to the disk.

I need to use Angular to create a list of user data fields extracted from the PDF and display them for approval, perhaps with a checkbox next to each field. Fields which contain that merchants proprietary data need to be then be checked off by the user so those fields would be populated with XXXXX's.

I do not want to store that PDF onto my server. Instead, I want the user to select the fields needing to be hidden. Or even ignore them altogether. I just do not want that PDF on my server.

So, the question is...

Can Angular extract the contents of a PDF that has been uploaded? And a PDF that does not exist on disk?

I could save the extracted data onto my server in some other fashion, not yet decided.

I prefer Angular 4, and hope this functionality exists in Angular 4.

It's an interesting challenge. I see Angular as a great platform for nested logic and as a place to store objects and lists of objects. And to do the first part of processing this data on the client is what intrigues me.

Thanks.
ASKER CERTIFIED SOLUTION
Avatar of gr8gonzo
gr8gonzo
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of curiouswebster

ASKER

So, this Java app would run on a Mac? And a different one for Windows?

On a a different vain...given that I need the PDF in the event there is a bug I need to fix during the initial parsing process...

What kinds of steps are needed to ensure PCI compliance? And what does PCI stand for???
thanks
Java app would run the same on Mac and Windows and Linux and anything else that runs Java - cross-platform compatibility is one of the main advantages of Java, and it's also why Java apps look a little "different" from the normal Windows or Mac apps - it's because it doesn't use the OS's layout / UI engines. So you would only need to write and maintain one application.

If you end up building a Java app and there's a bug in the PDF parsing process, you would probably include something that allows the user the CHOICE to submit their PDF to you so you can update the app to work with their PDF structure. That way, a user who doesn't want to submit their data to you would have the choice to opt out of doing that. Then if they do send it to you, you could upload it to the server via HTTPS and then work with it.

PCI compliance is a fairly big concept to explain in a comment like this. I'll give you the high-level stuff but you'd need to read more about it in-depth. There's a lot of material that covers it, including books you can buy or check out from your local library. PCI stands for Payment Card Industry - the whole idea behind is a set of rules that you follow in order to properly protect credit card / financial data. It's USUALLY targeted at merchants that are processing credit cards, but it really applies to anyone who is potentially storing CC data. Compliance involves a variety of things, from POLICIES (e.g. if you have employees, then nobody has access to sensitive data except those who absolutely need to) to CODING RULES (e.g. you can NEVER store the CVV codes, among other types of data, from a card), to PROCESSES (e.g. perform regular vulnerability scans).

Here's a good FAQ on it:
https://www.pcicomplianceguide.org/faq/

Just google for PCI compliance and you'll find oodles of information.
I loved your Java idea so much and would prefer to stay very clear from PCI compliance issues, you inspired a new idea...

https://www.experts-exchange.com/questions/29075330/Java-client-app-and-PCI-compliance.html

https://www.experts-exchange.com/questions/29075331/Is-NET-CORE-as-usable-as-Java.html