Skip to content

Foundation Setup #1

@prosdev

Description

@prosdev

Phase: 1 - Foundation
Estimated Effort: 3.5 hours
Tasks: Task 1, Task 2, Task 3 from specs/core-pipeline/tasks.md

Checklist

Task 1: Setup Dependencies & Configuration (30 min)

  • Add FastAPI, Pydantic, Firestore dependencies
  • Create Settings class with BaseSettings
  • Create .env.example
  • Create custom exceptions

Task 2: Create Event Schema Models (2 hours)

  • Create RawEvent (ConfigDict(extra='allow'))
  • Create TypedEvent base
  • Create IdentifyEvent, TrackEvent, PageEvent
  • Create Ref model with extract_refs()
  • Write unit tests

Task 3: Define Protocols (1 hour)

  • Create AdapterResult class (ok/err)
  • Define EventAdapter Protocol
  • Define EventStore Protocol
  • Define ErrorStore Protocol

Acceptance Criteria

  • All dependencies installed
  • Configuration loads from environment
  • RawEvent accepts any JSON
  • TypedEvent models validate correctly
  • All protocols defined
  • Unit tests pass (>80% coverage)
  • Type checking passes (mypy)

Files to Create

src/eventkit/config.py
src/eventkit/errors/exceptions.py
src/eventkit/schema/raw.py
src/eventkit/schema/events.py
src/eventkit/schema/refs.py
src/eventkit/adapters/base.py
src/eventkit/stores/event_store.py
src/eventkit/stores/error_store.py
tests/unit/schema/
tests/unit/adapters/test_base.py

User Stories: Story 1 (Flexible Ingestion), Story 3 (Type-Safe Processing), Story 4 (Refs)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions