Skip to content

Checkpoint 2

Checkpoint 2 happens during the 8th week of the course, during phase 2, where the main topics were authentication, real-time updates, deployment to a virtual machine, and automated CI/CD pipeline.

Introduction

During the checkpoint, you are asked to demonstrate the development, operations, and documentation requirements of phase 2. While all the tasks are mandatory to complete, we will ask only a subset of them to demonstrate your knowledge.

The process is rather straightforward:

  1. Prepare your project, systems, and team for the checkpoint.
  2. During your allocated time slot, come to the session. In the case of an in-person class, please wait until you're invited to the class.
  3. Connect your devices, and prepare to present.
  4. During the presentation, TAs ask you to show specific functionalities of your application or demonstrate how you've done something.
  5. Try to keep it short and concise, as it helps you have time for the rest of the session.
  6. This is to earn the 15 team-wide points which everyone shares.
  7. During the presentation, we will also direct specific questions to random members of the team.
  8. This is to earn the 5 individual points.
  9. After you're done with the presentation, we'll give you an overview of how you did, and you can leave the session.
  10. We might not give you the score right then - sometimes we'll go to check the work done in GitLab afterward, if there's anything ambiguous.
  11. At the end of the week, we'll add the points to the SIS.

Here is a quick overview of development, operations, and documentation tasks required for checkpoints. For detailed descriptions see the lab guides mentioned previously.

Info

During the checkpoint, we will be asking you to demonstrate a subset of the tasks below.

Attention

When you are coming to present.

  • All team members should have their application ready and opened on their laptops
  • All team members should have their code editors open with the project loaded and ready to go
  • All team members should have their project repo open in Gitlab
  • All team members need to be familar with their project

Development requirements

Functionalities that are to be demonstrated live:

  • Show us how the application works without signing up
  • Show us how account creation works - username, passwords, logging in
  • Show us how to create anonymous posts
  • Show us how a user stays in control of their posts - anonymous, public, private, posts with username attached
  • Show us how to change the user's password
  • Show us how to make a public post private and demonstrate that it is removed from the feed
  • Show us how your bidirectional communication protocol performs
  • Show us how your voting logic works
  • Show us how your API endpoints require authentication
  • Show us whether the XSS mitigation works

Operational requirements

Persistent storage:

  • Demonstrate how data persistence is ensured - no data loss may occur when restarting the server.

Unit tests:

  • Demonstrate that your backend code has at least 50 % of unit test coverage.
  • Demonstrate three unit tests and a logic error that causes a test to fail.
  • (You can prepare this beforehand.)

Deployment to the cloud:

  • Demonstrate with a succeeded pipeline how your application gets deployed to the cloud.
  • (You can prepare this beforehand.)

Secrets detection:

  • Demonstrate how your pipeline fails with exposed secrets in the pipeline logs.
  • (You can prepare this beforehand.)

Documentation requirements

Documentation must include everything that has been described in the previous labs' guides. This includes:

  • How the application is deployed to the cloud.
  • Implementation of real-time updates
  • Authentication system implementation
  • Database and data structure overview
  • Cross-Site Scripting mitigation
  • Overview of CI/CD pipeline Secrets detection
  • How the automatic deployment to the cloud is implemented

Scoring

The maximum score for the checkpoint is 20 points. Of these, 15 are team points and 5 are individual points.

  • If any requirements are not met, the team will lose points.
  • Team points are distributed as follows: 6 points for development tasks, 6 points for operations tasks, and 3 points for documentation tasks.
  • If a team member does not contribute and/or cannot answer individual questions, they will lose individual points.

Warning

Penalty for team member not present during the presentation

It is mandatory for all team members to attend the checkpoint presentation. If a team member is not present they will loose their 5 individual points and 50% of their project points. This means that if the teams project gets the maximum of 15 points the two members present will get 15 points from the team points and the member not present will get 7.5 and loose their individual 5 points as well.

Info

Personal points graded as follows:

  • Adhere to the 10 minute time window
  • Answer what is asked of you in a concise manner
  • Demonstrate application functionality and code familiarity
  • NB! Not fitting the demonstration into the 10 minute time window can result in ending the session, in which case, if any questions are unanswered, the team won't be able to earn those points.

Info

If a team member can not participate due to health related issues the must notify the TAs 24h beforehand and provide proof from familiy doctor.