Module 2: Build Sprint 1

Understanding Your First Ticket

In this module, you'll learn how to work with your first ticket in the project. You'll start implementing features and contributing to the codebase.

First Ticket Details

View your first ticket details and requirements on GitHub:

First Ticket Documentation

Key Components of a Ticket

  • Title - Clear description of the task
  • Description - Detailed explanation of what needs to be done
  • Acceptance Criteria - What conditions must be met for the ticket to be considered complete
  • Story Points - Estimate of complexity/effort
  • Priority - How important/urgent the ticket is
  • Assignee - Who is responsible for completing the ticket
  • Status - Current state of the ticket (To Do, In Progress, etc.)

Backend Implementation

Learn how to implement backend features using Spring Boot, including REST endpoints, services, and repositories.

Key Concepts

  • Controllers - Handle HTTP requests and responses
  • Services - Contain business logic
  • Repositories - Interface with the database
  • DTOs - Data Transfer Objects for request/response payloads
  • Entities - Database models

Testing Your Code

Learn about writing unit tests and integration tests for your Spring Boot application.

Testing Strategies

  • Unit Tests - Test individual components in isolation
  • Integration Tests - Test interactions between components
  • Mock Objects - Simulate dependencies for unit testing
  • Test Containers - For database and other infrastructure tests

Example Test

@SpringBootTest
public class AssignmentServiceTest {

    @MockBean
    private AssignmentRepository assignmentRepository;
    
    @Autowired
    private AssignmentService assignmentService;
    
    @Test
    public void testGetAssignmentById() {
        // Arrange
        Assignment assignment = new Assignment();
        assignment.setId(1L);
        assignment.setTitle("Test Assignment");
        
        when(assignmentRepository.findById(1L))
            .thenReturn(Optional.of(assignment));
        
        // Act
        AssignmentDTO result = assignmentService.getById(1L);
        
        // Assert
        assertNotNull(result);
        assertEquals("Test Assignment", result.getTitle());
        verify(assignmentRepository).findById(1L);
    }
}
                    

Code Reviews

Learn how to effectively review code and respond to feedback on your own code.

Code Review Best Practices

  • Be Specific - Point to specific lines and explain issues clearly
  • Ask Questions - Instead of making demands, ask questions to understand the code
  • Focus on the Code - Not the coder
  • Provide Constructive Feedback - Suggest improvements, not just point out problems
  • Be Timely - Review code promptly to avoid delays
  • Be Open to Discussion - Code reviews should be a dialogue

Daily Standups

Learn about daily standup meetings and how to communicate effectively with your team.

Standup Format

In a standup meeting, each team member typically answers these three questions:

  1. What did I accomplish yesterday?
  2. What will I work on today?
  3. What blockers or challenges am I facing?

Keep your update concise and focused on these points. If detailed discussions are needed, they should be taken "offline" after the standup.

Tips for Effective Standups

  • Be Punctual - Arrive on time or even a few minutes early
  • Be Prepared - Know what you're going to say before the meeting starts
  • Be Concise - Keep your update under 2 minutes
  • Listen Actively - Pay attention to what others are saying
  • Focus on Progress - Highlight movement toward sprint goals
  • Raise Blockers - Don't hesitate to mention impediments