AISE AI Code Editor
AI-Supported Lightweight Code Editor built with Streamlit (AISE501 Spring 2026)
Project Structure
AISE_AIAgent/
├── frontend/ # Streamlit UI Components
│ ├── __init__.py
│ ├── app.py # Main Streamlit application entry point
│ ├── sidebar.py # File navigation sidebar component
│ ├── editor.py # Code editor pane component
│ └── chat.py # Chat interface component
│
├── backend/ # Backend Logic Modules
│ ├── __init__.py
│ ├── managers/ # Business logic for UI operations
│ │ ├── __init__.py
│ │ ├── file_manager.py # File I/O operations for UI (read, write, list files)
│ │ ├── chat_manager.py # AI chat management and history
│ │ ├── system_prompter.py # System prompts and context injection
│ │ ├── search_manager.py # Internet search functionality
│ │ ├── execution_engine.py # Code execution and sandboxing
│ │ └── debug_logger.py # Logging, error handling, debug messages
│ │
│ ├── agents/ # AI Agent System
│ │ ├── __init__.py
│ │ ├── coding_agent.py # Main agent loop (plan-act-observe cycle)
│ │ └── tools.py # Tools available to agent (7 functions + dispatcher)
│ │
│ └── utils/ # Helper Utilities
│ ├── __init__.py
│ └── server_utils.py # LLM client init, chat functions, formatters
│
├── tests/ # Unit Tests
│ ├── __init__.py
│ ├── test_file_manager.py # Tests for file operations
│ ├── test_chat_manager.py # Tests for chat functionality
│ ├── test_execution_engine.py # Tests for code execution
│ └── test_main.py # Integration tests
│
├── workspace/ # Agent Sandbox Directory
│ └── .gitkeep # Placeholder for agent to work safely in isolation
│
├── .gitignore # Git exclusions (venv, .env, __pycache__, etc.)
├── .env # Local environment variables (NOT committed)
├── .env.example # Template for environment variables (IS committed)
├── requirements.txt # Python dependencies
├── README.md # This file
└── project_exercise.pdf # Project specification
Component Responsibilities
Frontend (frontend/)
- app.py: Main Streamlit application, layout orchestration
- sidebar.py: File browser and project navigation
- editor.py: Code editing interface with syntax highlighting
- chat.py: AI assistant chat interface
Backend Managers (backend/managers/)
Used directly by Frontend for UI operations:
- file_manager.py: CRUD operations on project files
- chat_manager.py: Chat history, message management
- system_prompter.py: System prompt generation and file context
- execution_engine.py: Safe code execution with output capture
- debug_logger.py: Error tracking and log formatting
- search_manager.py: Web search integration
Backend Agents (backend/agents/)
Independent AI agent system for complex tasks:
- coding_agent.py: Agent loop (Plan → Act → Observe → Repeat)
- tools.py: 7 tools agent can use (read/write/run/search/validate/grep/done)
Backend Utils (backend/utils/)
- server_utils.py: LLM client initialization, chat helpers, message formatters
Workspace (workspace/)
- Sandbox directory where agent executes and stores files
- Prevents agent from accessing files outside this directory
Features
- File Display & Management: Browse and edit code files
- Chat Interface: AI-powered code assistant
- Code Execution: Run Python code with debugging
- Internet Search: Fetch documentation and examples
- System Prompts: Context-aware AI interactions
Setup
1. Project Clonen
-
In den Zielordner wechseln cd /pfad/zum/zielordner
-
Repository klonen git clone https://gitea.fhgr.ch/meulilivio/AISE1_Project.git
-
In das Projekt wechseln cd AISE1_Project
2. Activate Virtual Environment
# Windows
.\.venv\Scripts\Activate.ps1
# macOS/Linux
source .venv/bin/activate
3. Install Dependencies
pip install -r requirements.txt
4. Run Application
streamlit run frontend/app.py
5. Run Tests
pytest tests/
Architecture
The application follows a frontend-backend split:
- Frontend: Streamlit UI components (sidebar, editor, chat)
- Backend: Specialized manager modules
- FileManager: File operations
- ChatManager: AI interaction
- SystemPrompter: Prompt management
- SearchManager: Internet search
- ExecutionEngine: Code execution
- DebugLogger: Error handling & logging
Development
Use Git to track changes:
git add .
git commit -m "Your message"
git push origin sturcture
Description
Code for the project we have to complete as part of the Artificial Intelligence in Software Engineering module. It is a coding agent.
Languages
Python
100%