Purpose: Scrapes roster data from MaxPreps team pages
MaxPrepRoster(url: str)
Parameters:
url
(str): The base URL for the MaxPreps team page (e.g., "https://www.maxpreps.com/il/chicago/northside-mustangs")scrape(sports=None, genders=None, seasons=None, levels=None) → pd.DataFrame
Parameters:
sports
(list, optional): Sports to scrape. If None, scrapes all available sportsgenders
(list, optional): Genders to scrape ["boys", "girls"]. Default: bothseasons
(list, optional): Seasons to scrape ["fall", "winter", "spring"]. Default: alllevels
(list, optional): Competition levels ["varsity", "jv", "freshman"]. Default: allReturns: pandas DataFrame with columns:
name
: Athlete namenumber
: Jersey numbersport
: Sport typeseason
: Season (fall/winter/spring)level
: Competition level (varsity/jv/freshman)gender
: Gender (boys/girls)grade
: Grade level (9/10/11/12)position
: Player positionPurpose: Scrapes track & field and cross country data from Athletic.net using Selenium WebDriver
Requirements: ChromeDriver must be installed and accessible in PATH
AthleticNetTrackField(url: str)
Parameters:
url
(str): The base URL for the Athletic.net team page (e.g., "https://www.athletic.net/team/19718")scrape_athletes(sports=['cross-country', 'track-and-field-outdoor', 'track-and-field-indoor']) → pd.DataFrame
Parameters:
sports
(list): List of sports to scrape athlete data forReturns: pandas DataFrame with athlete information
Note: Jersey numbers are always 0 for Athletic.net data
scrape_events(sports=['cross-country', 'track-and-field-outdoor', 'track-and-field-indoor'], years=[current_year, current_year + 1]) → pd.DataFrame
Parameters:
sports
(list): List of sports to scrapeyears
(list): List of years to scrape data forReturns: pandas DataFrame with event schedule information
Performance Note: May take several minutes due to Selenium automation
SharedHeader({required String title, VoidCallback? onTrailingTap})
Purpose: Customizable header with title and optional trailing action button
Properties:
title
(String): The title text to displayonTrailingTap
(VoidCallback?): Optional callback for trailing button tapArticleDetailSheet({required Article article, ScrollController? scrollController, Function(String)? onLinkError})
Purpose: Displays article content with markdown link support in a draggable sheet
Properties:
article
(Article): Article object with title, content, and optional imagescrollController
(ScrollController?): Optional scroll controlleronLinkError
(Function?): Callback for link opening errorsLoginSheet({VoidCallback? onLogin})
Purpose: Login form with email/password fields and custom styling
Properties:
onLogin
(VoidCallback?): Callback executed when login button is tappedWebViewSheet({required String url, Function(String)? onError})
Purpose: Embedded web view with external browser option
Properties:
url
(String): URL to load in the web viewonError
(Function?): Callback for error handlingPurpose: Responsive text utilities for different screen sizes
static double getFontSizeMultiplier(BuildContext context, {double defaultMultiplier = 0.045, double narrowScreenMultiplier = 0.04})
Returns appropriate font size multiplier based on screen width
static Widget responsiveText(String text, {required BuildContext context, bool isBold = false, bool isTitle = false, Color? color, int maxLines = 1, TextAlign textAlign = TextAlign.start, double? customSizeMultiplier})
Creates responsive text widget that handles overflow and adjusts size
static Widget fittedText(String text, {required BuildContext context, bool isBold = false, Color? color, double? customSizeMultiplier})
Creates FittedBox text that scales to fit container
Purpose: Consistent spacing, radius, and shadow constants
getResponsiveRadius(BuildContext context, double baseRadius)
get24Radius(BuildContext context)
- Regular card radiusget32Radius(BuildContext context)
- Carousel card radiusget20Radius(BuildContext context)
- Small card radiusget16Radius(BuildContext context)
- Button radiusget10Radius(BuildContext context)
- Small button radiusstandardShadow
- Default iOS-style shadowlightShadow
- Lighter shadow variantbulletinShadow
- Specific shadow for bulletin itemsPurpose: Customizable theme system for school branding
static ThemeData buildTheme({required Color primaryColor, required Color secondaryColor, required Color backgroundColor})
Builds a complete Flutter theme with custom school colors
isNarrowScreen(BuildContext context)
- Detects narrow screens like Samsung Galaxy S9getResponsiveSize(BuildContext context, double size)
- Adjusts sizes for narrow screensresponsivePadding(BuildContext context, double defaultPadding)
- Responsive padding