MAIC-UI (Making Interactive Courseware with Generative UI)
150
stars
3
commits
Python
primary language
May 6, 2026
updated
Let knowledge grow into interfaces, and let interaction flow into thinking.
MAIC-UI is an AI-powered interactive teaching generation system designed for educational scenarios across all grade levels. Centered on generative AI and interactive interface generation, it helps teachers quickly build teaching resources for classroom instruction, self-directed learning, experiment demonstrations, and knowledge exploration.
Unlike traditional static courseware or one-way content generation tools, MAIC-UI focuses not only on content generation, but also on learning process generation. It aims to transform abstract knowledge into visual, operable, and feedback-driven interactive pages, so that students do not merely see knowledge, but can also manipulate, experience, and understand it.
MAIC-UI aims to address more than just the efficiency problem of courseware production. More importantly, it responds to several core needs in educational scenarios:
Therefore, MAIC-UI is not merely a traditional content generator, but rather:
An AI interactive teaching interface generation system designed for classroom and learning scenarios.
git clone https://github.com/your-username/maic-ui.git
cd maic-ui
# Copy the example environment file
cp .env.example .env
# Edit .env and add your API keys
# Required: AI_PROVIDER and corresponding API key (zhipu, anthropic, openai, etc.)
vim .env
Key Environment Variables:
| Variable | Description | Required |
|---|---|---|
AI_PROVIDER | AI provider to use (zhipu, anthropic, openai, etc.) | Yes |
ZHIPU_API_KEY / ANTHROPIC_API_KEY / OPENAI_API_KEY | API key for your chosen provider | Yes |
SECRET_KEY | Secret key for JWT authentication | Yes |
DATABASE_URL | Database connection string (SQLite by default) | No |
# Build and start all services
docker compose build
docker compose up -d
# Or build and start in one command
docker compose up -d --build
The application will be available at http://localhost:8927
# Check container status
docker compose ps
# Check backend health
curl http://localhost:8927/health
| Service | Port | Description |
|---|---|---|
| nginx | 8927 | Reverse proxy (public entry point) |
| frontend | 3000 | Next.js application |
| backend | 8000 | FastAPI application |
For local development without Docker:
# Install dependencies
npm run install:all
# Start both frontend and backend
npm run dev
# Or start separately
npm run dev:frontend # Frontend on port 3000
npm run dev:backend # Backend on port 8000
MAIC-UI can be applied to the following typical teaching scenarios:
|
π― Lesson Introduction Attract studentsβ attention and stimulate interest through intuitive pages. |
π Knowledge Explanation Transform abstract concepts into visual and interactive content. |
|
π¬ Experiment Simulation Demonstrate processes when laboratory equipment or conditions are limited. |
π After-class Consolidation Strengthen understanding and transfer of knowledge through interactive exercises. |
| Dimension | Traditional Courseware / Resource Production | MAIC-UI |
|---|---|---|
| Production threshold | High, relies on manual design and technical operations | Lower, can generate quickly |
| Content form | Mainly static presentation | Dynamic and interactive presentation |
| Student role | Passive viewer | Active participant and explorer |
| Abstract knowledge expression | Difficult to present complex processes | Better suited for expressing dynamic patterns |
| Teaching adaptability | High adjustment cost | More suitable for quickly generating for different topics |
| Classroom performance | Strong in presentation, weak in interaction | Balances both presentation and interaction |
We welcome contributions from the community. Whether it is a bug report, feature suggestion, or pull request, we truly appreciate it.
Contribution Process
MAIC-UI/
βββ frontend/ # Frontend project
β βββ public/ # Static assets
β βββ src/
β β βββ app/ # Page routes
β β βββ components/ # Shared components
β β βββ styles/ # Style files
β β βββ utils/ # Utility functions
β βββ package.json
β
βββ backend/ # Backend project
β βββ src/
β β βββ api/ # API layer
β β βββ service/ # Business logic
β β βββ models/ # Data models
β β βββ core/ # Configuration and core functions
β βββ requirements.txt
β βββ main.py
β
βββ docs/ # Documentation
βββ screenshots/ # Project screenshots
βββ docker-compose.yml
βββ README.md
MAIC-UI adopts a frontend-backend separated architecture, consisting of the following main parts:
The system operates around the following workflow:
Input teaching requirements β Generate teaching content β Build interactive pages β Display teaching resources
If you would like to apply MAIC-UI to educational products, learning platforms, course resource development, or school-enterprise cooperation scenarios, feel free to contact us for further collaboration.
If MAIC-UI is helpful to your research or project, please consider citing this project.
@article{tu2026maic,
title={MAIC-UI: Making Interactive Courseware with Generative UI},
author={Tu, Shangqing and Li, Yanjia and Chen, Keyu and Zhang, Sichen and Yu, Jifan and Zhang-Li, Daniel and Hou, Lei and Li, Juanzi and Zhang, Yu and Liu, Huiqin},
journal={arXiv preprint arXiv:2604.25806},
year={2026}
}
If this project helps you, please consider giving it a star to support us.
3 commits
Python
83.4%
TypeScript
13.6%
HTML
2.3%
MAIC-UI (Making Interactive Courseware with Generative UI)
150
stars
3
commits
Python
primary language
May 6, 2026
updated
Let knowledge grow into interfaces, and let interaction flow into thinking.
MAIC-UI is an AI-powered interactive teaching generation system designed for educational scenarios across all grade levels. Centered on generative AI and interactive interface generation, it helps teachers quickly build teaching resources for classroom instruction, self-directed learning, experiment demonstrations, and knowledge exploration.
Unlike traditional static courseware or one-way content generation tools, MAIC-UI focuses not only on content generation, but also on learning process generation. It aims to transform abstract knowledge into visual, operable, and feedback-driven interactive pages, so that students do not merely see knowledge, but can also manipulate, experience, and understand it.
MAIC-UI aims to address more than just the efficiency problem of courseware production. More importantly, it responds to several core needs in educational scenarios:
Therefore, MAIC-UI is not merely a traditional content generator, but rather:
An AI interactive teaching interface generation system designed for classroom and learning scenarios.
git clone https://github.com/your-username/maic-ui.git
cd maic-ui
# Copy the example environment file
cp .env.example .env
# Edit .env and add your API keys
# Required: AI_PROVIDER and corresponding API key (zhipu, anthropic, openai, etc.)
vim .env
Key Environment Variables:
| Variable | Description | Required |
|---|---|---|
AI_PROVIDER | AI provider to use (zhipu, anthropic, openai, etc.) | Yes |
ZHIPU_API_KEY / ANTHROPIC_API_KEY / OPENAI_API_KEY | API key for your chosen provider | Yes |
SECRET_KEY | Secret key for JWT authentication | Yes |
DATABASE_URL | Database connection string (SQLite by default) | No |
# Build and start all services
docker compose build
docker compose up -d
# Or build and start in one command
docker compose up -d --build
The application will be available at http://localhost:8927
# Check container status
docker compose ps
# Check backend health
curl http://localhost:8927/health
| Service | Port | Description |
|---|---|---|
| nginx | 8927 | Reverse proxy (public entry point) |
| frontend | 3000 | Next.js application |
| backend | 8000 | FastAPI application |
For local development without Docker:
# Install dependencies
npm run install:all
# Start both frontend and backend
npm run dev
# Or start separately
npm run dev:frontend # Frontend on port 3000
npm run dev:backend # Backend on port 8000
MAIC-UI can be applied to the following typical teaching scenarios:
|
π― Lesson Introduction Attract studentsβ attention and stimulate interest through intuitive pages. |
π Knowledge Explanation Transform abstract concepts into visual and interactive content. |
|
π¬ Experiment Simulation Demonstrate processes when laboratory equipment or conditions are limited. |
π After-class Consolidation Strengthen understanding and transfer of knowledge through interactive exercises. |
| Dimension | Traditional Courseware / Resource Production | MAIC-UI |
|---|---|---|
| Production threshold | High, relies on manual design and technical operations | Lower, can generate quickly |
| Content form | Mainly static presentation | Dynamic and interactive presentation |
| Student role | Passive viewer | Active participant and explorer |
| Abstract knowledge expression | Difficult to present complex processes | Better suited for expressing dynamic patterns |
| Teaching adaptability | High adjustment cost | More suitable for quickly generating for different topics |
| Classroom performance | Strong in presentation, weak in interaction | Balances both presentation and interaction |
We welcome contributions from the community. Whether it is a bug report, feature suggestion, or pull request, we truly appreciate it.
Contribution Process
MAIC-UI/
βββ frontend/ # Frontend project
β βββ public/ # Static assets
β βββ src/
β β βββ app/ # Page routes
β β βββ components/ # Shared components
β β βββ styles/ # Style files
β β βββ utils/ # Utility functions
β βββ package.json
β
βββ backend/ # Backend project
β βββ src/
β β βββ api/ # API layer
β β βββ service/ # Business logic
β β βββ models/ # Data models
β β βββ core/ # Configuration and core functions
β βββ requirements.txt
β βββ main.py
β
βββ docs/ # Documentation
βββ screenshots/ # Project screenshots
βββ docker-compose.yml
βββ README.md
MAIC-UI adopts a frontend-backend separated architecture, consisting of the following main parts:
The system operates around the following workflow:
Input teaching requirements β Generate teaching content β Build interactive pages β Display teaching resources
If you would like to apply MAIC-UI to educational products, learning platforms, course resource development, or school-enterprise cooperation scenarios, feel free to contact us for further collaboration.
If MAIC-UI is helpful to your research or project, please consider citing this project.
@article{tu2026maic,
title={MAIC-UI: Making Interactive Courseware with Generative UI},
author={Tu, Shangqing and Li, Yanjia and Chen, Keyu and Zhang, Sichen and Yu, Jifan and Zhang-Li, Daniel and Hou, Lei and Li, Juanzi and Zhang, Yu and Liu, Huiqin},
journal={arXiv preprint arXiv:2604.25806},
year={2026}
}
If this project helps you, please consider giving it a star to support us.
3 commits
Python
83.4%
TypeScript
13.6%
HTML
2.3%