We are a bar/club in Los Angeles, and we use Oracle Hospitality as our Point of Sale.
We issue gift cards and loyalty cards to our customers.
What I am looking for is a simple front end (I'll style it myself) and some sort of middleware for our customers to be able to login and check the balance of their giftcards and loyalty cards.
It has to be built secure, and easily extendable, as I plan on adding more features.
Laravel is preferred. Front end and back end should be written as two separate applications, in case I decide to go mobile or SMS later on.
You will talking to the backend infrastructure hosted outside of these applications.
Backend (Oracle iCare) has only one operation that can be used and it is called "processRequest" (other two aren't used)
WSDL: [login to view URL]
In the processRequest, there are 4 parameters.
<in0> contains the escaped XML document with a transaction requested (see below)
<in1> is username
<in2> is password
<in3> is CRC32 of the unescaped (original) XML document with a transaction requested (see below)
"[login to view URL]" shows what a transaction may look like.
"[login to view URL]" shows what a SOAP request with that transaction actually looks like
"[login to view URL]" is what Oracle returns back.
"[login to view URL]" is a detailed guide for all the possible CRM transactions you could send to it.
Things I would like to have exposed and accomplished -
1) When the user first gets to a website to check his status, he puts in his card number and hits submit (option for a password should be available, as if the user is returning, we want his account password protected)
2) Middleware queries Oracle, if account is not found return an error
If account is found, but email and password are blank, ask the user if they would like to register for balance protection, and collect that information (First name, last name, email address, phone number, zip code, date of birth, password). Once collected use SetCustomer to update the data in CRM and proceed to the "account" page. If the user doesn't want to provide email, allow them to skip and proceed to "account" page.
If account is found, and email and password exist, verify supplied password and if match = go to "Account" page
3) Once on the account page the user should see their balance of their gift card and / or points, and should have the ability to update their contact information.
Ideally, I would like this to be easily extended once I need more functionality.
Middleware ideally would expose REST API that consumes JSON and then transforms it into an XML document and sends it off. Once it receives XML message back, it will get the actual return message, and then convert it back into JSON.
And of course make sure to sanitize requests, etc basic web security.
Front end should also scale and grow as easily as the middleware.
We are trying to microservice this antique.
The developer that completes this project will also be offered first dibs on any additional functionality addition bids.