Milestone 5


Monday, December 11th, 09:59 PM

With the development in full swing, many modules should now be ready. This milestone is to ensure that some of these modules work together correctly.

API tuning

During project development, you'll gain insights about the structure and modules. It's possible that the initial API isn't ideal, so you might need to revise it. This involves updating the API documentation, diagrams, and, most importantly, the code to align with the new API.

If your API draft still meets the contract requirements, you can choose not to modify it. In this case, add a small appendix explaining why it remains unchanged.

In the remainder of this document, we'll refer to the latest version of the API as the modified version.

Features and Integration

Developing individual features is usually straightforward. The real challenge lies in integrating them smoothly. For this item, develop features from different modules and conduct integration tests using GitHub Actions. You can merge features into the dev branch once they pass your tests. However, keep the feature development branches until reviewed by the teaching staff. The teaching staff will grade the devbranch.

Make sure to commit often in the local repository, as it is part of the evaluation. Tests must be commited and pushed before any code is written.

Note: Regularly commit to your local repository and tidy up the history as needed. Push your changes only after passing the unit tests.

SFS clarifications and modifications

Your main focus should be to complete the pipeline. Use placeholder functions if necessary. Any modifications, as per the contract, should be straightforward.

Clarifications of the Software Requirements Specifications

For Annex A:

For Annex B:

Modifications of the Software Requirements Specification

Steps to complete

  1. Re-evaluate the document written in the folder API_draft. Make the require modifications both in your diagram and the document.
  2. Based on the modified API, reorganize your library in the dev branch.
  3. Write the integration tests on the dev branch.
  4. Complete the implementation of at least two modules of your choosing and test their integration. Every change in the library should trigger integration tests via Github Actions.
  5. In milestone5, describe the rationale behind any API changes. This should include:
    • Why the API was modified, focusing on how the changes improve functionality, usability, or adaptability to project requirements.
    • Discuss how these changes enhance the integration of different modules. List the specific module names that need to be evaluated by the teaching staff for their integration.

Final Deliverables

The final deliverables for this milestone should be uploaded only on the Github page. No emails are neccesary.

  1. Updated API document and its diagram. Place these in the draft_API folder.
  2. The docs/ directory should include a document called milestone5.
  3. Integration tests for at least two modules.

Note 1: By now you should have implemented many modules, and most of the items requested in the milestone.

Note 2: The reading period ranges from December 6th to December 10th. You are highly encouraged to submit earlier (notifying your liaison by email) to receive feedback.

Grading breakdown

Points Task
15 API
20 Modules
20 Integration tests
55 Total