Overview
TheProfileScreen displays comprehensive student profile information including personal data, academic statistics, career information, and today’s class schedule. It retrieves student data from FakeData.student.
Main Composable
ProfileScreen()
Scaffold and displays:
- Profile header with avatar and edit button
- Student control number
- Academic statistics (semester and average grade)
- Career information card
- Today’s classes list with status indicators
- Scrollable content with vertical scroll state
- Light gray background (Color(0xFFF5F6F8))
- Clean card-based layout
- Prominent statistics display
Sub-Composables
ProfileHeader()
- “MY PROFILE” title centered
- Large circular avatar (120dp) with person icon
- Edit button overlay in TecGold color
- TecBlue background
- 36dp rounded bottom corners
- White avatar circle with TecBlue icon
- TecGold edit button (38dp) in bottom-right of avatar
StatCard()
modifier- Modifier for the card (typically weight for grid layout)title- Main statistic value (e.g., semester number or grade)subtitle- Label for the statistic (“SEMESTER” or “AVERAGE GRADE”)iconColor- Color for the iconbackgroundColor- Card background colortextColor- Text color (defaults to dark gray)
- Semester → School icon (Icons.Outlined.School)
- Average Grade → Trending Up icon (Icons.Outlined.TrendingUp)
- 170dp height
- 28dp rounded corners
- 5dp elevation
- Icon in rounded square container (52dp)
- Vertical layout with icon at top, stats at bottom
CareerCard()
career- Spanish career abbreviation from student data
- Computer icon in orange circular background (58dp)
- Career abbreviation in bold large text
- Full career name: “Computing Systems Engineering”
- Chevron right icon for navigation
- White background with 4dp elevation
- 26dp rounded corners
- Orange accent color (#FF7A00)
- Horizontal layout with icon, text, and chevron
TodayClassCard()
hour- Class time (e.g., “07:00 AM”)subject- Course nameclassroom- Room locationactive- Whether the class is currently happening
- Time column on left (88dp width)
- Vertical divider line
- Class details in center (subject and classroom)
- Status dot on right:
- Green (#22C55E) for active classes
- Gray (#E5E7EB) for inactive classes
- White background with 3dp elevation
- 22dp rounded corners
- Active classes have darker text
- Inactive classes have lighter gray text
Student Data Model
The screen expects student data with the following properties:com.example.appcontrolescolar.data.FakeData
Profile Sections
- Header - Avatar with edit button and profile title
- Control Number - Student identification number
- Statistics Row - Semester and average grade cards
- Career Card - Major information with icon
- Today’s Classes - List of current day’s classes with status
Color Usage
| Element | Color | Purpose |
|---|---|---|
| Header Background | TecBlue | Primary branding |
| Edit Button | TecGold | Action highlight |
| Semester Card | White | Info display |
| Average Card | TecBlue | Featured stat |
| Career Icon | Orange (#FF7A00) | Category indicator |
| Active Class Dot | Green (#22C55E) | Status indicator |
| Inactive Class Dot | Gray (#E5E7EB) | Status indicator |
Navigation Link
The profile includes a “View Schedule” text link that can navigate to the full schedule screen. This is positioned next to the “Today’s Classes” heading.Source Code
File:app/src/main/java/com/example/appcontrolescolar/ui/screens/ProfileScreen.ktDependencies:
com.example.appcontrolescolar.data.FakeData, com.example.appcontrolescolar.data.model.Student