Getting a local instance of IntelliPlan running is intentionally straightforward — the only hard requirement beyond Python is a free Google Gemini API key. The app falls back to SQLite automatically when no PostgreSQLDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/UAnirudh/IntelliPlan/llms.txt
Use this file to discover all available pages before exploring further.
DATABASE_URL is provided, so you can skip database setup entirely on a first run. This page walks you from a clean machine to a working local server.
Prerequisites
Before you begin, make sure you have the following:- Python 3.11 or newer — IntelliPlan’s
Dockerfiletargetspython:3.13-slim; any 3.11+ release works locally. - A Google Gemini API key — free at aistudio.google.com/apikey. Gemini 2.5 Flash is the primary model for scheduling, the AI tutor, flashcard generation, and vision features.
- Git — to clone the repository.
- (Optional) A Groq API key — strongly recommended as a fallback. The Gemini free tier allows only 20 requests per day; without a Groq key, every AI feature stops when that quota is exhausted. Free key at console.groq.com/keys.
- (Optional) Credentials for at least one school platform — Canvas API token, Google Classroom OAuth, StudentVue login, Schoology API key, Blackboard OAuth, or a Moodle web-services token. You can register and explore the app without one, but the dashboard will be empty until a platform is connected.
Installation
Install Python dependencies
All dependencies are pinned in Key packages installed include Flask, Flask-SQLAlchemy, Flask-Login, Flask-Bcrypt, Flask-Limiter, Flask-Session,
requirements.txt. A virtual environment is recommended to avoid conflicts with other projects on your machine.google-genai, groq, pywebpush, pypdf, python-docx, and gunicorn.Create your .env file
Copy the provided template and fill in the minimum required values:Then open The
.env in your editor. For a first run, you only need these three variables:.env (minimal)
DATABASE_URL=sqlite:///intelliplan.db line tells Flask-SQLAlchemy to create a local SQLite file named intelliplan.db in the instance/ folder — no PostgreSQL installation needed for local development.Run the app
App.py patches sys.modules so that subsequent from App import ... calls inside blueprints resolve to the same module object. This prevents duplicate db/User/Flask-app instances when running in dev mode. Do not rename the file.Minimal .env for First Run
The three variables below are the absolute minimum to boot the app and use every AI feature:.env
The
.env.example file in the repo documents every available variable, including optional ones for Google Calendar OAuth, Notion, Blackboard, push notifications (VAPID), Sentry, Resend email, reCAPTCHA, analytics (PostHog), and encryption at rest (DATA_ENCRYPTION_KEY). You do not need any of those to run locally.Connecting Your First School Platform
Once the app is running and you’ve created an account, connect a school platform from the Settings page (/settings):
- Canvas
- Google Classroom
- StudentVue
- Moodle
- Navigate to Settings → Integrations → Canvas.
- Enter your Canvas instance URL (e.g.
https://canvas.instructure.com). - Generate a personal access token in Canvas under Account → Settings → Approved Integrations → New Access Token and paste it into the token field.
- Click Connect. IntelliPlan immediately imports your courses and assignments.
Canvas OAuth (the “Continue with Canvas” button) requires a Developer Key registered with your Canvas instance. For local development, a personal access token is the fastest path.
Verifying Everything Works
After connecting a platform, visit these pages to confirm the integration is healthy:| Page | URL | What to check |
|---|---|---|
| Dashboard | / | Assignments appear in Overdue / Today / Upcoming columns |
| Priority View | /priority | Assignments are scored High / Medium / Low |
| Classes | /classes | Your courses are listed with assignment counts |
| Scheduler | /scheduler | ”Generate Schedule” button is active |
| Grades | /grades | GPA and per-course grade data loads |
Next Steps
Self-Hosting
Deploy IntelliPlan to Railway or any server with Docker, Gunicorn, and a production PostgreSQL database.
Environment Variables
See the full list of optional variables for push notifications, Sentry, email, reCAPTCHA, and encryption at rest.