Skip to content

Getting Started

Zhe Nie edited this page Oct 6, 2026 · 4 revisions

Getting Started

Proposed direct dependencies for DreamLog. The iOS app will be native, as required by EECS 498-002. Python + Starlette + Granian is the proposed choice from the course-supported back-end stacks. The project repository does not yet contain application code, so this list describes the intended stack rather than installed packages.

Front-End — Native iOS

Direct tool, language, or SDK Use in DreamLog
Swift iOS application language.
SwiftUI Journal, recording, dream detail, and reflection screens.
Xcode Build, run, debug, and test the iOS app.
AVFoundation Record and play dream audio with native iOS APIs.
Foundation URLSession Send saved audio and text to the back-end API.
SQLite3 Keep local dream drafts and retry metadata on the device.

Back-End — Proposed Course-Supported Stack

Direct tool, library, or API Use in DreamLog
Python Back-end language and processing jobs.
Starlette HTTP endpoints for records, audio uploads, transcription jobs, and reflection threads.
Granian ASGI server for the Starlette application.
SQLite3 / Python sqlite3 Store dream records, revisions, job states, transcripts, summaries, and conversation turns.
OpenAI Python SDK Call the OpenAI APIs below from the server; its automatically installed dependencies are omitted.
OpenAI Audio Transcriptions API Convert recorded dream audio to editable text; gpt-4o-mini-transcribe is a candidate model.
OpenAI Responses API Generate optional summaries, tags, and private reflection responses.

Conditional Dependencies for the A → D → C Expansion

Add only if needed Use
OpenAI Images API Generate a visual for Arc D, if that stretch goal is adopted.
OpenAI Embeddings API Turn dream text into vectors for Arc C semantic matching, if vector retrieval is chosen.
sqlite-vector Search those vectors in SQLite3 for Arc C, if vector retrieval is chosen.

The iOS app sends audio and reflection requests to the Python back end; only the server holds the OpenAI API key. Packages installed automatically as dependencies of the listed tools are intentionally omitted. See Project Architecture and Features for the proposed workflow and the remaining decisions.

Clone this wiki locally