A React application powered by Vite that displays real-time NCAA Division I Softball data, including team rankings, individual statistical leaders, and tournament brackets. Data is fetched from the NCAA API through a Node.js server service. 1.0
- Team Rankings: View the latest Division I softball team rankings.
- Statistical Leaders: Browse top players in key hitting and pitching categories (e.g., batting average, home runs, ERA, strikeouts).
- Tournament Bracket: Display the current Women’s College World Series and regionals bracket.
- Responsive UI: Clean, mobile-friendly design with loading and error states.
- Rate-Limited API: Server enforces rate limiting to avoid API throttling.
/ (root)
├── src/ # React client application
│ ├── main.jsx # App entry point
│ ├── App.jsx # Main layout and routing logic
│ ├── components/ # Reusable UI components
│ └── services/ # Client-side API wrapper (softballAPI.js)
├── public/ # Static assets (favicon, icons)
├── server/ # Node.js API server
│ ├── server.js # Express setup
│ ├── routes/ # API route definitions
│ └── services/ # Data fetching and formatting (NCAAWebScraper)
├── README.md # This documentation
├── package.json # Client dependencies & scripts
└── server/package.json # Server dependencies & scripts
- Node.js v14+ and npm (or yarn)
- Clone the repository:
git clone https://github.com/mcd517/NCAA-D1-Softball-App.git cd NCAA-D1-Softball-App
- Install client dependencies:
npm install
- Install server dependencies:
cd server && npm install && cd ..
- Start the API server (default port 3001):
npm run server
- In a separate terminal, start the React app (default port 3000):
npm run dev
- Open http://localhost:3000 in your browser.
- Build the client:
npm run build
- Start the server in production mode:
npm start --prefix server
- The app will serve static files from
/dist
alongside the API endpoints.
The server exposes the following endpoints:
GET /api/rankings
— Fetch current team rankingsGET /api/stats/:category
— Fetch top 50 leaders for a stat category (batting
,hits
,homeRuns
,obp
,slg
,era
,strikeoutsPerSeven
,strikeouts
)GET /api/bracket
— (if implemented) Fetch tournament bracket data
- Rate Limiting: The server enforces a 1-second delay between external NCAA API calls.
- API Base URL: Defined in
server/services/ncaaWebScraper.js
ashttps://ncaa-api.henrygd.me
.
This application includes enterprise-grade WCAG 2.1 Level AA compliance specifically designed for state and local government customers, as required by the U.S. Department of Justice accessibility rule. The system features:
- 🏛️ Government Compliance: Zero-tolerance policy for critical/serious violations meeting Department of Justice requirements
- 📋 WCAG 2.1 AA Certified: Full compliance with WCAG 2.1 Guidelines Level AA standards
- 🔧 Enterprise Scanner: Modular, configurable accessibility testing with parallel execution
- 🎯 Strict Quality Gates: Government-standard thresholds (0 critical, 0 serious violations)
- 📊 Compliance Reporting: Comprehensive HTML dashboards, audit trails, and formal compliance documentation
- ⚙️ Multi-Standard Support: WCAG 2.1 A/AA/AAA, Section 508, EN 301 549 for complete government compliance
- 🚀 Automated Testing: Continuous compliance monitoring with axe-core, pa11y, Lighthouse, and Playwright
- 📄 Legal Documentation: Complete audit trails and compliance reports for government review
- Zero Critical Violations: Automated blocking of deployments with critical accessibility issues
- Audit Trail: Complete documentation of all accessibility testing and remediation
- Legal Compliance Reports: Formal PDF reports suitable for government submission
- User Testing Integration: Support for assistive technology user testing requirements
- Accessibility Statement: Public accessibility commitment documentation
See WCAG 2.1 Compliance Documentation for detailed compliance information and Enterprise Accessibility Documentation for technical setup and configuration.
- Fork the repo
- Create a new branch:
git checkout -b feature/my-feature
- Make your changes
- Submit a pull request
This project is licensed under the MIT License. See the LICENSE file for details.
Data sources: NCAA API, ESPN