Flask Web Service 2022-09-25
Budget: $74 – $75 USD
STOP. It is imperative that you read this entire post before sending any messages to the employer.
Summary:
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.
Deliverable:
1. Your deliverable must be a single file named "app.tar.gz".
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/deploy.sh". Make sure your deliverable includes this file.
- deploy.sh will run with root privileges.
- Do not assume any specific starting directory when deploy.sh 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. http://51.11.132.197/decryptMessage).
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/run-tests.sh
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
jA0ECQMCVady3RUyJw3X0kcBF+zdkfZOMhISoYBRwR3uk3vNv+TEg+rJnp4/yYIS
pEoI2S82cDiCNBIVAYWB8WKPtH2R2YSussKhpSJ4mFgqyOA01uwroA==
=KvJQ
-----END PGP MESSAGE-----
Rules:
1. Only bid on this project if . . .
*** Freelancer truncates this field. Refer to the attached FlaskWebService.pdf for the remainder of the project description.
Summary:
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.
Deliverable:
1. Your deliverable must be a single file named "app.tar.gz".
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/deploy.sh". Make sure your deliverable includes this file.
- deploy.sh will run with root privileges.
- Do not assume any specific starting directory when deploy.sh 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. http://51.11.132.197/decryptMessage).
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/run-tests.sh
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
jA0ECQMCVady3RUyJw3X0kcBF+zdkfZOMhISoYBRwR3uk3vNv+TEg+rJnp4/yYIS
pEoI2S82cDiCNBIVAYWB8WKPtH2R2YSussKhpSJ4mFgqyOA01uwroA==
=KvJQ
-----END PGP MESSAGE-----
Rules:
1. Only bid on this project if . . .
*** Freelancer truncates this field. Refer to the attached FlaskWebService.pdf for the remainder of the project description.