📌 Meta: Roadmap (to keep the path and direction)
#140 aperta il 27 ago 2025
Metriche repository
- Star
- Â (2 stelle)
- Metriche merge PR
- Â (Metriche PR in attesa)
Descrizione
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).
- * Pagination Implementation
- * Content Recommendations
- * Story Ratings & Reviews
- * Auth and Security
- * REST API Best Practices
- * Global Exception Handling
- * Logging
- * Authorization & Role Checks
- * TODO Fixes
- * Unit & Integration Tests
- * UI / UX Design improvements
- * FE Changes
- * Feature Request: Define and Implement Bounded Contexts for Domain Evolution
- * Follow enterprise best practices
- * Add versioning
- * Standardize Model Mapping
- * Refactor Enterprise library
- * Check that the application follows DDD precisely
- * Bookmarks or Favorites
Other
Please, see other issues here