A comprehensive iOS application that provides personalized college admission insights by analyzing historical acceptance data from your high school's Scoir records.
MyCollegeOdds helps high school students understand their chances of college admission by analyzing scattergram data from their school's historical records on Scoir. The app creates personalized acceptance rate predictions based on GPA, standardized test scores, and application types.
- Analyzes your GPA and standardized test scores against historical data
- Provides acceptance rates at 25th, 50th, 75th, and 100th percentiles
- Calculates distance-based similarity to admitted students
- Separate analysis for different application types (Regular Decision, Early Action, Early Decision)
- Comprehensive "All Applications" category for overall insights
- Clean SwiftUI interface with intuitive navigation
- Built-in web browser for school search
- Secure credential storage with UserDefaults
- Interactive data tables with percentage calculations
- Direct integration with Scoir accounts
- Encrypted credential handling
- Automatic session management
- Data Collection: Connects to Scoir to gather scattergram data from your high school
- Distance Analysis: Calculates Euclidean distance between your stats and historical applicants
- Percentile Grouping: Groups similar students at different percentile thresholds
- Acceptance Rate Calculation: Provides acceptance rates for each group and application type
The app creates conceptual "circles" around your position on the scattergram at different percentiles. This visualization shows how the analysis works:
This scattergram shows the University of Michigan data with circles representing the 25th, 50th, and 75th percentiles around a student's position.
The app generates a comprehensive table showing acceptance rates for different application types at each percentile:
Example table showing acceptance rates broken down by application type (Early Action, Regular Decision, etc.) and percentile ranges.
The app uses a distance-based algorithm to find similar students:
Distance = √((x₂ - x₁)² + (y₂ - y₁)²)
Where:
- x = Normalized standardized test score (0-1 scale)
- y = Normalized GPA (0-1 scale)
- ContentView.swift: Login interface with credential management
- HomePage.swift: Main dashboard with data visualization
- WebView.swift: Integrated browser for school selection
- BrowserView.swift: UIViewControllerRepresentable wrapper
- stats.swift: API communication and data processing
- start.php: Authentication endpoint
- script.php: Main data processing endpoint
- Calculations.php: Statistical analysis and table generation
- Calculations.py: Legacy Python implementation for data formatting
- script.py: Selenium-based web scraping utilities
- iOS 14.0 or later
- Xcode 12.0 or later
- Valid Scoir account
- PHP server with Symfony HttpClient
-
Clone the repository
git clone https://github.com/yourusername/scattergram-app.git cd scattergram-app -
iOS App Setup
cd App/Scattergram # Open Scattergram.xcodeproj in Xcode # Build and run on device/simulator
-
Backend Setup
cd Server composer install # Configure your web server to serve PHP files # Update API endpoints in iOS app if needed
-
Update the server URLs in the iOS app:
// In signal.swift and stats.swift let websiteURL = URL(string: "https://your-domain.com/start.php")!
-
Ensure your server supports HTTPS for secure API communication
POST /start.php
Content-Type: application/json
{
"email": "user@example.com",
"password": "password"
}POST /script.php
Content-Type: application/json
{
"email": "user@example.com",
"password": "password",
"startyear": "2017",
"schoolcode": "5e922e5c0925986577dd4e46",
"schoolid": "12345",
"gpascale": "4.25",
"roundedscore": "0.8125",
"roundedgpa": "0.9333"
}- All user credentials are stored locally using iOS UserDefaults
- No personal data is permanently stored on servers
- Scoir integration follows their API terms of service
- App can be fully reset by logging out
- SwiftUI: Modern declarative UI framework
- WKWebView: Integrated web browsing with URL monitoring
- URLSession: Secure API communication
- UserDefaults: Local credential and preference storage
- Symfony HttpClient: Robust HTTP request handling
- JSON API: RESTful communication with mobile app
- Statistical Analysis: Percentile calculations and distance algorithms
- Error Handling: Comprehensive exception management
- Requires valid Scoir account and access to school data
- Analysis quality depends on historical data availability
- Test-optional applicants are filtered out for consistency
- Limited to schools available in Scoir database
This repository represents a discontinued project. The code is provided for educational and reference purposes.
This app was designed to provide insights based on historical data and should not be considered as definitive admission predictions. College admissions involve many factors beyond GPA and test scores.
Note: This application is no longer actively maintained and the associated servers may not be operational.

