Skip to content

Latest commit

 

History

History
996 lines (995 loc) · 69.2 KB

PROJECT_STRUCTURE.md

File metadata and controls

996 lines (995 loc) · 69.2 KB

Project Structure:

App/ ├── documentation-and-onboarding │ │ ├── api-documentation │ │ │ │ ├── api-overview.md │ │ │ │ ├── authentication-api.md │ │ │ │ ├── notification-api.md │ │ │ │ ├── order-api.md │ │ │ │ ├── swagger │ │ │ │ │ │ └── swagger.yaml │ │ │ │ └── user-api.md │ │ ├── architecture │ │ │ │ ├── backend-architecture.md │ │ │ │ ├── event-driven-architecture.md │ │ │ │ ├── frontend-architecture.md │ │ │ │ ├── infrastructure-architecture.md │ │ │ │ └── system-architecture.md │ │ ├── CODE_OF_CONDUCT.md │ │ ├── CONTRIBUTING.md │ │ ├── onboarding │ │ │ │ ├── mentorship-program.md │ │ │ │ ├── onboarding-guide.md │ │ │ │ ├── onboarding-scripts │ │ │ │ │ │ ├── configure-git.sh │ │ │ │ │ │ ├── create-api-keys.sh │ │ │ │ │ │ ├── run-sample-tests.sh │ │ │ │ │ │ └── setup-environment.sh │ │ │ │ ├── quick-start.md │ │ │ │ └── sample-project │ │ │ │ ├── docker │ │ │ │ ├── README.md │ │ │ │ ├── src │ │ │ │ └── tests │ │ ├── README.md │ │ ├── setup │ │ │ │ ├── ci-cd-setup.md │ │ │ │ ├── cloud-setup.md │ │ │ │ ├── docker-setup.md │ │ │ │ ├── environment-variables.md │ │ │ │ ├── kubernetes-setup.md │ │ │ │ └── local-setup.md │ │ ├── style-guides │ │ │ │ ├── api-design-guide.md │ │ │ │ ├── code-style-guide.md │ │ │ │ ├── git-style-guide.md │ │ │ │ ├── security-guidelines.md │ │ │ │ └── ui-ux-guidelines.md │ │ └── testing │ │ ├── e2e-testing-guide.md │ │ ├── integration-testing-guide.md │ │ ├── testing-overview.md │ │ ├── testing-tools.md │ │ └── unit-testing-guide.md ├── generate_structure.js ├── LICENSE ├── modules │ │ ├── access-control │ │ │ │ ├── docker-compose.yml │ │ │ │ ├── Dockerfile │ │ │ │ ├── package.json │ │ │ │ ├── scripts │ │ │ │ │ │ ├── seed-roles.sh │ │ │ │ │ │ └── setup.sh │ │ │ │ ├── src │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ │ ├── policy-rules.json │ │ │ │ │ │ │ │ └── rbac-config.json │ │ │ │ │ │ ├── controllers │ │ │ │ │ │ │ │ ├── permission.controller.js │ │ │ │ │ │ │ │ └── role.controller.js │ │ │ │ │ │ ├── middlewares │ │ │ │ │ │ │ │ ├── audit.middleware.js │ │ │ │ │ │ │ │ ├── permission.middleware.js │ │ │ │ │ │ │ │ └── role.middleware.js │ │ │ │ │ │ ├── models │ │ │ │ │ │ │ │ ├── permission.model.js │ │ │ │ │ │ │ │ ├── role-permission.model.js │ │ │ │ │ │ │ │ └── role.model.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── permission.service.js │ │ │ │ │ │ │ │ ├── policy-validation.service.js │ │ │ │ │ │ │ │ └── role.service.js │ │ │ │ │ │ └── utils │ │ │ │ │ │ ├── audit-logger.js │ │ │ │ │ │ └── policy-simulator.js │ │ │ │ └── tests │ │ │ │ ├── permission.controller.test.js │ │ │ │ ├── permission.middleware.test.js │ │ │ │ ├── permission.service.test.js │ │ │ │ ├── policy-validation.test.js │ │ │ │ ├── role.controller.test.js │ │ │ │ ├── role.middleware.test.js │ │ │ │ └── role.service.test.js │ │ ├── ai-recommendations │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── ai-driven-features │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── AIFeatureAPI.js │ │ │ │ │ │ │ │ ├── AutomatedContentGeneration.js │ │ │ │ │ │ │ │ ├── ChatbotService.js │ │ │ │ │ │ │ │ ├── IntelligentSearch.js │ │ │ │ │ │ │ │ └── PersonalizedContent.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── AIFeatureAPI.test.js │ │ │ │ │ │ ├── AutomatedContentGeneration.test.js │ │ │ │ │ │ ├── ChatbotService.test.js │ │ │ │ │ │ ├── IntelligentSearch.test.js │ │ │ │ │ │ └── PersonalizedContent.test.js │ │ │ │ ├── data-collection │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── DataCleaningService.js │ │ │ │ │ │ │ │ ├── DataIngestion.js │ │ │ │ │ │ │ │ ├── DataPipeline.js │ │ │ │ │ │ │ │ └── FeatureEngineering.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── DataCleaningService.test.js │ │ │ │ │ │ ├── DataIngestion.test.js │ │ │ │ │ │ ├── DataPipeline.test.js │ │ │ │ │ │ └── FeatureEngineering.test.js │ │ │ │ ├── logging-monitoring │ │ │ │ │ │ ├── AILogging.js │ │ │ │ │ │ ├── PerformanceMonitoring.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── AILogging.test.js │ │ │ │ │ │ └── PerformanceMonitoring.test.js │ │ │ │ ├── model-management │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── ModelDeployment.js │ │ │ │ │ │ │ │ ├── ModelDeploymentService.js │ │ │ │ │ │ │ │ ├── ModelMonitoring.js │ │ │ │ │ │ │ │ ├── ModelTraining.js │ │ │ │ │ │ │ │ ├── ModelTrainingPipeline.js │ │ │ │ │ │ │ │ └── ModelVersioning.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── ModelDeployment.test.js │ │ │ │ │ │ ├── ModelDeploymentService.test.js │ │ │ │ │ │ ├── ModelMonitoring.test.js │ │ │ │ │ │ ├── ModelTraining.test.js │ │ │ │ │ │ ├── ModelTrainingPipeline.test.js │ │ │ │ │ │ └── ModelVersioning.test.js │ │ │ │ ├── predictive-analytics │ │ │ │ │ │ ├── models │ │ │ │ │ │ │ │ ├── AnomalyDetection.js │ │ │ │ │ │ │ │ ├── ClassificationModel.js │ │ │ │ │ │ │ │ ├── RegressionModel.js │ │ │ │ │ │ │ │ ├── TimeSeriesAnalysis.js │ │ │ │ │ │ │ │ ├── TrendAnalysis.js │ │ │ │ │ │ │ │ └── UserBehaviorPrediction.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ └── PredictiveAnalyticsAPI.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── AnomalyDetection.test.js │ │ │ │ │ │ ├── ClassificationModel.test.js │ │ │ │ │ │ ├── PredictiveAnalyticsAPI.test.js │ │ │ │ │ │ ├── RegressionModel.test.js │ │ │ │ │ │ ├── TimeSeriesAnalysis.test.js │ │ │ │ │ │ ├── TrendAnalysis.test.js │ │ │ │ │ │ └── UserBehaviorPrediction.test.js │ │ │ │ └── recommendation-engine │ │ │ │ ├── models │ │ │ │ │ │ ├── CollaborativeFiltering.js │ │ │ │ │ │ ├── ContentBasedFiltering.js │ │ │ │ │ │ └── HybridModel.js │ │ │ │ ├── services │ │ │ │ │ │ └── RecommendationAPI.js │ │ │ │ └── tests │ │ │ │ ├── CollaborativeFiltering.test.js │ │ │ │ ├── ContentBasedFiltering.test.js │ │ │ │ ├── HybridModel.test.js │ │ │ │ └── RecommendationAPI.test.js │ │ ├── audit-logs │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── compliance-reporting │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── ComplianceLogFormatter.js │ │ │ │ │ │ │ │ └── ReportingTool.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── ComplianceLogFormatter.test.js │ │ │ │ │ │ └── ReportingTool.test.js │ │ │ │ ├── critical-event-monitoring │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ └── EventLogAPI.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── AlertingSystem.js │ │ │ │ │ │ │ │ ├── EventLogStorage.js │ │ │ │ │ │ │ │ └── EventMonitoringService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── AlertingSystem.test.js │ │ │ │ │ │ ├── EventLogAPI.test.js │ │ │ │ │ │ └── EventMonitoringService.test.js │ │ │ │ └── user-action-logs │ │ │ │ ├── api │ │ │ │ │ │ └── LogRetrievalAPI.js │ │ │ │ ├── services │ │ │ │ │ │ ├── ActionLoggingService.js │ │ │ │ │ │ └── LogStorage.js │ │ │ │ └── tests │ │ │ │ ├── ActionLoggingService.test.js │ │ │ │ └── LogRetrievalAPI.test.js │ │ ├── backend-core │ │ │ │ ├── .env │ │ │ │ ├── docker-compose.yml │ │ │ │ ├── Dockerfile │ │ │ │ ├── jest.setup.js │ │ │ │ ├── package-lock.json │ │ │ │ ├── package.json │ │ │ │ ├── scripts │ │ │ │ │ │ ├── backup-db.sh │ │ │ │ │ │ ├── create-user.sh │ │ │ │ │ │ └── setup-db.sh │ │ │ │ ├── src │ │ │ │ │ │ ├── access-control │ │ │ │ │ │ │ │ ├── access.middleware.js │ │ │ │ │ │ │ │ ├── access.service.js │ │ │ │ │ │ │ │ ├── permissions.js │ │ │ │ │ │ │ │ ├── policy-validation │ │ │ │ │ │ │ │ │ │ ├── policy-simulator.js │ │ │ │ │ │ │ │ │ │ └── tests │ │ │ │ │ │ │ │ │ │ └── policy-validation.test.js │ │ │ │ │ │ │ │ └── rbac.js │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ ├── auth │ │ │ │ │ │ │ │ ├── auth.controller.js │ │ │ │ │ │ │ │ ├── auth.middleware.js │ │ │ │ │ │ │ │ ├── auth.service.js │ │ │ │ │ │ │ │ ├── auth.validation.js │ │ │ │ │ │ │ │ ├── strategies │ │ │ │ │ │ │ │ │ │ ├── jwt.strategy.js │ │ │ │ │ │ │ │ │ │ └── local.strategy.js │ │ │ │ │ │ │ │ └── tests │ │ │ │ │ │ │ │ └── auth.test.js │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ │ ├── db.js │ │ │ │ │ │ │ │ ├── env.js │ │ │ │ │ │ │ │ └── logger.js │ │ │ │ │ │ ├── db │ │ │ │ │ │ │ │ ├── db.config.js │ │ │ │ │ │ │ │ ├── db.service.js │ │ │ │ │ │ │ │ ├── migrations │ │ │ │ │ │ │ │ │ │ └── 001-initial-schema.js │ │ │ │ │ │ │ │ ├── models │ │ │ │ │ │ │ │ │ │ ├── permission.model.js │ │ │ │ │ │ │ │ │ │ ├── role.model.js │ │ │ │ │ │ │ │ │ │ └── user.model.js │ │ │ │ │ │ │ │ ├── seeds │ │ │ │ │ │ │ │ │ │ └── users.seed.js │ │ │ │ │ │ │ │ └── tests │ │ │ │ │ │ │ │ └── db.service.test.js │ │ │ │ │ │ ├── middlewares │ │ │ │ │ │ │ │ ├── async-handler.js │ │ │ │ │ │ │ │ ├── tests │ │ │ │ │ │ │ │ │ │ └── middlewares.test.js │ │ │ │ │ │ │ │ └── validate.js │ │ │ │ │ │ ├── server.js │ │ │ │ │ │ └── utils │ │ │ │ │ │ ├── error-handler.js │ │ │ │ │ │ ├── logger.js │ │ │ │ │ │ ├── rate-limiter.js │ │ │ │ │ │ ├── response.js │ │ │ │ │ │ ├── sanitizer.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ └── utils.test.js │ │ │ │ └── tests │ │ │ │ ├── e2e │ │ │ │ │ │ └── auth-e2e.test.js │ │ │ │ ├── integration │ │ │ │ │ │ └── auth-integration.test.js │ │ │ │ └── setup.js │ │ ├── core-utilities │ │ │ │ ├── docker-compose.yml │ │ │ │ ├── Dockerfile │ │ │ │ ├── package.json │ │ │ │ ├── scripts │ │ │ │ │ │ └── setup.sh │ │ │ │ ├── src │ │ │ │ │ │ ├── error-handling │ │ │ │ │ │ │ │ ├── error-classes.js │ │ │ │ │ │ │ │ ├── error-logger.js │ │ │ │ │ │ │ │ └── error-middleware.js │ │ │ │ │ │ ├── logging │ │ │ │ │ │ │ │ ├── log-config.js │ │ │ │ │ │ │ │ ├── log-transport.js │ │ │ │ │ │ │ │ └── logger.js │ │ │ │ │ │ ├── response-formatting │ │ │ │ │ │ │ │ ├── response-handler.js │ │ │ │ │ │ │ │ └── response-templates.js │ │ │ │ │ │ ├── utils │ │ │ │ │ │ │ │ ├── date-utils.js │ │ │ │ │ │ │ │ ├── encryption-utils.js │ │ │ │ │ │ │ │ ├── general-utils.js │ │ │ │ │ │ │ │ └── string-utils.js │ │ │ │ │ │ └── validation │ │ │ │ │ │ ├── validation-middleware.js │ │ │ │ │ │ ├── validation-schemas.js │ │ │ │ │ │ └── validators │ │ │ │ └── tests │ │ │ │ ├── error-handling.test.js │ │ │ │ ├── logging.test.js │ │ │ │ ├── response-formatting.test.js │ │ │ │ └── validation.test.js │ │ ├── event-bus │ │ │ │ ├── src │ │ │ │ │ │ ├── event-consumers │ │ │ │ │ │ ├── event-producers │ │ │ │ │ │ ├── event-schema │ │ │ │ │ │ └── queue-config.js │ │ │ │ └── tests │ │ │ │ └── event-bus.test.js │ │ ├── file-management │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── file-serving │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── CDNIntegration.js │ │ │ │ │ │ │ │ └── FileServingService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── CDNIntegration.test.js │ │ │ │ │ │ └── FileServingService.test.js │ │ │ │ ├── media-management │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ └── MediaManagementAPI.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── MediaOrganizationService.js │ │ │ │ │ │ │ │ └── MediaRetrievalService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── MediaManagementAPI.test.js │ │ │ │ │ │ ├── MediaOrganizationService.test.js │ │ │ │ │ │ └── MediaRetrievalService.test.js │ │ │ │ ├── metadata-management │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ └── MetadataAPI.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── MetadataRetrievalService.js │ │ │ │ │ │ │ │ └── MetadataStorageService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── MetadataAPI.test.js │ │ │ │ │ │ ├── MetadataRetrievalService.test.js │ │ │ │ │ │ └── MetadataStorageService.test.js │ │ │ │ └── upload-services │ │ │ │ ├── api │ │ │ │ │ │ └── UploadAPI.js │ │ │ │ ├── services │ │ │ │ │ │ ├── FileProcessingService.js │ │ │ │ │ │ └── FileUploadService.js │ │ │ │ └── tests │ │ │ │ ├── FileProcessingService.test.js │ │ │ │ ├── FileUploadService.test.js │ │ │ │ └── UploadAPI.test.js │ │ ├── file-settings-management │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── global-settings │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ └── SettingsManagementAPI.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── FeatureTogglesService.js │ │ │ │ │ │ │ │ └── SettingsStorageService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── FeatureTogglesService.test.js │ │ │ │ │ │ ├── SettingsManagementAPI.test.js │ │ │ │ │ │ └── SettingsStorageService.test.js │ │ │ │ └── user-preferences │ │ │ │ ├── api │ │ │ │ │ │ └── PreferencesManagementAPI.js │ │ │ │ ├── services │ │ │ │ │ │ ├── PreferencesStorageService.js │ │ │ │ │ │ └── PreferenceValidation.js │ │ │ │ └── tests │ │ │ │ ├── PreferencesManagementAPI.test.js │ │ │ │ ├── PreferencesStorageService.test.js │ │ │ │ └── PreferenceValidation.test.js │ │ ├── frontend-themes │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── accessibility-themes │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ └── AccessibilityOptionsService.js │ │ │ │ │ │ ├── tests │ │ │ │ │ │ │ │ ├── AccessibilityOptionsService.test.js │ │ │ │ │ │ │ │ └── HighContrastTheme.test.js │ │ │ │ │ │ └── themes │ │ │ │ │ │ └── HighContrastTheme.js │ │ │ │ ├── custom-themes │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ └── CustomThemeAPI.js │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ └── CustomThemeBuilder.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ └── ThemeStorageService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── CustomThemeAPI.test.js │ │ │ │ │ │ ├── CustomThemeBuilder.test.js │ │ │ │ │ │ └── ThemeStorageService.test.js │ │ │ │ ├── theme-persistence │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── PersistenceService.js │ │ │ │ │ │ │ │ └── SessionManagementService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── PersistenceService.test.js │ │ │ │ │ │ └── SessionManagementService.test.js │ │ │ │ └── theme-switching │ │ │ │ ├── components │ │ │ │ │ │ └── ThemeSelector.js │ │ │ │ ├── services │ │ │ │ │ │ ├── ThemeApplicationService.js │ │ │ │ │ │ └── ThemeConfig.js │ │ │ │ └── tests │ │ │ │ ├── ThemeApplicationService.test.js │ │ │ │ └── ThemeSelector.test.js │ │ ├── future-development │ │ ├── internal-api │ │ │ │ ├── src │ │ │ │ │ │ ├── api-helpers │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ │ └── internal-api-config.json │ │ │ │ │ │ └── service-connectors │ │ │ │ └── tests │ │ │ │ └── internal-api.test.js │ │ ├── notification-module │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── email-alerts │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ └── EmailAPI.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── EmailScheduler.js │ │ │ │ │ │ │ │ ├── EmailService.js │ │ │ │ │ │ │ │ └── TemplateManager.js │ │ │ │ │ │ ├── templates │ │ │ │ │ │ │ │ ├── AlertEmail.html │ │ │ │ │ │ │ │ └── WelcomeEmail.html │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── EmailAPI.test.js │ │ │ │ │ │ ├── EmailService.test.js │ │ │ │ │ │ └── TemplateManager.test.js │ │ │ │ ├── in-app │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ └── NotificationAPI.js │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── NotificationBadge.js │ │ │ │ │ │ │ │ └── NotificationBanner.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── NotificationService.js │ │ │ │ │ │ │ │ └── NotificationStorage.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── NotificationAPI.test.js │ │ │ │ │ │ ├── NotificationService.test.js │ │ │ │ │ │ └── NotificationUI.test.js │ │ │ │ └── push-notifications │ │ │ │ ├── api │ │ │ │ │ │ └── PushNotificationAPI.js │ │ │ │ ├── services │ │ │ │ │ │ ├── PushNotificationService.js │ │ │ │ │ │ └── SubscriptionManager.js │ │ │ │ └── tests │ │ │ │ ├── PushNotificationAPI.test.js │ │ │ │ ├── PushNotificationService.test.js │ │ │ │ └── SubscriptionManager.test.js │ │ ├── order-management │ │ │ │ ├── docker-compose.yml │ │ │ │ ├── Dockerfile │ │ │ │ ├── scripts │ │ │ │ │ │ ├── seed-orders.sh │ │ │ │ │ │ └── setup.sh │ │ │ │ ├── src │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ │ ├── order-config.json │ │ │ │ │ │ │ │ └── payment-config.json │ │ │ │ │ │ ├── controllers │ │ │ │ │ │ │ │ ├── order.controller.js │ │ │ │ │ │ │ │ └── orderStatus.controller.js │ │ │ │ │ │ ├── middlewares │ │ │ │ │ │ │ │ ├── order.middleware.js │ │ │ │ │ │ │ │ └── payment.middleware.js │ │ │ │ │ │ ├── models │ │ │ │ │ │ │ │ ├── order.model.js │ │ │ │ │ │ │ │ └── orderItem.model.js │ │ │ │ │ │ ├── routes │ │ │ │ │ │ │ │ ├── order.routes.js │ │ │ │ │ │ │ │ └── orderStatus.routes.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── order.service.js │ │ │ │ │ │ │ │ ├── orderStatus.service.js │ │ │ │ │ │ │ │ └── payment.service.js │ │ │ │ │ │ └── utils │ │ │ │ │ │ ├── order-tracking.js │ │ │ │ │ │ ├── order-validation.js │ │ │ │ │ │ └── payment-processing.js │ │ │ │ └── tests │ │ │ │ ├── order.controller.test.js │ │ │ │ ├── order.service.test.js │ │ │ │ ├── orderStatus.controller.test.js │ │ │ │ ├── orderStatus.service.test.js │ │ │ │ └── payment.service.test.js │ │ ├── payment-processing │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── invoicing │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── DiscountsService.js │ │ │ │ │ │ │ │ ├── InvoiceGenerationService.js │ │ │ │ │ │ │ │ └── TaxCalculationService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── DiscountsService.test.js │ │ │ │ │ │ ├── InvoiceGenerationService.test.js │ │ │ │ │ │ └── TaxCalculationService.test.js │ │ │ │ ├── payment-gateways │ │ │ │ │ │ ├── custom-provider │ │ │ │ │ │ │ │ ├── CustomPaymentService.js │ │ │ │ │ │ │ │ ├── CustomWebhookHandler.js │ │ │ │ │ │ │ │ └── tests │ │ │ │ │ │ │ │ ├── CustomPaymentService.test.js │ │ │ │ │ │ │ │ └── CustomWebhookHandler.test.js │ │ │ │ │ │ ├── paypal │ │ │ │ │ │ │ │ ├── PayPalService.js │ │ │ │ │ │ │ │ ├── PayPalWebhookHandler.js │ │ │ │ │ │ │ │ └── tests │ │ │ │ │ │ │ │ ├── PayPalService.test.js │ │ │ │ │ │ │ │ └── PayPalWebhookHandler.test.js │ │ │ │ │ │ └── stripe │ │ │ │ │ │ ├── StripeService.js │ │ │ │ │ │ ├── StripeWebhookHandler.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── StripeService.test.js │ │ │ │ │ │ └── StripeWebhookHandler.test.js │ │ │ │ ├── refunds-disputes │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── DisputeResolutionService.js │ │ │ │ │ │ │ │ ├── RefundAuditTrail.js │ │ │ │ │ │ │ │ └── RefundManager.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── DisputeResolutionService.test.js │ │ │ │ │ │ ├── RefundAuditTrail.test.js │ │ │ │ │ │ └── RefundManager.test.js │ │ │ │ ├── security-compliance │ │ │ │ │ │ ├── logging-monitoring │ │ │ │ │ │ │ │ ├── AuditLog.js │ │ │ │ │ │ │ │ └── PCICompliance.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── EncryptionService.js │ │ │ │ │ │ │ │ ├── FraudDetectionService.js │ │ │ │ │ │ │ │ ├── PCIComplianceService.js │ │ │ │ │ │ │ │ └── TokenizationService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── AuditLog.test.js │ │ │ │ │ │ ├── EncryptionService.test.js │ │ │ │ │ │ ├── FraudDetectionService.test.js │ │ │ │ │ │ ├── PCICompliance.test.js │ │ │ │ │ │ ├── PCIComplianceService.test.js │ │ │ │ │ │ └── TokenizationService.test.js │ │ │ │ └── subscription-management │ │ │ │ ├── services │ │ │ │ │ │ ├── BillingCycleManager.js │ │ │ │ │ │ ├── SubscriptionEventsManager.js │ │ │ │ │ │ └── SubscriptionPlansManager.js │ │ │ │ └── tests │ │ │ │ ├── BillingCycleManager.test.js │ │ │ │ ├── SubscriptionEventsManager.test.js │ │ │ │ └── SubscriptionPlansManager.test.js │ │ ├── profile-management │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── profile-crud │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ └── ProfileManagementAPI.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── ProfileService.js │ │ │ │ │ │ │ │ └── ProfileValidation.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── ProfileManagementAPI.test.js │ │ │ │ │ │ ├── ProfileService.test.js │ │ │ │ │ │ └── ProfileValidation.test.js │ │ │ │ ├── profile-pictures │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ └── PictureManagementAPI.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── PictureRetrievalService.js │ │ │ │ │ │ │ │ └── PictureUploadService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── PictureManagementAPI.test.js │ │ │ │ │ │ ├── PictureRetrievalService.test.js │ │ │ │ │ │ └── PictureUploadService.test.js │ │ │ │ └── user-preferences │ │ │ │ ├── api │ │ │ │ │ │ └── PreferencesAPI.js │ │ │ │ ├── services │ │ │ │ │ │ └── PreferencesStorageService.js │ │ │ │ └── tests │ │ │ │ ├── PreferencesAPI.test.js │ │ │ │ └── PreferencesStorageService.test.js │ │ ├── scheduler-reminders │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── calendar-integration │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── CalendarAPI.js │ │ │ │ │ │ │ │ ├── CalendarSyncService.js │ │ │ │ │ │ │ │ ├── EventSynchronization.js │ │ │ │ │ │ │ │ ├── GoogleCalendarIntegration.js │ │ │ │ │ │ │ │ └── iCalIntegration.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── CalendarAPI.test.js │ │ │ │ │ │ ├── CalendarSyncService.test.js │ │ │ │ │ │ ├── EventSynchronization.test.js │ │ │ │ │ │ ├── GoogleCalendarIntegration.test.js │ │ │ │ │ │ └── iCalIntegration.test.js │ │ │ │ ├── logging-monitoring │ │ │ │ │ │ ├── ReminderLogs.js │ │ │ │ │ │ ├── SchedulerLogs.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── ReminderLogs.test.js │ │ │ │ │ │ └── SchedulerLogs.test.js │ │ │ │ ├── notification-channels │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── EmailNotificationService.js │ │ │ │ │ │ │ │ ├── PushNotificationService.js │ │ │ │ │ │ │ │ └── SMSNotificationService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── EmailNotificationService.test.js │ │ │ │ │ │ ├── PushNotificationService.test.js │ │ │ │ │ │ └── SMSNotificationService.test.js │ │ │ │ ├── recurring-events │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── ExceptionHandler.js │ │ │ │ │ │ │ │ ├── RecurringEventManager.js │ │ │ │ │ │ │ │ └── RecurringPatternEngine.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── ExceptionHandler.test.js │ │ │ │ │ │ ├── RecurringEventManager.test.js │ │ │ │ │ │ └── RecurringPatternEngine.test.js │ │ │ │ ├── reminders │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── EmailReminderService.js │ │ │ │ │ │ │ │ ├── InAppReminderService.js │ │ │ │ │ │ │ │ ├── ReminderQueue.js │ │ │ │ │ │ │ │ ├── ReminderService.js │ │ │ │ │ │ │ │ ├── ReminderTemplateManager.js │ │ │ │ │ │ │ │ └── SMSReminderService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── EmailReminderService.test.js │ │ │ │ │ │ ├── InAppReminderService.test.js │ │ │ │ │ │ ├── ReminderQueue.test.js │ │ │ │ │ │ ├── ReminderService.test.js │ │ │ │ │ │ ├── ReminderTemplateManager.test.js │ │ │ │ │ │ └── SMSReminderService.test.js │ │ │ │ └── task-scheduling │ │ │ │ ├── services │ │ │ │ │ │ ├── CronManager.js │ │ │ │ │ │ ├── RecurringTaskManager.js │ │ │ │ │ │ ├── TaskSchedulerService.js │ │ │ │ │ │ ├── TimeZoneConverter.js │ │ │ │ │ │ └── TimeZoneManager.js │ │ │ │ └── tests │ │ │ │ ├── CronManager.test.js │ │ │ │ ├── RecurringTaskManager.test.js │ │ │ │ ├── TaskSchedulerService.test.js │ │ │ │ ├── TimeZoneConverter.test.js │ │ │ │ └── TimeZoneManager.test.js │ │ ├── search │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── autocomplete │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── AutocompleteEngine.js │ │ │ │ │ │ │ │ └── SuggestionService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── AutocompleteEngine.test.js │ │ │ │ │ │ └── SuggestionService.test.js │ │ │ │ ├── faceted-search │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── FacetAggregationEngine.js │ │ │ │ │ │ │ │ ├── FacetBuilder.js │ │ │ │ │ │ │ │ ├── FacetedQueryBuilder.js │ │ │ │ │ │ │ │ └── FilterManager.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── FacetAggregationEngine.test.js │ │ │ │ │ │ ├── FacetBuilder.test.js │ │ │ │ │ │ ├── FacetedQueryBuilder.test.js │ │ │ │ │ │ └── FilterManager.test.js │ │ │ │ ├── indexing │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── DataMapper.js │ │ │ │ │ │ │ │ ├── DataPipeline.js │ │ │ │ │ │ │ │ ├── IncrementalIndexing.js │ │ │ │ │ │ │ │ ├── IndexManager.js │ │ │ │ │ │ │ │ ├── IndexScheduler.js │ │ │ │ │ │ │ │ └── IndexStorage.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── DataMapper.test.js │ │ │ │ │ │ ├── DataPipeline.test.js │ │ │ │ │ │ ├── IncrementalIndexing.test.js │ │ │ │ │ │ ├── IndexManager.test.js │ │ │ │ │ │ ├── IndexScheduler.test.js │ │ │ │ │ │ └── IndexStorage.test.js │ │ │ │ ├── logging-monitoring │ │ │ │ │ │ ├── PerformanceMonitor.js │ │ │ │ │ │ ├── SearchLogs.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── PerformanceMonitor.test.js │ │ │ │ │ │ └── SearchLogs.test.js │ │ │ │ ├── ranking │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── PersonalizationEngine.js │ │ │ │ │ │ │ │ └── RankingAlgorithm.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── PersonalizationEngine.test.js │ │ │ │ │ │ └── RankingAlgorithm.test.js │ │ │ │ ├── search-api │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── RateLimiter.js │ │ │ │ │ │ │ │ └── SearchAPIGateway.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── RateLimiter.test.js │ │ │ │ │ │ └── SearchAPIGateway.test.js │ │ │ │ └── search-engine │ │ │ │ ├── services │ │ │ │ │ │ ├── ElasticsearchService.js │ │ │ │ │ │ ├── RelevanceRankingEngine.js │ │ │ │ │ │ ├── SearchIndexer.js │ │ │ │ │ │ ├── SearchQueryBuilder.js │ │ │ │ │ │ ├── SearchQueryProcessor.js │ │ │ │ │ │ └── SearchResultFormatter.js │ │ │ │ └── tests │ │ │ │ ├── ElasticsearchService.test.js │ │ │ │ ├── RelevanceRankingEngine.test.js │ │ │ │ ├── SearchIndexer.test.js │ │ │ │ ├── SearchQueryBuilder.test.js │ │ │ │ ├── SearchQueryProcessor.test.js │ │ │ │ └── SearchResultFormatter.test.js │ │ ├── settings-management │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── global-settings │ │ │ │ │ │ ├── api │ │ │ │ │ │ │ │ └── SettingsManagementAPI.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── FeatureTogglesService.js │ │ │ │ │ │ │ │ └── SettingsStorageService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── FeatureTogglesService.test.js │ │ │ │ │ │ ├── SettingsManagementAPI.test.js │ │ │ │ │ │ └── SettingsStorageService.test.js │ │ │ │ └── user-preferences │ │ │ │ ├── api │ │ │ │ │ │ └── PreferencesManagementAPI.js │ │ │ │ ├── services │ │ │ │ │ │ ├── PreferencesStorageService.js │ │ │ │ │ │ └── PreferenceValidation.js │ │ │ │ └── tests │ │ │ │ ├── PreferencesManagementAPI.test.js │ │ │ │ ├── PreferencesStorageService.test.js │ │ │ │ └── PreferenceValidation.test.js │ │ ├── sreporting-analytics │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── data-collection │ │ │ │ │ │ ├── event-logging │ │ │ │ │ │ │ │ ├── APMIntegration.js │ │ │ │ │ │ │ │ ├── EventLogger.js │ │ │ │ │ │ │ │ └── UserInteractionTracker.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── DataAggregationService.js │ │ │ │ │ │ │ │ ├── EventTrackingService.js │ │ │ │ │ │ │ │ └── LogCollectionService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── APMIntegration.test.js │ │ │ │ │ │ ├── DataAggregationService.test.js │ │ │ │ │ │ ├── EventLogger.test.js │ │ │ │ │ │ ├── EventTrackingService.test.js │ │ │ │ │ │ ├── LogCollectionService.test.js │ │ │ │ │ │ └── UserInteractionTracker.test.js │ │ │ │ ├── data-processing │ │ │ │ │ │ ├── etl-pipeline │ │ │ │ │ │ │ │ ├── DataAggregator.js │ │ │ │ │ │ │ │ ├── ExtractService.js │ │ │ │ │ │ │ │ ├── LoadService.js │ │ │ │ │ │ │ │ └── TransformService.js │ │ │ │ │ │ ├── pipelines │ │ │ │ │ │ │ │ ├── BatchProcessingPipeline.js │ │ │ │ │ │ │ │ └── StreamProcessingPipeline.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ └── DataTransformationService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── BatchProcessingPipeline.test.js │ │ │ │ │ │ ├── DataAggregator.test.js │ │ │ │ │ │ ├── DataTransformationService.test.js │ │ │ │ │ │ ├── ExtractService.test.js │ │ │ │ │ │ ├── LoadService.test.js │ │ │ │ │ │ ├── StreamProcessingPipeline.test.js │ │ │ │ │ │ └── TransformService.test.js │ │ │ │ ├── data-storage │ │ │ │ │ │ ├── data-warehouse │ │ │ │ │ │ │ │ ├── BigQueryConfig.js │ │ │ │ │ │ │ │ ├── DatabaseOptimization.js │ │ │ │ │ │ │ │ └── RedshiftConfig.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── BigQueryConfig.test.js │ │ │ │ │ │ ├── DatabaseOptimization.test.js │ │ │ │ │ │ └── RedshiftConfig.test.js │ │ │ │ ├── real-time-analytics │ │ │ │ │ │ ├── tests │ │ │ │ │ │ │ │ ├── AlertsNotifications.test.js │ │ │ │ │ │ │ │ └── LiveDataWidget.test.js │ │ │ │ │ │ └── widgets │ │ │ │ │ │ ├── AlertsNotifications.js │ │ │ │ │ │ └── LiveDataWidget.js │ │ │ │ ├── reporting │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── CSVExport.js │ │ │ │ │ │ │ │ ├── ExcelExport.js │ │ │ │ │ │ │ │ ├── ExportService.js │ │ │ │ │ │ │ │ ├── PDFExport.js │ │ │ │ │ │ │ │ ├── ReportGenerationService.js │ │ │ │ │ │ │ │ └── ScheduledReportingService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── CSVExport.test.js │ │ │ │ │ │ ├── ExcelExport.test.js │ │ │ │ │ │ ├── ExportService.test.js │ │ │ │ │ │ ├── PDFExport.test.js │ │ │ │ │ │ ├── ReportGenerationService.test.js │ │ │ │ │ │ └── ScheduledReportingService.test.js │ │ │ │ └── visualization-tools │ │ │ │ ├── components │ │ │ │ │ │ ├── CustomVisualizationTool.js │ │ │ │ │ │ ├── DashboardFramework.js │ │ │ │ │ │ └── PreBuiltDashboards.js │ │ │ │ ├── dashboards │ │ │ │ │ │ ├── CustomVisualization.js │ │ │ │ │ │ ├── GrafanaDashboard.js │ │ │ │ │ │ └── TableauDashboard.js │ │ │ │ └── tests │ │ │ │ ├── CustomVisualizationTool.test.js │ │ │ │ ├── DashboardFramework.test.js │ │ │ │ ├── GrafanaDashboard.test.js │ │ │ │ ├── PreBuiltDashboards.test.js │ │ │ │ └── TableauDashboard.test.js │ │ ├── testing-module │ │ │ │ ├── package.json │ │ │ │ ├── setup │ │ │ │ │ │ ├── jest.setup.js │ │ │ │ │ │ ├── test-config.js │ │ │ │ │ │ └── test-env-setup.sh │ │ │ │ └── src │ │ │ │ ├── e2e-tests │ │ │ │ │ │ ├── cross-browser │ │ │ │ │ │ │ │ ├── ChromeTests.test.js │ │ │ │ │ │ │ │ └── FirefoxTests.test.js │ │ │ │ │ │ ├── performance │ │ │ │ │ │ │ │ ├── LoadTesting.test.js │ │ │ │ │ │ │ │ └── StressTesting.test.js │ │ │ │ │ │ └── user-workflows │ │ │ │ │ │ ├── LoginWorkflow.test.js │ │ │ │ │ │ └── OrderPlacement.test.js │ │ │ │ ├── integration-tests │ │ │ │ │ │ ├── api-integration │ │ │ │ │ │ │ │ ├── AuthAPI.test.js │ │ │ │ │ │ │ │ └── UserAPI.test.js │ │ │ │ │ │ ├── db-integration │ │ │ │ │ │ │ │ ├── OrderDBIntegration.test.js │ │ │ │ │ │ │ │ └── UserDBIntegration.test.js │ │ │ │ │ │ └── module-integration │ │ │ │ │ │ └── UserAccessControl.test.js │ │ │ │ ├── mocks │ │ │ │ │ │ ├── mockData.js │ │ │ │ │ │ └── mockServices.js │ │ │ │ ├── test-utils │ │ │ │ │ │ ├── mockAPIClient.js │ │ │ │ │ │ ├── renderWithProviders.js │ │ │ │ │ │ └── testHelpers.js │ │ │ │ └── unit-tests │ │ │ │ ├── components │ │ │ │ │ │ ├── UserList.test.js │ │ │ │ │ │ └── UserProfile.test.js │ │ │ │ ├── helpers │ │ │ │ │ │ ├── dateUtils.test.js │ │ │ │ │ │ └── stringUtils.test.js │ │ │ │ └── services │ │ │ │ ├── AuthService.test.js │ │ │ │ └── UserService.test.js │ │ ├── third-party-integrations │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ ├── api-integrations │ │ │ │ │ │ ├── clients │ │ │ │ │ │ │ │ ├── APIClient.js │ │ │ │ │ │ │ │ └── OAuth2Client.js │ │ │ │ │ │ ├── connectors │ │ │ │ │ │ │ │ ├── GoogleAPIConnector.js │ │ │ │ │ │ │ │ ├── SalesforceConnector.js │ │ │ │ │ │ │ │ └── StripeConnector.js │ │ │ │ │ │ ├── integrations │ │ │ │ │ │ │ │ ├── CRMIntegration.js │ │ │ │ │ │ │ │ ├── ERPIntegration.js │ │ │ │ │ │ │ │ └── PaymentGatewayIntegration.js │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── APIErrorHandler.js │ │ │ │ │ │ │ │ ├── AuthenticationManager.js │ │ │ │ │ │ │ │ └── DataMapper.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── APIClient.test.js │ │ │ │ │ │ ├── APIErrorHandler.test.js │ │ │ │ │ │ ├── AuthenticationManager.test.js │ │ │ │ │ │ ├── CRMIntegration.test.js │ │ │ │ │ │ ├── DataMapper.test.js │ │ │ │ │ │ ├── ERPIntegration.test.js │ │ │ │ │ │ ├── GoogleAPIConnector.test.js │ │ │ │ │ │ ├── OAuth2Client.test.js │ │ │ │ │ │ ├── PaymentGatewayIntegration.test.js │ │ │ │ │ │ ├── SalesforceConnector.test.js │ │ │ │ │ │ └── StripeConnector.test.js │ │ │ │ ├── authentication │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── APIKeyManager.js │ │ │ │ │ │ │ │ └── OAuth2Integration.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── APIKeyManager.test.js │ │ │ │ │ │ └── OAuth2Integration.test.js │ │ │ │ ├── data-synchronization │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ │ ├── BatchSync.js │ │ │ │ │ │ │ │ ├── BatchSyncService.js │ │ │ │ │ │ │ │ ├── ConflictResolution.js │ │ │ │ │ │ │ │ ├── ConflictResolver.js │ │ │ │ │ │ │ │ ├── RealTimeSync.js │ │ │ │ │ │ │ │ └── RealTimeSyncService.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── BatchSync.test.js │ │ │ │ │ │ ├── BatchSyncService.test.js │ │ │ │ │ │ ├── ConflictResolution.test.js │ │ │ │ │ │ ├── ConflictResolver.test.js │ │ │ │ │ │ ├── RealTimeSync.test.js │ │ │ │ │ │ └── RealTimeSyncService.test.js │ │ │ │ ├── service-management │ │ │ │ │ │ ├── ServiceConfigManager.js │ │ │ │ │ │ ├── ServiceHealthMonitor.js │ │ │ │ │ │ ├── ServiceVersionManager.js │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── ServiceConfigManager.test.js │ │ │ │ │ │ ├── ServiceHealthMonitor.test.js │ │ │ │ │ │ └── ServiceVersionManager.test.js │ │ │ │ └── webhooks │ │ │ │ ├── listener │ │ │ │ │ │ └── WebhookListener.js │ │ │ │ ├── management │ │ │ │ │ │ ├── WebhookManager.js │ │ │ │ │ │ └── WebhookRetryService.js │ │ │ │ ├── services │ │ │ │ │ │ ├── EventProcessor.js │ │ │ │ │ │ └── WebhookSecurity.js │ │ │ │ └── tests │ │ │ │ ├── EventProcessor.test.js │ │ │ │ ├── WebhookListener.test.js │ │ │ │ ├── WebhookManager.test.js │ │ │ │ ├── WebhookRetryService.test.js │ │ │ │ └── WebhookSecurity.test.js │ │ └── user-management │ │ ├── docker-compose.yml │ │ ├── Dockerfile │ │ ├── scripts │ │ │ │ ├── seed-users.sh │ │ │ │ └── setup.sh │ │ ├── src │ │ │ │ ├── config │ │ │ │ │ │ ├── auth-config.json │ │ │ │ │ │ └── user-config.json │ │ │ │ ├── controllers │ │ │ │ │ │ ├── auth.controller.js │ │ │ │ │ │ └── user.controller.js │ │ │ │ ├── middlewares │ │ │ │ │ │ ├── auth.middleware.js │ │ │ │ │ │ └── role.middleware.js │ │ │ │ ├── models │ │ │ │ │ │ ├── role.model.js │ │ │ │ │ │ └── user.model.js │ │ │ │ ├── routes │ │ │ │ │ │ ├── auth.routes.js │ │ │ │ │ │ └── user.routes.js │ │ │ │ ├── services │ │ │ │ │ │ ├── auth.service.js │ │ │ │ │ │ ├── password.service.js │ │ │ │ │ │ ├── role.service.js │ │ │ │ │ │ └── user.service.js │ │ │ │ └── utils │ │ │ │ ├── password-encryption.js │ │ │ │ └── token-manager.js │ │ └── tests │ │ ├── auth.controller.test.js │ │ ├── auth.service.test.js │ │ ├── role.service.test.js │ │ ├── user.controller.test.js │ │ └── user.service.test.js └── utils └── create_full_structure.sh