RuslanPr0g/Hiscaries

📌 Meta: Roadmap (to keep the path and direction)

Ouverte

#140 ouverte le 27 août 2025

 (0 commentaire) (0 réaction) (1 personne assignée)C# (0 fork)auto 404
documentationhelp wanted

Métriques du dépôt

Stars
 (2 étoiles)
Métriques de merge PR
 (Métriques PR en attente)

Description

Description

This issue acts as a meta roadmap and notes keeper for the project. Its purpose is to organize high-level goals, ongoing refactor work, and upcoming features in one place. Instead of tracking everything across dozens of separate issues, this document will serve as a central reference for what the system should look like now and where it’s heading.

Scope

The following diagram represents a state of the system and its internal components that we anticipate to achieve. The format of the diagram is C4 C4 Diagram of the system

  • Refactor

    • Frontend: adopt Angular best practices and modern features.
    • Backend: move toward DDD + microservices structure.
    • Add comprehensive unit and integration tests across frontend and backend.
    • Resolve all existing TODOs.
  • New Features

    • Core engagement features inspired by YouTube: readlists (playlists), albums, comments, ratings, etc.
    • LLM-based analysis, Apache integration, and related AI features.

Notes

  • This issue is not meant to be closed - it will be updated continuously as the project evolves.
  • Individual tasks/features will still have their own dedicated issues.

Structure

I will use the following structure when describing the points.

Overview -> purpose & context. Bounded Context/Feature -> responsibilities, scope. Details -> entities, APIs/events. Implementation notes -> refactor, stack, todos. Decisions (ADR-style) -> why we chose X.

Refactor

Backend

1. StackNucleus Refactoring

Description: Restructure StackNucleus to centralize shared logic between microservices. Move common services, utilities, and domain logic there to reduce duplication and improve maintainability.

2. Static Code Analysis

Description: Integrate static code analysis tools (e.g., SonarQube, Roslyn analyzers) to catch bugs, enforce coding standards, and maintain high code quality across all microservices.

3. Inter-Service Validation

Description: Ensure application services validate actions requiring cross-service data. Example: the Story Write Service should verify that a user can only publish stories they own.

4. General Validation Improvements

Description: Add robust validation for inputs, requests, and business rules across all services to prevent invalid data from propagating.

5. Aggregate & Entity Invariants

Description: Strengthen invariants in aggregate roots and entities to enforce consistency and maintain domain integrity at the core of each microservice.

6. Microservice Splitting (C4-Aligned)

Description: Refactor microservices to follow the C4 diagram structure. Clearly separate bounded contexts and services to match domain-driven design and improve scalability.

7. Deployment ease

Description: Make it easy to deploy and run the application on any machine. No need for advanced docker for now, aspire with frontend integration to power up the whole thing will be enough.

Frontend

1. Architecture & Structure

Description: Organize the app by feature modules instead of technical layers. Use a Core Module for singletons (auth, logging, services) and a Shared Module for reusable UI (components, directives, pipes).

2. Component Design (Smart vs Dumb)

Description: Split components into smart (containers) that handle state and logic, and dumb (presentational) that focus only on UI. Use @Input and @Output for communication and apply OnPush change detection.

3. State Management

Description: For small features, share data via services, RxJS, and route params. For larger, complex features, adopt a predictable state manager like NgRx or Akita.

4. Shared Components & Reuse

Description: Centralize reusable components, pipes, and directives in a Shared Module. Convert some into standalone components for better lazy loading and selective imports.

5. Code Quality & Naming

Description: Apply the Single Responsibility Principle (SRP). Maintain consistent naming: kebab-case for files, PascalCase for classes/components. Ensure each component/service/module has one clear purpose.

6. Performance Optimization

Description: Use ChangeDetectionStrategy.OnPush, lazy load feature modules, apply trackBy in *ngFor, and ensure AOT compilation. Optimize bundle size through careful splitting.

7. Testing Best Practices

Description: Write unit tests for components and services using TestBed. Mock dependencies with spies or stubs. Create shared test modules to reduce boilerplate. Focus tests on behavior, not implementation details.

New features

MVP

Here is a list of features that need to be implemented as a part of the MVP (production ready).

Other

Please, see other issues here

Guide contributeur