This is a full-stack mobile application for a veterinary clinic, designed to manage pet adoptions. The system consists of a Spring Boot server that provides a REST API and an Android client application built with Jetpack Compose. It supports distinct roles for regular users and administrators.
SecurityConfig class uses Spring Security to define a SecurityFilterChain. This chain configures endpoint permissions, allowing public access (/public/**) while restricting actions like pet management (/api/dogs/**) to admin roles. Passwords are hashed before being stored.AuthController, AdoptionRequestController, and DogController handle all API endpoints for their respective domains.JpaRepository.DogCard are defined as @Composable functions that are state-driven, automatically re-rendering when their input data changes.DogAdoptionApi.kt) for consuming the Spring Boot REST API.AdminViewModel, UserViewModel, SharedViewModel) to hold and manage UI-related data and business logic, separating it from the UI components.NavGraph composable defines the different screens (Login, Register, Home, etc.) and the navigation flow between them.