nova-stock

byUmang Suthar

Create me an stock market analysis platform

LandingStock DetailsLoginStocksDashboard
Landing

Comments (0)

No comments yet. Be the first!

Project Tasks

11
#2

Database Schema Alignment

To Do

As a developer, I need to align the database schema to support the stock market analysis platform, ensuring all tables, columns, and constraints are correctly defined. Implementation contract: - Outcome: Database Schema Alignment - Requirement sources: - src-c30e3e3b75568841 - Owned behavior: - As a developer, I need to align the database schema to support the stock market analysis platform, ensuring all tables, columns, and constraints are correctly defined. - Schema migration - Index creation - Constraint definition - Create a stock market analysis platform. - Interfaces: - PostgreSQL database - Provide stock.market.analysis.platform: Create a stock market analysis platform. - State transitions: - Schema updates - Failure and safety behavior: - Migration failure - Constraint violation Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - The declared task-owned behavior is implemented and verified without relying on undeclared mocks or downstream behavior. - Capability stock.market.analysis.platform implements Create a stock market analysis platform. and is verified through its declared interfaces.

AI 60%
Human 40%
High Priority
2 days
Data Engineer
#4

Implement Shared Navbar

To Do

As a Frontend Developer, implement the shared Navbar component from its approved JSX/CSS design and reuse it across all declared pages without duplicating local variants. Implementation contract: - Outcome: Implement Shared Navbar - Owned behavior: - As a Frontend Developer, implement the shared Navbar component from its approved JSX/CSS design and reuse it across all declared pages without duplicating local variants. - Implement shared design sections: Navbar. Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - The shared Navbar component renders once and is reused by every declared consuming page.

AI 90%
Human 10%
High Priority
0.5 days
Frontend Developer
#5

Implement Shared Footer

To Do

As a Frontend Developer, implement the shared Footer component from its approved JSX/CSS design and reuse it across all declared pages without duplicating local variants. Implementation contract: - Outcome: Implement Shared Footer - Owned behavior: - As a Frontend Developer, implement the shared Footer component from its approved JSX/CSS design and reuse it across all declared pages without duplicating local variants. - Implement shared design sections: Footer. Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - The shared Footer component renders once and is reused by every declared consuming page.

AI 90%
Human 10%
High Priority
0.5 days
Frontend Developer
#1

Identity Access Management

To Do

As a developer, I need to implement identity access management to ensure secure user authentication and authorization for the stock market analysis platform. Implementation contract: - Outcome: Identity Access Management - Requirement sources: - src-2faa74adf0b7ab24 - src-e85b6efb1397e535 - src-b4adc6258b496993 - src-99ecf74e5e198da0 - src-34e97b804746256e - src-f6b37158964d081f - src-c30e3e3b75568841 - Owned behavior: - As a developer, I need to implement identity access management to ensure secure user authentication and authorization for the stock market analysis platform. - User login - Session management - Role-based access control - Provide authoritative application identity, session, and current-user access state. - Interfaces: - API for authentication - JWT for session management - Consume stock.market.analysis.platform: Create a stock market analysis platform. - Provide identity.access.management: Provide authoritative application identity, session, and current-user access state. - State transitions: - User login - User logout - Session expiration - Failure and safety behavior: - Invalid credentials - Session timeout - Unauthorized access - Use authoritative session/current-user state, enforce access server-side, and fail closed without exposing prototype identity data. Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - The declared task-owned behavior is implemented and verified without relying on undeclared mocks or downstream behavior. - Capability stock.market.analysis.platform implements Create a stock market analysis platform. and is verified through its declared interfaces. - Capability identity.access.management implements Provide authoritative application identity, session, and current-user access state. and is verified through its declared interfaces.

Depends on:#2
Waiting for dependencies
AI 70%
Human 30%
High Priority
3 days
Backend Developer
#6

Implement Landing page

To Do

As a Frontend Developer, implement the approved Landing page design and the task-owned sections below. Implementation contract: - Outcome: Implement Landing page - Requirement sources: - src-6a66ba94624a2bea - src-062e7efbf6d0fa0b - src-9bddf97e97b9a7ee - src-9ddd35519e96457a - src-c0933543e801fb16 - src-3ed08fa50e2cb3c6 - src-32b4868a6296c465 - src-0130949e277f1ffd - src-8d48b3d4f10c6fed - src-2acc5870886d3f16 - src-ecaaca9ea0dbd58b - src-f4c17f6d4ce0ff3e - 9 additional source record(s) are retained in the structured implementation contract. - Owned behavior: - Render full-bleed WebGL 3D visualization with floating glass panels and holographic data representations - Implement continuous orbital motion and light sweeps creating volumetric depth - Animate data streams and particle fields responding to scroll interactions - Static presentation of feature cards - Embedded video player with controls - Click to navigate to Login - Hover state highlight - Focus state for keyboard navigation - Interfaces: - Consume identity.access.management: Provide authoritative application identity, session, and current-user access state. Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - The Landing page must render the LandingHero section exactly once - The 3D scene must display all specified elements and animations - The design structure must preserve the deep black background with gradient fades and electric blue/red glow accents - The scroll-linked animations must respond accurately to user interactions - The page must be accessible to the Investor persona without additional access restrictions - Landing page renders with LandingFeatures and LandingDemo sections - Feature cards display correct titles and descriptions - Demo section includes functional video player with controls - Design structure and theme match provided JSX and CSS - Landing page renders with LandingCTA section visible - Primary action button navigates to Login page on click - Button styling matches design with hover/active states - Section maintains design structure and theme - Page accessible to Investor persona - Capability identity.access.management implements Provide authoritative application identity, session, and current-user access state. and is verified through its declared interfaces.

Depends on:#1#4#5
Waiting for dependencies
AI 90%
Human 10%
High Priority
2 days
Frontend Developer
#7

Implement Login page

To Do

As a Frontend Developer, implement the approved Login page design and the task-owned sections below. Implementation contract: - Outcome: Implement Login page - Requirement sources: - src-2faa74adf0b7ab24 - src-e85b6efb1397e535 - src-b4adc6258b496993 - src-99ecf74e5e198da0 - src-34e97b804746256e - src-f6b37158964d081f - src-fb8e178bd90726ff - Owned behavior: - Capture and validate investor email and password credentials - Display real-time validation feedback and error messages - Manage form loading state and submit action - Enable password visibility toggle for improved UX - Navigate to Dashboard on successful authentication - Investor self-service enrollment and returning verification. - Interfaces: - onLogin function - Provide investor.enrollment.verification: Investor self-service enrollment and returning verification. - Consume identity.access.management: Provide authoritative application identity, session, and current-user access state. - State transitions: - Form submission triggers authentication request, successful response redirects to Dashboard - Failure and safety behavior: - Display error message on failed authentication Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - LoginForm renders with email and password inputs, submit button, and error display - Form submission calls onLogin and handles success/failure - Design matches cinematic styling with luminous accents - Investor persona can access without additional restrictions - Capability investor.enrollment.verification implements Investor self-service enrollment and returning verification. and is verified through its declared interfaces. - Capability identity.access.management implements Provide authoritative application identity, session, and current-user access state. and is verified through its declared interfaces.

Depends on:#1#4#5
Waiting for dependencies
AI 90%
Human 10%
High Priority
2 days
Frontend Developer
#8

Implement Dashboard page

To Do

As a Frontend Developer, implement the approved Dashboard page design and the task-owned sections below. Implementation contract: - Outcome: Implement Dashboard page - Requirement sources: - src-2df55ded8e4289ff - src-431ab4483b6099ba - src-99bfc6fa52bbb530 - src-3f77a2b26345dc4f - src-757d0ae1eb3fc071 - src-d5492ab845db40fe - src-ae11f8446e4df447 - src-2faa74adf0b7ab24 - src-80227316841229bf - src-c30e3e3b75568841 - src-e85b6efb1397e535 - src-b4adc6258b496993 - 3 additional source record(s) are retained in the structured implementation contract. - Owned behavior: - interactive market trends visualization - personal stock watchlist management - tab toggle - mark notification as read - display live news feed - Interfaces: - stock market data API - stock.market.analysis.platform - Consume stock.market.analysis.platform through news_items. - Consume stock.market.analysis.platform: Create a stock market analysis platform. - Consume identity.access.management: Provide authoritative application identity, session, and current-user access state. - State transitions: - market index and timeframe selection - add/remove stock from watchlist - load feed - mark notification as read - Display live news feed - Use neutral loading, empty, anonymous, and error states instead of restoring prototype data. - Failure and safety behavior: - loading skeleton, empty state, error recovery - error state with retry - Never retain or restore hardcoded prototype data as the runtime fallback when live integration fails. - Prototype-to-live replacements: - Replace '[design.Dashboard.DashboardNewsFeed.implementation[1]] import \'../styles/DashboardNewsFeed.css\';\nimport React from \'react\';\n\nconst NEWS_ITEMS = [\n {\n id: \'news-1\',\n headline: \'Fed signals steady rates into next quarter\',\n source: \'Market Wire\',\n publishedAt: \'2026-08-21T08:15:00Z\',\n },\n {\n id: \'news-2\',\n headline: \'Semiconductor sector rallies on AI demand\',\n source: \'Tech Ledger\',\n publishedAt: \'2026-08-21T07:40:00Z\',\n },\n {\n id: \'news-3\',\n headline: \'Energy stocks slip as crude prices ease\',\n source: \'Market Wire\',\n publishedAt: \'2026-08-20T22:05:00Z\',\n },\n];\n\nconst NOW = new Date(\'2026-08-21T09:30:00Z\');\nconst SKELETON_ROWS = [\'sk-1\', \'sk-2\', \'sk-3\'];\n\nfunction formatRelativeTime(isoString, now) {\n const then = new Date(isoString).getTime();\n const diffMs = Math.max(0, now.getTime() - then);\n const minutes = Math.floor(diffMs / 60000);\n\n if (minutes < 1) return \'just now\';\n if (minutes < 60) return `${minutes}m ago`;\n\n const hours = Math.floor(minutes / 60);\n if (hours < 24) return `${hours}h ago`;\n\n const days = Math.floor(hours / 24);\n return `${days}d ago`;\n}\n\nconst DashboardNewsFeed = ({ status = \'success\' }) => {\n return (\n <section className="dnf-root" aria-labelledby="dnf-heading">\n <div className="dnf-panel">\n <div className="dnf-panel-highlight" aria-hidden="true"></div>\n\n <header className="dnf-header">\n <h2 id="dnf-heading" className="dnf-heading">Market News</h2>\n </header>\n\n {status === \'loading\' && (\n <div className="dnf-loading" aria-live="polite" aria-label="Loading market news">\n {SKELETON_ROWS.map((rowId) => (\n <div key={rowId} className="dnf-skeleton-row">\n <span className="dnf-skeleton-line"></span>\n <span className="dnf-skeleton-line dnf-skeleton-line--short"></span>\n </div>\n ))}\n </div>\n )}\n\n {status === \'empty\' && (\n <div className="dnf-empty" role="status">\n <p className="dnf-empty-text">no recent news</p>\n </div>\n )}\n\n {status === \'error\' && (\n <div className="dnf-empty" role="status">\n <p className="dnf-empty-title">Market news is temporarily unavailable.</p>\n <a href="/dashboard" className="dnf-retry-link">Retry</a>\n </div>\n )}\n\n {status === \'success\' && (\n <ul className="dnf-list">\n {NEWS_ITEMS.map((item) => (\n <li key={item.id} className="dnf-item">\n <article className="dnf-story">\n <p className="dnf-headline">{item.headline}</p>\n <div className="dnf-meta">\n <span className="dnf-source">{item.source}</span>\n <span className="dnf-dot" aria-hidden="true"></span>\n <span className="dnf-time">{formatRelativeTime(item.publishedAt, NOW)}</span>\n </div>\n </article>\n </li>\n ))}\n </ul>\n )}\n </div>\n </section>\n );\n};\n\nexport default DashboardNewsFeed;' with news_items. Display live news feed Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - Dashboard page renders with market trends and stock watchlist sections - Market trends chart allows index and timeframe selection - Stock watchlist displays tracked stocks and allows add/remove actions - Dashboard page renders with both sections visible and functional - Tab toggle and mark-as-read interactions work as specified - News feed displays live data, replacing hardcoded items - Page is accessible only to logged-in investors - Display live news feed - The prototype value is absent from successful runtime rendering and from error fallbacks. - Capability stock.market.analysis.platform implements Create a stock market analysis platform. and is verified through its declared interfaces. - Capability identity.access.management implements Provide authoritative application identity, session, and current-user access state. and is verified through its declared interfaces.

Depends on:#5#4#1#2
Waiting for dependencies
AI 90%
Human 10%
High Priority
3 days
Frontend Developer
#9

Implement Stocks page

To Do

As a Frontend Developer, implement the approved Stocks page design and the task-owned sections below. Implementation contract: - Outcome: Implement Stocks page - Requirement sources: - src-c30e3e3b75568841 - src-2faa74adf0b7ab24 - src-e85b6efb1397e535 - src-b4adc6258b496993 - src-99ecf74e5e198da0 - src-34e97b804746256e - src-f6b37158964d081f - Owned behavior: - search, filter, sort, select, watchlist, and compare stocks - Interfaces: - stock market analysis API - Consume identity.access.management: Provide authoritative application identity, session, and current-user access state. - State transitions: - search query updates results - filter changes update results - sort order changes update results - watchlist toggle updates state - compare checkbox updates state - Failure and safety behavior: - error state displays retry option Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - StocksExplorer section renders with search, filter, sort, watchlist, and compare functionalities working as expected - Capability identity.access.management implements Provide authoritative application identity, session, and current-user access state. and is verified through its declared interfaces.

Depends on:#4#1#5
Waiting for dependencies
AI 90%
Human 10%
High Priority
3 days
Frontend Developer
#10

Implement Stock Details page

To Do

As a Frontend Developer, implement the approved Stock Details page design and the task-owned sections below. Implementation contract: - Outcome: Implement Stock Details page - Requirement sources: - src-d5df4f27fa577832 - src-9d2582a0e903c21a - src-c30e3e3b75568841 - src-2faa74adf0b7ab24 - src-e85b6efb1397e535 - src-b4adc6258b496993 - src-99ecf74e5e198da0 - src-34e97b804746256e - src-f6b37158964d081f - Owned behavior: - Display live stock data - Animate metrics on load - Interfaces: - Stock Market Analysis API - Consume stock.market.analysis.platform through stocks. - Consume identity.access.management: Provide authoritative application identity, session, and current-user access state. - State transitions: - Load stock data on page mount - Display live stock data - Use neutral loading, empty, anonymous, and error states instead of restoring prototype data. - Failure and safety behavior: - Handle API data retrieval errors gracefully - Never retain or restore hardcoded prototype data as the runtime fallback when live integration fails. - Prototype-to-live replacements: - Replace '[design.Stock Details.StockDetailsHeader.implementation[1]] import \'../styles/StockDetailsHeader.css\';\nimport React, { useMemo } from \'react\';\nimport { TrendingUp, TrendingDown } from \'lucide-react\';\n\nconst STOCK = {\n symbol: \'AAPL\',\n name: \'Apple Inc.\',\n price: 195.42,\n change: 2.15,\n changePercent: 1.11,\n};\n\nconst StockDetailsHeader = () => {\n const isPositive = STOCK.change >= 0;\n const sentimentClass = isPositive ? \'sdh-sentiment--up\' : \'sdh-sentiment--down\';\n const TrendIcon = isPositive ? TrendingUp : TrendingDown;\n\n const formattedPrice = useMemo(() => {\n return new Intl.NumberFormat(\'en-US\', {\n style: \'currency\',\n currency: \'USD\',\n minimumFractionDigits: 2,\n }).format(STOCK.price);\n }, []);\n\n const formattedChange = useMemo(() => {\n const sign = isPositive ? \'+\' : \'\';\n return `${sign}${STOCK.change.toFixed(2)}`;\n }, [isPositive]);\n\n const formattedPercent = useMemo(() => {\n const sign = isPositive ? \'+\' : \'\';\n return `${sign}${STOCK.changePercent.toFixed(2)}%`;\n }, [isPositive]);\n\n return (\n <section className="sdh-root" aria-label="Stock identity and price">\n {/* Decorative glow layers */}\n <div className="sdh-glow sdh-glow--primary" aria-hidden="true" />\n <div className="sdh-glow sdh-glow--accent" aria-hidden="true" />\n <div className="sdh-glow sdh-glow--price" aria-hidden="true" />\n\n {/* Glass panel */}\n <div className={`sdh-panel ${sentimentClass}`}>\n {/* Luminous border sweep */}\n <div className="sdh-panel-border" aria-hidden="true" />\n <div className="sdh-panel-border sdh-panel-border--delay" aria-hidden="true" />\n\n <div className="sdh-content">\n {/* Left: Symbol + Name */}\n <div className="sdh-identity">\n <div className="sdh-symbol-row">\n <span className="sdh-symbol">{STOCK.symbol}</span>\n <span className={`sdh-sentiment-badge ${sentimentClass}`}>\n <TrendIcon size={16} strokeWidth={2.5} aria-hidden="true" />\n </span>\n </div>\n <span className="sdh-name">{STOCK.name}</span>\n <span className="sdh-label">Stock Details</span>\n </div>\n\n {/* Right: Price + Change */}\n <div className="sdh-price-block">\n <span className="sdh-price">{formattedPrice}</span>\n <div className="sdh-change-row">\n <span className={`sdh-change-value ${sentimentClass}`}>\n {formattedChange}\n </span>\n <span className={`sdh-change-divider ${sentimentClass}`} aria-hidden="true" />\n <span className={`sdh-change-percent ${sentimentClass}`}>\n {formattedPercent}\n </span>\n </div>\n <span className="sdh-price-label">Current Price</span>\n </div>\n </div>\n\n {/* Bottom accent bar */}\n <div className={`sdh-accent-bar ${sentimentClass}`} aria-hidden="true" />\n </div>\n </section>\n );\n};\n\nexport default StockDetailsHeader;' with stocks. Display live stock data - Exchange responsibilities: - exact accepted exchange ID: consume, handle_failure Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - Render Stock Details page with StockDetailsHeader and StockDetailsMetricsPanel - Display live stock data with real-time updates - Maintain design structure with animated glass panels and luminous effects - Integrate with Stock Market Analysis API for data retrieval - Restrict access to logged-in Investors - Display live stock data - The prototype value is absent from successful runtime rendering and from error fallbacks. - Capability identity.access.management implements Provide authoritative application identity, session, and current-user access state. and is verified through its declared interfaces.

Depends on:#5#2#1#4
Waiting for dependencies
AI 90%
Human 10%
High Priority
2.5 days
Frontend Developer
#11

Implement Stock Details Charts Section

To Do

As a Frontend Developer, implement the approved Stock Details page design and the task-owned sections below. Implementation contract: - Outcome: Implement Stock Details Charts Section - Requirement sources: - src-63fcae23d91c5b9c - src-685acf66a6f1e30f - src-f0b1999a800937e9 - src-c30e3e3b75568841 - src-2faa74adf0b7ab24 - src-e85b6efb1397e535 - src-b4adc6258b496993 - src-99ecf74e5e198da0 - src-34e97b804746256e - src-f6b37158964d081f - Owned behavior: - Render animated price chart with configurable timeframe selection - Display synchronized volume chart below price chart - Show moving average overlays for trend analysis context - Implement responsive layout with horizontal scroll fallback on mobile - Interfaces: - Consume identity.access.management: Provide authoritative application identity, session, and current-user access state. Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - The StockDetailsChartsSection must render exactly once on the Stock Details page - Display the price and volume charts with the specified timeframe options and moving averages - Support smooth animations and responsive design - Maintain the cinematic aesthetic with a particle field overlay - Timeframe buttons must toggle chart data with smooth redraw animations - Tooltips must display accurate data on hover - Accessible to the 'Investor' persona with login access - Capability identity.access.management implements Provide authoritative application identity, session, and current-user access state. and is verified through its declared interfaces.

Depends on:#1#4#5
Waiting for dependencies
AI 90%
Human 10%
High Priority
2 days
Frontend Developer
#12

Implement Stock Details Notes Panel

To Do

As a Frontend Developer, implement the approved Stock Details page design and the task-owned sections below. Implementation contract: - Outcome: Implement Stock Details Notes Panel - Requirement sources: - src-0d9f54741ddf9363 - src-8aa674dbafcb6dd5 - src-7b94748a80dddf17 - src-63118f802b36c701 - src-2faa74adf0b7ab24 - src-e85b6efb1397e535 - src-b4adc6258b496993 - src-99ecf74e5e198da0 - src-34e97b804746256e - src-f6b37158964d081f - Owned behavior: - Display list of existing investor notes with edit/delete controls - Provide textarea for composing new notes or editing existing ones - Manage draft state and only enable save when changes detected - Animate notes list on load and provide visual feedback on save - Interfaces: - localStorage for draft persistence - Consume identity.access.management: Provide authoritative application identity, session, and current-user access state. - State transitions: - Draft persists to localStorage on every keystroke for recovery - Save note triggers glow pulse animation and brief success message - Failure and safety behavior: - Ignore localStorage errors silently Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - Render the StockDetailsNotesPanel exactly once on the Stock Details page - Display a list of up to 5 recent notes with edit/delete icons - Provide a textarea for composing notes with a character counter - Enable the save button only when changes are detected - Persist drafts to localStorage - Animate notes on load - Ensure the section is accessible to the Investor persona with login access - Capability identity.access.management implements Provide authoritative application identity, session, and current-user access state. and is verified through its declared interfaces.

Depends on:#5#1#4
Waiting for dependencies
AI 90%
Human 10%
High Priority
2 days
Frontend Developer
Landing design preview
Landing: Explore features
Login: Sign in
Dashboard: View market trends
Stocks: Search stocks
Stocks: Select stock
Stock Details: View metrics
Stock Details: Add notes
Landing design preview
Landing: Explore features
Login: Sign in
Dashboard: View market trends
Stocks: Search stocks
Stocks: Select stock
Stock Details: View metrics
Stock Details: Add notes