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.