session start works

This commit is contained in:
aodulov
2025-10-10 12:48:06 +03:00
parent 556df015e8
commit 3c192b136c
51 changed files with 29002 additions and 46 deletions

View File

@@ -0,0 +1,80 @@
# Implementation Plan: Anonymous Desire Aggregator
**Branch**: `001-people-tend-to` | **Date**: 2025-10-09 | **Spec**: [spec.md](spec.md)
**Input**: Feature specification from `/specs/001-people-tend-to/spec.md`
## Summary
This plan outlines the implementation of a highly private, real-time web application for anonymous group decision-making. The architecture is client-centric, using browser Local Storage for session state, synchronized between participants via a Node.js WebSocket server. Per the user's directive, the backend will integrate with a cloud-based LLM, **Google's Gemini 2.0 Flash**, to meet the requirement for a powerful, free-to-use, and limitless model for semantic analysis. The application will be containerized with Docker and fully adheres to the project constitution.
## Technical Context
**Language/Version**: Node.js (LTS), TypeScript 5.x
**Primary Dependencies**:
- **Backend**: Express.js, `ws` (for WebSockets), `@google/generative-ai`
- **Frontend**: React 18, Material-UI (MUI) v5+
**Storage**: Browser Local Storage (Primary store for session state). The backend is stateless.
**Testing**: Jest
**Target Platform**: Docker Containers
**Project Type**: Web Application (Backend + Frontend)
**Privacy Mandate**: The backend MUST NOT log or persist the content of user desires. All session data on the backend is ephemeral and exists only in memory during the transient call to the LLM API.
**Performance Goals**: As per spec SC-001, SC-003.
**Constraints**: Relies on the availability and performance of the external "Gemini 2.0 Flash" API.
## Constitution Check
*GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.*
- **I. Defined Technology Stack**: **PASS**
- **II. UI/UX Consistency**: **PASS**
- **III. Container-First Development**: **PASS**
- **IV. Test-Driven Development (TDD)**: **PASS**
- **V. API-First Design**: **PASS**
**Result**: All constitutional gates passed.
## Project Structure
### Documentation (this feature)
```
specs/001-people-tend-to/
├── spec.md # Feature specification
├── plan.md # This file
├── research.md # Phase 0 output
├── data-model.md # Phase 1 output
├── quickstart.md # Phase 1 output
├── contracts/ # Phase 1 output
│ └── openapi.yaml
└── tasks.md # Phase 2 output (via /speckit.tasks)
```
### Source Code (repository root)
```
backend/
├── src/
│ ├── services/ # LLM integration service
│ ├── ws/ # WebSocket server logic for message relay
│ └── index.ts # App entrypoint
├── tests/
└── Dockerfile
frontend/
├── src/
│ ├── components/
│ ├── pages/
│ ├── services/ # WebSocket communication service
│ ├── hooks/ # Custom hooks for managing local storage state
│ └── App.tsx # Main React component
├── tests/
└── Dockerfile
docker-compose.yaml # To orchestrate both services
```
**Structure Decision**: A "Web application" structure with a separate frontend and backend is the ideal choice. The backend is a lightweight Node.js service responsible for WebSocket message relay and orchestrating calls to the external LLM API.
## Complexity Tracking
*No constitutional violations were identified. This section is not required.*