Skip to content

EricGilerson/MyCollegeOdds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

MyCollegeOdds (Scattergram App)

A comprehensive iOS application that provides personalized college admission insights by analyzing historical acceptance data from your high school's Scoir records.

Overview

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.

Features

Personalized Analysis

  • 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

Application Type Breakdown

  • Separate analysis for different application types (Regular Decision, Early Action, Early Decision)
  • Comprehensive "All Applications" category for overall insights

User-Friendly Interface

  • Clean SwiftUI interface with intuitive navigation
  • Built-in web browser for school search
  • Secure credential storage with UserDefaults
  • Interactive data tables with percentage calculations

Secure Authentication

  • Direct integration with Scoir accounts
  • Encrypted credential handling
  • Automatic session management

How It Works

  1. Data Collection: Connects to Scoir to gather scattergram data from your high school
  2. Distance Analysis: Calculates Euclidean distance between your stats and historical applicants
  3. Percentile Grouping: Groups similar students at different percentile thresholds
  4. Acceptance Rate Calculation: Provides acceptance rates for each group and application type

Visual Explanation

The app creates conceptual "circles" around your position on the scattergram at different percentiles. This visualization shows how the analysis works:

Scattergram Analysis

This scattergram shows the University of Michigan data with circles representing the 25th, 50th, and 75th percentiles around a student's position.

Sample Output

The app generates a comprehensive table showing acceptance rates for different application types at each percentile:

Sample Table Output

Example table showing acceptance rates broken down by application type (Early Action, Regular Decision, etc.) and percentile ranges.

Mathematical Model

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)

Architecture

iOS App (Swift/SwiftUI)

  • 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

Backend (PHP)

  • start.php: Authentication endpoint
  • script.php: Main data processing endpoint
  • Calculations.php: Statistical analysis and table generation

Data Processing (Python)

  • Calculations.py: Legacy Python implementation for data formatting
  • script.py: Selenium-based web scraping utilities

Setup Instructions

Prerequisites

  • iOS 14.0 or later
  • Xcode 12.0 or later
  • Valid Scoir account
  • PHP server with Symfony HttpClient

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/scattergram-app.git
    cd scattergram-app
  2. iOS App Setup

    cd App/Scattergram
    # Open Scattergram.xcodeproj in Xcode
    # Build and run on device/simulator
  3. Backend Setup

    cd Server
    composer install
    # Configure your web server to serve PHP files
    # Update API endpoints in iOS app if needed

Configuration

  1. Update the server URLs in the iOS app:

    // In signal.swift and stats.swift
    let websiteURL = URL(string: "https://your-domain.com/start.php")!
  2. Ensure your server supports HTTPS for secure API communication

API Endpoints

Authentication

POST /start.php
Content-Type: application/json

{
  "email": "user@example.com",
  "password": "password"
}

Data Analysis

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"
}

Data Privacy

  • 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

Technical Highlights

iOS Features

  • SwiftUI: Modern declarative UI framework
  • WKWebView: Integrated web browsing with URL monitoring
  • URLSession: Secure API communication
  • UserDefaults: Local credential and preference storage

Backend Features

  • 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

Limitations

  • 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

Contributing

This repository represents a discontinued project. The code is provided for educational and reference purposes.

Disclaimer

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.

Contact

ericgilerson@gmail.com


Note: This application is no longer actively maintained and the associated servers may not be operational.

About

Code from MyCollegeOdds app and server-side requests

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published