HackUDC 2026 · Team BrAIner
BrAIner is an intelligent note-taking assistant that automatically organizes your ideas, sets reminders, and generates structured summaries using local LLMs (via Ollama + Llama).
- 📝 Smart note capture — Write notes in natural language; the AI classifies and organizes them automatically into groups and subgroups
- 🗑️ Natural deletion — Say "remove X from the list" and the AI handles it
- ⏰ Reminders — "Remind me to go shopping at 8:30" creates a scheduled notification with email delivery
- 🎙️ Voice input — Record audio notes that are transcribed (Whisper) and classified automatically
- 📄 Document extraction — Upload
.txt,.pdfor.docxfiles and extract structured ideas - 📊 Smart summaries — Press PROCESS to get AI-generated summaries and key action points per group
- 🌐 URL enrichment — Paste a URL and the AI fetches title + description to enrich the note
- 🔍 Search — Full-text search across all your notes
Browser (Frontend)
│ HTTP
▼
Backend API (FastAPI · port 8000)
│ HTTP
▼
AI Service (FastAPI · port 8001)
│ HTTP
▼
Ollama (LLM inference · port 11434)
| Service | Tech | Port |
|---|---|---|
| Frontend | Node.js / Vanilla JS | 5002 |
| Backend API | Python · FastAPI · SQLite | 8000 |
| AI Service | Python · FastAPI · Ollama | 8001 |
| Ollama | Local LLM (Llama 3.2) | 11434 |
- Docker & Docker Compose
- Ollama installed and running
- Llama model pulled:
ollama pull llama3.2
ollama servegit clone <repo-url>
cd HackUDC2026
docker-compose up --build| URL | Description |
|---|---|
| http://localhost:5002 | Frontend UI |
| http://localhost:8000/docs | Backend API docs |
| http://localhost:8001/docs | AI Service API docs |
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000cd ai-service
pip install -r requirements.txt
uvicorn main:app --reload --port 8001cd frontend
npm install
node appBrAIner/
├── app/ # Backend FastAPI service
│ ├── main.py # API endpoints
│ ├── models.py # SQLAlchemy models
│ ├── schemas.py # Pydantic schemas
│ ├── ai_bridge.py # Bridge to AI service
│ ├── classifier.py # Rule-based pre-classifier
│ └── exporter.py # Markdown / Obsidian export
├── ai-service/ # AI microservice
│ ├── main.py # FastAPI app + endpoints
│ ├── classifier.py # LLM classification logic
│ ├── processor.py # PROCESS button logic
│ ├── transcriber.py # Whisper transcription
│ ├── llm_client.py # Ollama HTTP client
│ └── models.py # Pydantic models
├── frontend/ # Web UI (Node.js + Vanilla JS)
├── data/ # SQLite DB + Obsidian vault
├── docker-compose.yml
└── Dockerfile
Key environment variables:
| Variable | Default | Description |
|---|---|---|
AI_SERVICE_URL |
http://ai-service:8001 |
AI service URL |
NOTIFY_EMAIL |
— | Email for reminder notifications |
SMTP_HOST |
localhost |
SMTP server host |
SMTP_PORT |
1025 |
SMTP server port |
MIT © 2026 BrAIner Team