This guide covers installing TrackITk12, loading your first devices, and running your first check-out. TrackITk12 uses SQLite for local development and MySQL for production, so you can be up and running in minutes without standing up a database server first.
Prerequisites
- Python 3.12.x
- Git
- UV — used for dependency management
1. Clone the repository
git clone https://github.com/victorhugo81/trackitk12.git
cd trackitk12
2. Install dependencies
uv sync
This installs Flask 3.1.0 and the rest of the project’s dependencies into a managed virtual environment.
3. Create your environment file
uv run create_env.py
This generates the .env file TrackITk12 needs — including your secret key and database connection. Point it at SQLite for local testing, or a MySQL connection string for production.
4. Seed initial data
uv run seed_data.py
This creates the database schema and seeds it with the roles and reference data TrackITk12 needs to start (Admin, Specialist, and Technician).
5. Start the server
uv run flask run
By default, the app is available at http://127.0.0.1:5000. For production, deploy behind a WSGI server such as Gunicorn with a reverse proxy in front of it, same as any Flask application.
6. Load your inventory
- Log in with the administrator account created during seeding.
- Add your school sites so devices can be organized by location.
- Bulk-import your existing inventory via CSV — devices, patrons, users, and sites all support import.
- Start checking devices in and out as they’re assigned to students and staff.
Key things to know
- Role-based access: Admin, Specialist, and Technician roles control exactly what a given user can see and do.
- Audit trail: every field change on a device is recorded — who changed it, when, and the old and new values — so you always have accountability.
- Notifications & exports: configure SMTP for email notifications, and set up scheduled FTP exports if you need inventory data to flow into another district system.
Next steps
- Read the product overview for a full feature breakdown.
- Set up repair logging so device history stays in one place.
- Star and watch the GitHub repository for updates.