The project is to build a web app (could be using angular2 or reactjs) that allows the user to collect payments.
The idea is that there is a mobile app (see more here [url removed, login to view] ) that will be used for users to collect payments, so with this project I want to build two things: the backend throught web services for the Mobile app, and the admin web app for a person in the company that will approved the collections.
Once logged, the user is available for the following options: Review collections, send emails, reports and exception code.
- In Review collections, the user will check with the mobile app user, the collection he is validating to check that everything is ok. Based on this, he can approved or reject the collection. To start the validation, the user will choose the payment collector, and he will see the information related to the invoices collections he did (review the Mobile project for more information). The user can edit the information, because there can be mistakes there. The collection can be approved or not. In both cases the user need to input a comment (that will be sent by email later, not automatically after the update)
After the confirmation or rejection, the user will see the detaild of the collection.
- Sent Emails: This functionality is use to send emails when the user is ready to do it, it's not automatically. For this, the user go to this option in the menu, and once there, he see the list of customers that have payments without email sent. So the user select the customer to whom he wants to send emails with the detail of the transaction (can select more than one) and then he needs to press SENT. There should be an email template in the backend app in order to send the email. If the user click in any invoiice, he can see the detail of it, but he cannot modify anything.
- Reports: To be define, as example: amount of money collected by collector or by customer and by date. Invoices pending Validation or pending collection, etc...
- Exception Code, this is a code that is asked to the mobile user when he choose to accept a payment that is red (see Mobile proyect) so its and autogenerated code that is generated in the web admin, and that is tell to the Mobile user when he call the admin user to accept the payment.
Also, therewill be the admin role, the admin will be available to create users, reset password (email must be sent) and the different regular user functionalities. Another functionality that the admin will have is to give the orden to delete the information stored in the mobile app of the collectors, for this the user will choose the collector, and select to remove all the information. So next time the user try to get any information, the backend will tell to the app to remove all the information and to close the sesion ( in case the smartphone is stolen)
Non Functional Requirements:
- The customer and invoice infomartion will came from another server and the communication will be through reading/writing csv/txt files. In an specific FTP.
- The email templates should be in HTML
- Ideally it should be develop in java
--The code needs to be push using git to a bitbucked repo provided by me daily or frequently.
- JWT is required to keep the session from the mobile
-The app needs to be pretty and with good user experience. You must use the good practise of developt and desing and admin page.
-The app will be in Spanish but the app should take all the text from a FILE so I can translate easily.
-In case there is no internet connection in the Mobile app, it will store the information and willl sync later, the backend should be ready to provide the aupdate in the database to the device while it was offline. And the other way around too.
-Common user funcionality should be there, like forgot password, logout, etc...