I want to develop a product. I need to develop some web services to be consumed by the Website and Mobile Application. I want to develop those Web Services in Java.
1. The server OS would be Linux.
2. The web services should be written in Java.
3. The server should be able to create a logger which logs the information about every Request and Response. This would help in debugging the application. These logs should be available from a public network.
4. The database would be MySQL.
5. The Web Services and database should be immune to direct SQL query injection and script injection.
6. Some of the web service calls would be encrypted.
7. Server needs to be integrated with a messaging API to be able to send text messages to single user or multiple users in one go.
8. Server should be able to send emails to single user or multiple users in one go.
9. There may be at max 50 webservices to take requests from the client.
10. The Webservice would be Rest based and the Response format would be JSON. The Mobile and WebApplication would parse the data and show the same.
11. The lifecycle of a webservice may be:
a. take request from the client
b. decrypt data if required(only for some calls)
c. process the parameters received
d. update/Fetch data from the database
e. create a json response String
f. encrypt the json response string if required (only for some calls)
g. send the response to the client
h. Log the request and response in the server logger.
12. The Server should be able to clip the profane and obscene words.
13. The server response should be fast enough.
14. The Admin should be able to access the database safely and securely. Admin should also be able to make small changes to the database like delete/update a cell from some table. These things will help before the admin portal is not ready.
15. The vendor will have to give a small KT of the code to the person nominated by me.
16. The vendor will have to deploy the Web Services and other server side components on the AWS server.
17. There may be small changes in the web service request and response parameters.
1. The Database table structure and their columns are decided. Need to normalize the database.
2. The request and response parameters of All of the Web Services are documented.
1. Is there any way to access the database from the public URL securely and safely?
2. What is the difference in the cost and effort if the Server and database are hosted over AWS rather than shared/managed hosting servers?