# 1. Title: {PRD for {project}} ## Status: { Draft | Approved } ## Intro { Short 1-2 paragraph describing the what and why of what the prd will achieve} ## Goals { - Clear project objectives - Measurable outcomes - Success criteria - Key performance indicators (KPIs) } ## Features and Requirements - Functional requirements - Non-functional requirements - User experience requirements - Integration requirements - Compliance requirements ## Epic List ### Epic-1: Current PRD Epic (for example backend epic) ### Epic-2: Second Current PRD Epic (for example front end epic) ### Epic-N: Future Epic Enhancements (Beyond Scope of current PRD) ## Epic 1: Story List - Story 1: Project and NestJS Configuration Status: {''|'InProgress'|'Complete'} Requirements: - Install NestJS CLI Globally - Create a new NestJS project with the nestJS cli generator - Test Start App Boilerplate Functionality - Init Git Repo and commit initial project set up - Story 2: News Retrieval API Route Status: {''|'InProgress'|'Complete'} Requirements: - Create API Route that returns a list of News and comments from the news source foo - Route post body specifies the number of posts, articles, and comments to return - Create a command in package.json that I can use to call the API Route (route configured in env.local) ## Technology Stack { Table listing choices for languages, libraries, infra, etc...} | Technology | Version | Description | | ---------- | ------- | ----------- | | Kubernetes | x.y.z | Container orchestration platform for microservices deployment | | Apache Kafka | x.y.z | Event streaming platform for real-time data ingestion | | TimescaleDB | x.y.z | Time-series database for sensor data storage | | Go | x.y.z | Primary language for data processing services | | GoRilla Mux | x.y.z | REST API Framework | | Python | x.y.z | Used for data analysis and ML services | ## Reference { Mermaid Diagrams for models tables, visual aids as needed, citations and external urls } ## Data Models, API Specs, Schemas, etc... { As needed - may not be exhaustive - but key ideas that need to be retained and followed into the architecture and stories } ### Sensor Reading Schema ```json { "sensor_id": "string", "timestamp": "datetime", "readings": { "temperature": "float", "pressure": "float", "humidity": "float" }, "metadata": { "location": "string", "calibration_date": "datetime" } } ``` ## Project Structure { Diagram the folder and file organization structure along with descriptions } ```` // Start of Selection ```text src/ ├── services/ │ ├── gateway/ # Sensor data ingestion │ ├── processor/ # Data processing and validation │ ├── analytics/ # Data analysis and ML │ └── notifier/ # Alert and notification system ├── deploy/ │ ├── kubernetes/ # K8s manifests │ └── terraform/ # Infrastructure as Code └── docs/ ├── api/ # API documentation └── schemas/ # Data schemas ```` ## Change Log { Markdown table of key changes after document is no longer in draft and is updated, table includes the change title, the story id that the change happened during, and a description if the title is not clear enough } | Change | Story ID | Description | | -------------------- | -------- | ------------------------------------------------------------- | | Initial draft | N/A | Initial draft prd | | Add ML Pipeline | story-4 | Integration of machine learning prediction service story | | Kafka Upgrade | story-6 | Upgraded from Kafka 2.0 to Kafka 3.0 for improved performance |