Skip to content

Latest commit

 

History

History
43 lines (38 loc) · 1.96 KB

instruction.md

File metadata and controls

43 lines (38 loc) · 1.96 KB

Audition Project

Objective

Create a simple application that:

Exposes a simple REST API that allows users to:

  • (Done) Allows users to submit/post messages
  • (Done) Lists received messages
  • (Done) Retrieves a specific message on demand, and determines if it is a palindrome.
  • (Done) Allows users to delete specific messages
  • (Done) Provides a simple UI to interact with the service:
  • (Done) Shows the list of messages posted by the users
  • (Done) Allows to post new messages
  • (Done) Allows to select a given message to see extra details
  • (Done) The application is deployed to a Cloud Provider (AWS is preferred)
  • (Done) A Compute instance is provisioned programmatically
  • (Done) Application can be reached via public DNS record
  • (Extra points) Functional and System Tests
  • (Extra points) Application is deployed in a container

Additional Info / Restrictions

  • Extra information can be requested by e-mail.
  • Code should have a permissive license.
  • Any programming language can be used.
  • Use of proprietary tools/libraries is discouraged.

Submission

Code should be committed to a public GitHub/Bitbucket repository:

  • (Done) The repo includes service, UI, and provisioning code.
  • README.md Includes:
  • (Done) Brief description of the implementation architecture.
  • (Done) Sequence diagram of the use cases' interactions.
  • (Done) How to: build, deploy and access the app.
  • (Done) REST API documentation.
  • (Done) A URI to the app should be provided.

Be prepared to discuss the architectural design and implementation details of your project.

Evaluation Criteria

  • Code quality, ie: Style, complexity, good practices.
  • Application architecture, ie: Design patterns, modularity.
  • API design quality, ie: Follows standards and good practices.
  • Documentation quality, ie: Content quality, completeness and accuracy.
  • Deployment automation, ie: Reduced number of manual steps.