Seminar 4: Checkpoint #1 - Evaluation and Design Discussion
Goal: Assess your progress and engage in insightful discussions about design choices, ensuring a solid understanding of the evolving system
Introduction
In Session 4, we reach a pivotal milestone with Checkpoint #1, a concise 10-15 minute evaluation per group. This checkpoint serves as an opportunity for you to showcase the progress of your distributed system project through a demonstration and discussion.
The evaluation process will involve a demonstration where you will use our Frontend app to showcase the functionality of your system. While the demo can be simple, it should effectively highlight that your implementation is generating the expected responses. Additionally, you should leverage the logs you've implemented to provide insights into the inner workings of your distributed system. This practical demonstration is designed to assess your understanding of the concepts covered and the successful execution of key functionalities.
During the evaluation, there is no need to scrutinize your code. Instead, we will focus on your design decisions. Represent your choices in small diagrams, illustrating the components and their interactions. Use the diagrams as a visual aid to explain the rationale behind your design decisions. This not only demonstrates your comprehension of distributed system principles but also allows you to articulate the reasoning behind your implementation choices.
Remember, the purpose of Checkpoint #1 is to gauge your progress, offer constructive feedback, and ensure you're on the right track for the remainder of the project. Embrace this opportunity to showcase your achievements and engage in a dialogue about your distributed system design.
Task
As we approach Checkpoint #1, it's crucial to finalize your distributed system implementation, document key aspects, ensure smooth deployment, add system logs, and provide clarity through version tagging and comprehensive diagrams. These are the concrete tasks for this week:
- Finish the implementation: Complete the remaining tasks in your distributed system project, ensuring all functionalities align with the concepts covered in the sessions.
- Document Relevant Code: Provide concise and informative documentation for crucial sections of your code, aiding in understanding and evaluation.
- Docker Setup: Verify that your services can be spun up seamlessly using Docker and Docker Compose. Confirm they connect with the provided frontend to showcase the desired functionality.
- Add System Logs: Implement relevant system logs within your application to offer insights into the functioning and interactions of different components.
- Commit Changes to Repository: Commit the latest changes to your project repository, keeping it up-to-date and facilitating a smooth evaluation process.
- Create "checkpoint-1" Tag: Add a version tag "checkpoint-1" to mark this stage of your project in the repository, allowing for easy reference and tracking.
- Diagrams: Create visual documentation for your project by developing concise and informative architecture and system diagrams.
- Architecture Diagram: Develop an architecture diagram illustrating the multiple services, ports, communication protocols, and their relationships within your distributed system.
- System Diagram: Create a system diagram capturing the logical flow of execution, starting from a user request, navigating through the various services, and culminating in the system's response.
- Schedule: Choose your team slot for the evaluation time here: calendar.
Evaluation
During the Checkpoint #1 evaluation, each group will have 10-15 minutes to showcase their distributed system project. Be prepared to provide a demonstration using our Frontend app, displaying the proper functionality of your system. Emphasize the implementation of system logs to offer insights into your project's inner workings. Additionally, represent your design decisions using a system diagram and an architecture diagram, providing a visual guide for a more comprehensive understanding of your distributed system. This evaluation aims to assess your progress, offer constructive feedback, and ensure alignment with the distributed system principles covered in the course. You may only enter the room in the assigned time slot. Make sure to have at least one laptop with your solution ready to be demoed and with the codebase and diagrams ready to be displayed.
Distribution of points
- 1 - Establishment of a RESTful connection between the backend and frontend.
- 2 - Creation of the 3 new backend services, as gRPC servers.
- 2 - Establishment of the gRPC client/server communication between the services.
- 1 - Threading in the orchestrator.
- 1 - Logging.
- 1 - Project organization, documentation, collaboration, and other factors...
- 1 - Architecture diagram.
- 1 - System diagram.
Total: 10 points + 3 bonus points (1.5 bonus for each of the 2 AI services, adjusted to the complexity of the solution)