STOP. It is imperative that you read this entire post before sending any messages to the employer.
We have a number of on-going projects and need multiple developers. Specifically, we need back-end developers experienced with Linux and Python. This project is a test of your skills. For this test, you will build a very simple web service that uses GPG to decrypt a message. Your successful completion of this project will allow you to bid on larger projects. Basically, this is an interview that you can get paid for taking.
1. Your deliverable must be a single file named "[login to view URL]".
2. This is how your deliverable will be used:
- Our automated build system will extract your deliverable file to "/usr/local/src" on a fresh server instance that exactly matches your assigned server.
- Our automated build system will run "/usr/local/src/[login to view URL]". Make sure your deliverable includes this file.
- [login to view URL] will run with root privileges.
- Do not assume any specific starting directory when [login to view URL] is executed.
3. Your deliverable is only correct if the following is true after our automated build system runs:
a. A web service called "decryptMessage" is hosted by Apache via the server's public IP (e.g. [login to view URL]).
i. The web service is built using Flask.
ii. The web service accepts a JSON payload with the following parameters:
1. PassPhrase- The pass phrase to use to decrypt the message.
2. Message- The GPG encrypted message.
iii. The web service can be executed using an HTTP POST.
iv. The web service returns a JSON response that is either an error message (if bad input parameters are given) or a single response parameter (if good input parameters are given):
1. DecryptedMessage- The given message, decrypted using GPG and the given PassPhrase.
b. The web service has unit tests that you believe are sufficient.
i. All available unit tests are executed by running the following command on the server:
/usr/local/src/[login to view URL]
ii. After running, details about the tests are output (pass, fail, specific failure messages).
4. Your deliverable must be your original work.
5. Your deliverable will be tested with an encrypted message similar to the following (the passphrase is "topsecret"):
-----BEGIN PGP MESSAGE-----
Version: GnuPG v2
-----END PGP MESSAGE-----
1. Only bid on this project if . . .
*** Freelancer truncates this field. Refer to the attached [login to view URL] for the remainder of the project description.