This guide covers getting AnalyticsK12 installed, loading your first student data, and reaching your role-based dashboards. Because AnalyticsK12 centralizes sensitive student records, plan to run it on a properly secured server rather than a shared or public machine.
Prerequisites
- Python 3.13+
- Git
- UV — used for dependency management
- MySQL Server — AnalyticsK12 stores district data in MySQL
1. Clone the repository
git clone https://github.com/victorhugo81/analyticsk12.git
cd analyticsk12
2. Install dependencies
uv sync
This installs Flask and its extensions, along with the reporting stack (Bootstrap 5 and Chart.js on the frontend, PDF export on the backend).
3. Configure your environment
Create your .env file with your MySQL connection string, a unique secret key, and SMTP settings if you plan to use email notifications. Credentials are encrypted at rest. Check the repository README for the current variable names, since the schema evolves as new modules are added.
4. Initialize and seed the database
Run the project’s database setup step to create the schema, then seed it with your site/role reference data before your first import.
5. Load your data
AnalyticsK12 is built to centralize data you likely already have elsewhere:
- Bulk CSV import for your initial load of demographics, attendance, discipline, grades, and graduation records.
- Scheduled FTP integration to keep data current automatically once you’re up and running, instead of re-importing by hand.
6. Run it
For local testing, run the Flask development server. For production, deploy behind Gunicorn (or another WSGI server) with a reverse proxy, the same as AssistITk12 and TrackITk12.
7. Explore your dashboards
- Log in with the administrator account created during seeding and set up role-based access for other staff.
- Review the early warning dashboard, which combines attendance, academics, and behavior into a weighted risk score per student.
- Log MTSS interventions directly against flagged students as your team starts supporting them.
- Run a CALPADS compliance check to catch data quality issues across all 10 validations before your next submission window.
Security notes
- Role-based access control restricts functionality by user type (e.g., district admin vs. site-level staff).
- Encrypted credential storage, login rate limiting, and account lockout after failed attempts are enabled by default.
- Strong password requirements are enforced for every account.
Next steps
- Read the product overview for a full feature breakdown.
- Set up graduation credit requirements for your district before running graduation-progress reports.
- Star and watch the GitHub repository for updates.