In database terminology primary key refers to the column in a table that's intended to be the primary way of identifying rows. Each table must have exactly one, and it needs to be unique. This is usually some kind of a unique identifier associated with objects presented by the table, or if such an identifier doesn't exist simply a running ID number (which is incremented automatically).
Deadline 5: API Client and Auxiliary service¶
For this deadline you need to implement a client and an auxiliary service that use your API. You should have all of your code in your repository / repositories. You can use a separate repository for each component if you like, just put links to all of them in the return box.
Evaluation Criteria¶
| points | details | ||
|---|---|---|---|
| 1. Client Description | 3.0 | ||
![]() |
Overview | 1.0 | The overview explains what the client does, and why you wanted to build this particular client. There is also a clear description or table that shows what resources and which methods are accessed by the client. |
![]() |
Use Case Diagram | 1.0 | The diagram shows all use cases for the client. |
![]() |
GUI Layout | 0.5 | The presented diagram(s) clearly show the layout of the client, including all of its screens. Terminal clients can only get full points point from this section if the structure of the text is completely clear, easy to read and/or use textual GUI libraries such as ncurses. |
![]() |
Screen Workflow | 0.5 | The workflow diagram communicates the transitions between different screens in the client application clearly. The workflow doesn't have any unnecessary hoops. |
| 2. Client Implementation | 11.0 | ||
![]() |
Instructions | 1.0 | The readme.md of the project or client repository has complete instructions on how to install, setup and run the client. |
![]() |
Sources Cited and Code documentation. | 0.5 | If code from outside sources, incuding the course material, is used, these sources are properly credited and linked to.Code functions are correctly documented |
![]() |
Code Quality | 1.5 | The code has good structure, clear naming for variables, and follows good practices for the chosen language. Linting tool is also used for evaluating this bullet.If you are using a different tool than python, be sure that you use proper linting tool. If no linting tool used, you can only get 0.75 point |
![]() |
Demonstration | 2.0 | Demonstration goes through all client features, is well organized and runs smoothly (no failures) |
![]() |
Error Handling | 2.0 | All client features work without errors. Client also either makes it impossible to make invalid API calls, or presents the error code responses in an informative manner to the user. |
![]() |
Usability | 1.0 | The user experience of the client is smooth. |
![]() |
Visuals | 1.0 | The client looks nice, i.e. some effort has been put into the layout and selection of colors, fonts etc. |
![]() |
Complexity/Features | 2.0 | The client does more than just provide a direct mapping to API calls and/or has some other neat extra features, like using a third party API. |
| 3. Auxiliary Service | 11.0 | ||
![]() |
Idea | 1.0 | You have a clear idea for the auxiliary service, and it does something that could be considered inconvenient to do on the API server itself. Like our example, it can be just an approximation of such behavior - the interaction part is what counts. You must justify explicitly in your documentation why this service is necessary and how using directly the API might be problematic. |
![]() |
Overview | 1.0 | The overview is clearly written and describes the purpose of the service in relation to other components in the ecosystem |
![]() |
Communication Diagram | 1.0 | The diagram shows how services in the ecosystem are connected, including what type of communication is used between them. |
![]() |
Instructions | 1.0 | The readme.md file for the project or service repository includes full instructions on how to install, setup, and run the service, and connect it to the main API. |
![]() |
Code Structure | 1.0 | The service has good code structure, and communicates with other components in a smart way. |
![]() |
API implementation | 2.5 | The API of the service is correctly design and implemented according to the chosen architecture. The chosen API architecture is correcly justified |
![]() |
Code Quality | 1.0 | Code follows good practices for the chosen programming language and other tools. Linting tool is also used for evaluating this bullet. If Python is not used be sure that you try proper linting software.If not linting is used max grade is 0.5 |
![]() |
Demonstration | 2.5 | You are able to give a clear demonstration of the service in action. The service does not have meaningful errors. |
Code Quality¶
Linting tool is used for checking the code quality. Run the linter for your language of choice before submitting to avoid surprises in the evaluation. For PyLint, you can use the same ignores as in Deadline 3.
Return Box¶
In all cases, you need to document the work in the wiki as instructed, and have all of your code in your repository / repositories. You can use a separate repository for each component if you like, just put links to all of them in the return box. If you decide to deploy your web api in a production environment, you need to provide adequate scripts and complete the corresponding part of Deadline 5.
For this deadline you also need to prepare a demonstration of all the work you have done in this deliverable:
- Show your client working including all features
- Demonstrate how the auxiliary service works and how it integrates into your ecosystem
- Show how you have deployed your service in a production environment. Show that you can use the service from the production environments.
- Show your client working including all features
- Demonstrate how the auxiliary service works and how it integrates into your ecosystem
- Show how you have deployed your service in a production environment. Show that you can use the service from the production environments.
To submit your deliverable write the address to your repository or Deadline 5 wiki page. If you used separate repositories for the client and/or auxiliary service, please include those links as well.
This section is assessed during the final meeting.
Hints
Messages
