├── 01-what_is_rag └── 3-implement_rag_pgvector │ ├── .gitignore │ ├── README.md │ ├── compose.yml │ ├── databases │ ├── 0-enable-pgvector.sql │ └── 1-mooc.sql │ ├── eslint.config.mjs │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ └── app │ │ ├── PostgresConnection.ts │ │ └── scripts │ │ ├── courses.json │ │ ├── create-courses.ts │ │ └── search-courses.ts │ └── tsconfig.json ├── 02-embedding └── 3-add_rag_existing_application │ ├── .github │ └── workflows │ │ └── ci.yml │ ├── .gitignore │ ├── README.md │ ├── compose.yml │ ├── databases │ ├── 0-enable-pgvector.sql │ └── 1-mooc.sql │ ├── eslint.config.mjs │ ├── etc │ └── request │ │ └── mooc │ │ └── course_progress.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── next.svg │ └── vercel.svg │ ├── src │ ├── app │ │ ├── api │ │ │ └── mooc │ │ │ │ ├── course-progress │ │ │ │ └── route.ts │ │ │ │ └── users │ │ │ │ └── [user-id] │ │ │ │ └── route.ts │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── layout.tsx │ │ └── scripts │ │ │ ├── courses.json │ │ │ ├── create-courses.ts │ │ │ └── search-courses.ts │ └── contexts │ │ ├── mooc │ │ ├── courses │ │ │ ├── application │ │ │ │ └── search-by-ids │ │ │ │ │ └── CoursesByIdsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── Course.ts │ │ │ │ ├── CourseId.ts │ │ │ │ └── CourseRepository.ts │ │ │ └── infrastructure │ │ │ │ └── PostgresCourseRepository.ts │ │ ├── user-course-progress │ │ │ ├── application │ │ │ │ └── complete │ │ │ │ │ └── UserCourseProgressCompleter.ts │ │ │ └── domain │ │ │ │ └── UserCourseProgressCompletedDomainEvent.ts │ │ ├── user-course-suggestions │ │ │ ├── application │ │ │ │ ├── generate │ │ │ │ │ ├── GenerateUserCourseSuggestionsOnUserCourseProgressCompleted.ts │ │ │ │ │ └── UserCourseSuggestionsGenerator.ts │ │ │ │ └── search │ │ │ │ │ └── UserCourseSuggestionsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── CourseSuggestion.ts │ │ │ │ ├── CourseSuggestionsGenerator.ts │ │ │ │ ├── UserCourseSuggestions.ts │ │ │ │ ├── UserCourseSuggestionsGeneratedDomainEvent.ts │ │ │ │ └── UserCourseSuggestionsRepository.ts │ │ │ └── infrastructure │ │ │ │ ├── OllamaLlama31CourseSuggestionsGenerator.ts │ │ │ │ └── PostgresUserCourseSuggestionsRepository.ts │ │ └── users │ │ │ ├── application │ │ │ ├── find │ │ │ │ └── UserFinder.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.ts │ │ │ └── update-course-suggestions │ │ │ │ ├── UpdateUserCourseSuggestionsOnUserCourseSuggestionsGenerated.ts │ │ │ │ └── UserCourseSuggestionsUpdater.ts │ │ │ ├── domain │ │ │ ├── CoursesSuggestionLlm.ts │ │ │ ├── DomainUserFinder.ts │ │ │ ├── User.ts │ │ │ ├── UserDoesNotExistError.ts │ │ │ ├── UserDomainEvent.ts │ │ │ ├── UserEmail.ts │ │ │ ├── UserId.ts │ │ │ ├── UserName.ts │ │ │ ├── UserProfilePicture.ts │ │ │ ├── UserRegisteredDomainEvent.ts │ │ │ ├── UserRepository.ts │ │ │ └── UserStatus.ts │ │ │ └── infrastructure │ │ │ ├── InMemoryCacheUserRepository.ts │ │ │ └── PostgresUserRepository.ts │ │ └── shared │ │ ├── domain │ │ ├── AggregateRoot.ts │ │ ├── Clock.ts │ │ ├── DomainError.ts │ │ ├── EmailAddress.ts │ │ ├── Identifier.ts │ │ ├── NanoId.ts │ │ ├── NumberValueObject.ts │ │ ├── StringValueObject.ts │ │ └── event │ │ │ ├── DomainEvent.ts │ │ │ ├── DomainEventClass.ts │ │ │ ├── DomainEventSubscriber.ts │ │ │ └── EventBus.ts │ │ └── infrastructure │ │ ├── dependency-injection │ │ └── diod.config.ts │ │ ├── domain-event │ │ └── InMemoryEventBus.ts │ │ ├── http │ │ ├── HttpNextResponse.ts │ │ └── executeWithErrorHandling.ts │ │ └── postgres │ │ ├── PostgresConnection.ts │ │ └── PostgresRepository.ts │ ├── tests │ └── contexts │ │ ├── mooc │ │ ├── courses-progress │ │ │ └── domain │ │ │ │ └── CourseProgressFinishedDomainEventMother.ts │ │ ├── user-course-suggestions │ │ │ ├── domain │ │ │ │ ├── CourseSuggestionMother.ts │ │ │ │ └── UserCourseSuggestionsMother.ts │ │ │ └── infrastructure │ │ │ │ ├── OllamaMistralCourseSuggestionsGenerator.test.ts │ │ │ │ └── OpenAIChatGPT35CourseSuggestionsGenerator.ci.test │ │ └── users │ │ │ ├── application │ │ │ └── registrar │ │ │ │ └── UserRegistrar.test.ts │ │ │ ├── domain │ │ │ ├── DateMother.ts │ │ │ ├── UserEmailMother.ts │ │ │ ├── UserIdMother.ts │ │ │ ├── UserMother.ts │ │ │ ├── UserNameMother.ts │ │ │ ├── UserProfilePictureMother.ts │ │ │ └── UserRegisteredDomainEventMother.ts │ │ │ └── infrastructure │ │ │ ├── MockCoursesSuggestionLlm.ts │ │ │ ├── MockUserRepository.ts │ │ │ └── PostgresUserRepository.test.ts │ │ └── shared │ │ ├── domain │ │ ├── EmailAddressMother.ts │ │ └── EnumMother.ts │ │ └── infrastructure │ │ ├── MockClock.ts │ │ └── MockEventBus.ts │ └── tsconfig.json ├── 03-add_rag ├── 1-what_to_store_embedding │ ├── .gitignore │ ├── README.md │ ├── compose.yml │ ├── databases │ │ ├── 0-enable-pgvector.sql │ │ └── 1-mooc.sql │ ├── eslint.config.mjs │ ├── etc │ │ └── search-courses-by-ids.sh │ ├── package-lock.json │ ├── package.json │ ├── src │ │ └── app │ │ │ ├── PostgresConnection.ts │ │ │ └── scripts │ │ │ ├── courses.json │ │ │ ├── create-courses.ts │ │ │ ├── search-courses-by-ids-documents.ts │ │ │ ├── search-courses-by-ids.ts │ │ │ └── search-courses.ts │ └── tsconfig.json ├── 2-add_embedding_context │ ├── .github │ │ └── workflows │ │ │ └── ci.yml │ ├── .gitignore │ ├── README.md │ ├── compose.yml │ ├── databases │ │ ├── 0-enable-pgvector.sql │ │ └── 1-mooc.sql │ ├── eslint.config.mjs │ ├── etc │ │ └── request │ │ │ └── mooc │ │ │ └── course_progress.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── next.svg │ │ └── vercel.svg │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ └── mooc │ │ │ │ │ ├── course-progress │ │ │ │ │ └── route.ts │ │ │ │ │ └── users │ │ │ │ │ └── [user-id] │ │ │ │ │ └── route.ts │ │ │ ├── favicon.ico │ │ │ ├── globals.css │ │ │ ├── layout.tsx │ │ │ └── scripts │ │ │ │ ├── courses.json │ │ │ │ ├── create-courses.ts │ │ │ │ └── search-courses.ts │ │ └── contexts │ │ │ ├── mooc │ │ │ ├── courses │ │ │ │ ├── application │ │ │ │ │ └── search-by-ids │ │ │ │ │ │ └── CoursesByIdsSearcher.ts │ │ │ │ ├── domain │ │ │ │ │ ├── Course.ts │ │ │ │ │ ├── CourseId.ts │ │ │ │ │ └── CourseRepository.ts │ │ │ │ └── infrastructure │ │ │ │ │ └── PostgresCourseRepository.ts │ │ │ ├── user-course-progress │ │ │ │ ├── application │ │ │ │ │ └── complete │ │ │ │ │ │ └── UserCourseProgressCompleter.ts │ │ │ │ └── domain │ │ │ │ │ └── UserCourseProgressCompletedDomainEvent.ts │ │ │ ├── user-course-suggestions │ │ │ │ ├── application │ │ │ │ │ ├── generate │ │ │ │ │ │ ├── GenerateUserCourseSuggestionsOnUserCourseProgressCompleted.ts │ │ │ │ │ │ └── UserCourseSuggestionsGenerator.ts │ │ │ │ │ └── search │ │ │ │ │ │ └── UserCourseSuggestionsSearcher.ts │ │ │ │ ├── domain │ │ │ │ │ ├── CourseSuggestion.ts │ │ │ │ │ ├── CourseSuggestionsGenerator.ts │ │ │ │ │ ├── UserCourseSuggestions.ts │ │ │ │ │ ├── UserCourseSuggestionsGeneratedDomainEvent.ts │ │ │ │ │ └── UserCourseSuggestionsRepository.ts │ │ │ │ └── infrastructure │ │ │ │ │ ├── OllamaLlama31CourseSuggestionsGenerator.ts │ │ │ │ │ └── PostgresUserCourseSuggestionsRepository.ts │ │ │ └── users │ │ │ │ ├── application │ │ │ │ ├── find │ │ │ │ │ └── UserFinder.ts │ │ │ │ ├── registrar │ │ │ │ │ └── UserRegistrar.ts │ │ │ │ └── update-course-suggestions │ │ │ │ │ ├── UpdateUserCourseSuggestionsOnUserCourseSuggestionsGenerated.ts │ │ │ │ │ └── UserCourseSuggestionsUpdater.ts │ │ │ │ ├── domain │ │ │ │ ├── CoursesSuggestionLlm.ts │ │ │ │ ├── DomainUserFinder.ts │ │ │ │ ├── User.ts │ │ │ │ ├── UserDoesNotExistError.ts │ │ │ │ ├── UserDomainEvent.ts │ │ │ │ ├── UserEmail.ts │ │ │ │ ├── UserId.ts │ │ │ │ ├── UserName.ts │ │ │ │ ├── UserProfilePicture.ts │ │ │ │ ├── UserRegisteredDomainEvent.ts │ │ │ │ ├── UserRepository.ts │ │ │ │ └── UserStatus.ts │ │ │ │ └── infrastructure │ │ │ │ ├── InMemoryCacheUserRepository.ts │ │ │ │ └── PostgresUserRepository.ts │ │ │ └── shared │ │ │ ├── domain │ │ │ ├── AggregateRoot.ts │ │ │ ├── Clock.ts │ │ │ ├── DomainError.ts │ │ │ ├── EmailAddress.ts │ │ │ ├── Identifier.ts │ │ │ ├── NanoId.ts │ │ │ ├── NumberValueObject.ts │ │ │ ├── StringValueObject.ts │ │ │ └── event │ │ │ │ ├── DomainEvent.ts │ │ │ │ ├── DomainEventClass.ts │ │ │ │ ├── DomainEventSubscriber.ts │ │ │ │ └── EventBus.ts │ │ │ └── infrastructure │ │ │ ├── dependency-injection │ │ │ └── diod.config.ts │ │ │ ├── domain-event │ │ │ └── InMemoryEventBus.ts │ │ │ ├── http │ │ │ ├── HttpNextResponse.ts │ │ │ └── executeWithErrorHandling.ts │ │ │ └── postgres │ │ │ ├── PostgresConnection.ts │ │ │ └── PostgresRepository.ts │ ├── tests │ │ └── contexts │ │ │ ├── mooc │ │ │ ├── courses-progress │ │ │ │ └── domain │ │ │ │ │ └── CourseProgressFinishedDomainEventMother.ts │ │ │ ├── user-course-suggestions │ │ │ │ ├── domain │ │ │ │ │ ├── CourseSuggestionMother.ts │ │ │ │ │ └── UserCourseSuggestionsMother.ts │ │ │ │ └── infrastructure │ │ │ │ │ ├── OllamaMistralCourseSuggestionsGenerator.test.ts │ │ │ │ │ └── OpenAIChatGPT35CourseSuggestionsGenerator.ci.test │ │ │ └── users │ │ │ │ ├── application │ │ │ │ └── registrar │ │ │ │ │ └── UserRegistrar.test.ts │ │ │ │ ├── domain │ │ │ │ ├── DateMother.ts │ │ │ │ ├── UserEmailMother.ts │ │ │ │ ├── UserIdMother.ts │ │ │ │ ├── UserMother.ts │ │ │ │ ├── UserNameMother.ts │ │ │ │ ├── UserProfilePictureMother.ts │ │ │ │ └── UserRegisteredDomainEventMother.ts │ │ │ │ └── infrastructure │ │ │ │ ├── MockCoursesSuggestionLlm.ts │ │ │ │ ├── MockUserRepository.ts │ │ │ │ └── PostgresUserRepository.test.ts │ │ │ └── shared │ │ │ ├── domain │ │ │ ├── EmailAddressMother.ts │ │ │ └── EnumMother.ts │ │ │ └── infrastructure │ │ │ ├── MockClock.ts │ │ │ └── MockEventBus.ts │ └── tsconfig.json └── 3-rag_sort_by_recent │ ├── .github │ └── workflows │ │ └── ci.yml │ ├── .gitignore │ ├── README.md │ ├── compose.yml │ ├── databases │ ├── 0-enable-pgvector.sql │ └── 1-mooc.sql │ ├── eslint.config.mjs │ ├── etc │ └── request │ │ └── mooc │ │ └── course_progress.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── next.svg │ └── vercel.svg │ ├── src │ ├── app │ │ ├── api │ │ │ └── mooc │ │ │ │ ├── course-progress │ │ │ │ └── route.ts │ │ │ │ └── users │ │ │ │ └── [user-id] │ │ │ │ └── route.ts │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── layout.tsx │ │ └── scripts │ │ │ ├── courses.json │ │ │ ├── create-courses.ts │ │ │ └── search-courses.ts │ └── contexts │ │ ├── mooc │ │ ├── courses │ │ │ ├── application │ │ │ │ └── search-by-ids │ │ │ │ │ └── CoursesByIdsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── Course.ts │ │ │ │ ├── CourseId.ts │ │ │ │ └── CourseRepository.ts │ │ │ └── infrastructure │ │ │ │ └── PostgresCourseRepository.ts │ │ ├── user-course-progress │ │ │ ├── application │ │ │ │ └── complete │ │ │ │ │ └── UserCourseProgressCompleter.ts │ │ │ └── domain │ │ │ │ └── UserCourseProgressCompletedDomainEvent.ts │ │ ├── user-course-suggestions │ │ │ ├── application │ │ │ │ ├── generate │ │ │ │ │ ├── GenerateUserCourseSuggestionsOnUserCourseProgressCompleted.ts │ │ │ │ │ └── UserCourseSuggestionsGenerator.ts │ │ │ │ └── search │ │ │ │ │ └── UserCourseSuggestionsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── CourseSuggestion.ts │ │ │ │ ├── CourseSuggestionsGenerator.ts │ │ │ │ ├── UserCourseSuggestions.ts │ │ │ │ ├── UserCourseSuggestionsGeneratedDomainEvent.ts │ │ │ │ └── UserCourseSuggestionsRepository.ts │ │ │ └── infrastructure │ │ │ │ ├── OllamaLlama31CourseSuggestionsGenerator.ts │ │ │ │ └── PostgresUserCourseSuggestionsRepository.ts │ │ └── users │ │ │ ├── application │ │ │ ├── find │ │ │ │ └── UserFinder.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.ts │ │ │ └── update-course-suggestions │ │ │ │ ├── UpdateUserCourseSuggestionsOnUserCourseSuggestionsGenerated.ts │ │ │ │ └── UserCourseSuggestionsUpdater.ts │ │ │ ├── domain │ │ │ ├── CoursesSuggestionLlm.ts │ │ │ ├── DomainUserFinder.ts │ │ │ ├── User.ts │ │ │ ├── UserDoesNotExistError.ts │ │ │ ├── UserDomainEvent.ts │ │ │ ├── UserEmail.ts │ │ │ ├── UserId.ts │ │ │ ├── UserName.ts │ │ │ ├── UserProfilePicture.ts │ │ │ ├── UserRegisteredDomainEvent.ts │ │ │ ├── UserRepository.ts │ │ │ └── UserStatus.ts │ │ │ └── infrastructure │ │ │ ├── InMemoryCacheUserRepository.ts │ │ │ └── PostgresUserRepository.ts │ │ └── shared │ │ ├── domain │ │ ├── AggregateRoot.ts │ │ ├── Clock.ts │ │ ├── DomainError.ts │ │ ├── EmailAddress.ts │ │ ├── Identifier.ts │ │ ├── NanoId.ts │ │ ├── NumberValueObject.ts │ │ ├── StringValueObject.ts │ │ └── event │ │ │ ├── DomainEvent.ts │ │ │ ├── DomainEventClass.ts │ │ │ ├── DomainEventSubscriber.ts │ │ │ └── EventBus.ts │ │ └── infrastructure │ │ ├── dependency-injection │ │ └── diod.config.ts │ │ ├── domain-event │ │ └── InMemoryEventBus.ts │ │ ├── http │ │ ├── HttpNextResponse.ts │ │ └── executeWithErrorHandling.ts │ │ └── postgres │ │ ├── PostgresConnection.ts │ │ └── PostgresRepository.ts │ ├── tests │ └── contexts │ │ ├── mooc │ │ ├── courses-progress │ │ │ └── domain │ │ │ │ └── CourseProgressFinishedDomainEventMother.ts │ │ ├── user-course-suggestions │ │ │ ├── domain │ │ │ │ ├── CourseSuggestionMother.ts │ │ │ │ └── UserCourseSuggestionsMother.ts │ │ │ └── infrastructure │ │ │ │ ├── OllamaMistralCourseSuggestionsGenerator.test.ts │ │ │ │ └── OpenAIChatGPT35CourseSuggestionsGenerator.ci.test │ │ └── users │ │ │ ├── application │ │ │ └── registrar │ │ │ │ └── UserRegistrar.test.ts │ │ │ ├── domain │ │ │ ├── DateMother.ts │ │ │ ├── UserEmailMother.ts │ │ │ ├── UserIdMother.ts │ │ │ ├── UserMother.ts │ │ │ ├── UserNameMother.ts │ │ │ ├── UserProfilePictureMother.ts │ │ │ └── UserRegisteredDomainEventMother.ts │ │ │ └── infrastructure │ │ │ ├── MockCoursesSuggestionLlm.ts │ │ │ ├── MockUserRepository.ts │ │ │ └── PostgresUserRepository.test.ts │ │ └── shared │ │ ├── domain │ │ ├── EmailAddressMother.ts │ │ └── EnumMother.ts │ │ └── infrastructure │ │ ├── MockClock.ts │ │ └── MockEventBus.ts │ └── tsconfig.json ├── 04-what_db_to_choose ├── 1-pgai │ ├── 1-simple_example │ │ ├── .gitignore │ │ ├── README.md │ │ ├── compose.yml │ │ ├── databases │ │ │ ├── 0-enable-pgai.sql │ │ │ ├── 1-mooc.sql │ │ │ └── 2-add_vectorizer_to_courses.sql │ │ ├── eslint.config.mjs │ │ ├── etc │ │ │ ├── 1-create_courses.sh │ │ │ └── 2-search_courses.sh │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── src │ │ │ └── app │ │ │ │ ├── PostgresConnection.ts │ │ │ │ └── scripts │ │ │ │ ├── courses.json │ │ │ │ ├── create-courses.ts │ │ │ │ └── search-courses.ts │ │ └── tsconfig.json │ └── 2-complex_example │ │ ├── .github │ │ └── workflows │ │ │ └── ci.yml │ │ ├── .gitignore │ │ ├── README.md │ │ ├── compose.yml │ │ ├── databases │ │ ├── 0-enable-pgvector.sql │ │ ├── 1-mooc.sql │ │ └── 2-add_vectorizer_to_courses.sql │ │ ├── eslint.config.mjs │ │ ├── etc │ │ └── request │ │ │ └── mooc │ │ │ └── course_progress.http │ │ ├── jest.config.js │ │ ├── next.config.js │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ ├── next.svg │ │ └── vercel.svg │ │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ └── mooc │ │ │ │ │ ├── course-progress │ │ │ │ │ └── route.ts │ │ │ │ │ └── users │ │ │ │ │ └── [user-id] │ │ │ │ │ └── route.ts │ │ │ ├── favicon.ico │ │ │ ├── globals.css │ │ │ ├── layout.tsx │ │ │ └── scripts │ │ │ │ ├── courses.json │ │ │ │ ├── create-courses.ts │ │ │ │ └── search-courses.ts │ │ └── contexts │ │ │ ├── mooc │ │ │ ├── courses │ │ │ │ ├── application │ │ │ │ │ └── search-by-ids │ │ │ │ │ │ └── CoursesByIdsSearcher.ts │ │ │ │ ├── domain │ │ │ │ │ ├── Course.ts │ │ │ │ │ ├── CourseId.ts │ │ │ │ │ └── CourseRepository.ts │ │ │ │ └── infrastructure │ │ │ │ │ ├── PostgresCourseRepository.ts │ │ │ │ │ └── PostgresWithOllamaCourseRepository.ts │ │ │ ├── user-course-progress │ │ │ │ ├── application │ │ │ │ │ └── complete │ │ │ │ │ │ └── UserCourseProgressCompleter.ts │ │ │ │ └── domain │ │ │ │ │ └── UserCourseProgressCompletedDomainEvent.ts │ │ │ ├── user-course-suggestions │ │ │ │ ├── application │ │ │ │ │ ├── generate │ │ │ │ │ │ ├── GenerateUserCourseSuggestionsOnUserCourseProgressCompleted.ts │ │ │ │ │ │ └── UserCourseSuggestionsGenerator.ts │ │ │ │ │ └── search │ │ │ │ │ │ └── UserCourseSuggestionsSearcher.ts │ │ │ │ ├── domain │ │ │ │ │ ├── CourseSuggestion.ts │ │ │ │ │ ├── CourseSuggestionsGenerator.ts │ │ │ │ │ ├── UserCourseSuggestions.ts │ │ │ │ │ ├── UserCourseSuggestionsGeneratedDomainEvent.ts │ │ │ │ │ └── UserCourseSuggestionsRepository.ts │ │ │ │ └── infrastructure │ │ │ │ │ ├── OllamaLlama31CourseSuggestionsGenerator.ts │ │ │ │ │ └── PostgresUserCourseSuggestionsRepository.ts │ │ │ └── users │ │ │ │ ├── application │ │ │ │ ├── find │ │ │ │ │ └── UserFinder.ts │ │ │ │ ├── registrar │ │ │ │ │ └── UserRegistrar.ts │ │ │ │ └── update-course-suggestions │ │ │ │ │ ├── UpdateUserCourseSuggestionsOnUserCourseSuggestionsGenerated.ts │ │ │ │ │ └── UserCourseSuggestionsUpdater.ts │ │ │ │ ├── domain │ │ │ │ ├── CoursesSuggestionLlm.ts │ │ │ │ ├── DomainUserFinder.ts │ │ │ │ ├── User.ts │ │ │ │ ├── UserDoesNotExistError.ts │ │ │ │ ├── UserDomainEvent.ts │ │ │ │ ├── UserEmail.ts │ │ │ │ ├── UserId.ts │ │ │ │ ├── UserName.ts │ │ │ │ ├── UserProfilePicture.ts │ │ │ │ ├── UserRegisteredDomainEvent.ts │ │ │ │ ├── UserRepository.ts │ │ │ │ └── UserStatus.ts │ │ │ │ └── infrastructure │ │ │ │ ├── InMemoryCacheUserRepository.ts │ │ │ │ └── PostgresUserRepository.ts │ │ │ └── shared │ │ │ ├── domain │ │ │ ├── AggregateRoot.ts │ │ │ ├── Clock.ts │ │ │ ├── DomainError.ts │ │ │ ├── EmailAddress.ts │ │ │ ├── Identifier.ts │ │ │ ├── NanoId.ts │ │ │ ├── NumberValueObject.ts │ │ │ ├── StringValueObject.ts │ │ │ └── event │ │ │ │ ├── DomainEvent.ts │ │ │ │ ├── DomainEventClass.ts │ │ │ │ ├── DomainEventSubscriber.ts │ │ │ │ └── EventBus.ts │ │ │ └── infrastructure │ │ │ ├── dependency-injection │ │ │ └── diod.config.ts │ │ │ ├── domain-event │ │ │ └── InMemoryEventBus.ts │ │ │ ├── http │ │ │ ├── HttpNextResponse.ts │ │ │ └── executeWithErrorHandling.ts │ │ │ └── postgres │ │ │ ├── PostgresConnection.ts │ │ │ └── PostgresRepository.ts │ │ ├── tests │ │ └── contexts │ │ │ ├── mooc │ │ │ ├── courses-progress │ │ │ │ └── domain │ │ │ │ │ └── CourseProgressFinishedDomainEventMother.ts │ │ │ ├── user-course-suggestions │ │ │ │ ├── domain │ │ │ │ │ ├── CourseSuggestionMother.ts │ │ │ │ │ └── UserCourseSuggestionsMother.ts │ │ │ │ └── infrastructure │ │ │ │ │ ├── OllamaMistralCourseSuggestionsGenerator.test.ts │ │ │ │ │ └── OpenAIChatGPT35CourseSuggestionsGenerator.ci.test │ │ │ └── users │ │ │ │ ├── application │ │ │ │ └── registrar │ │ │ │ │ └── UserRegistrar.test.ts │ │ │ │ ├── domain │ │ │ │ ├── DateMother.ts │ │ │ │ ├── UserEmailMother.ts │ │ │ │ ├── UserIdMother.ts │ │ │ │ ├── UserMother.ts │ │ │ │ ├── UserNameMother.ts │ │ │ │ ├── UserProfilePictureMother.ts │ │ │ │ └── UserRegisteredDomainEventMother.ts │ │ │ │ └── infrastructure │ │ │ │ ├── MockCoursesSuggestionLlm.ts │ │ │ │ ├── MockUserRepository.ts │ │ │ │ └── PostgresUserRepository.test.ts │ │ │ └── shared │ │ │ ├── domain │ │ │ ├── EmailAddressMother.ts │ │ │ └── EnumMother.ts │ │ │ └── infrastructure │ │ │ ├── MockClock.ts │ │ │ └── MockEventBus.ts │ │ └── tsconfig.json └── 3-combine_databases │ ├── .github │ └── workflows │ │ └── ci.yml │ ├── .gitignore │ ├── README.md │ ├── compose.yml │ ├── databases │ ├── mysql │ │ └── 1-mooc.sql │ └── postgres │ │ ├── 0-enable-pgvector.sql │ │ └── 1-mooc.sql │ ├── eslint.config.mjs │ ├── etc │ └── request │ │ └── mooc │ │ └── course_progress.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── next.svg │ └── vercel.svg │ ├── src │ ├── app │ │ ├── api │ │ │ └── mooc │ │ │ │ ├── course-progress │ │ │ │ └── route.ts │ │ │ │ └── users │ │ │ │ └── [user-id] │ │ │ │ └── route.ts │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── layout.tsx │ │ └── scripts │ │ │ ├── courses.json │ │ │ ├── create-courses.ts │ │ │ └── search-courses.ts │ └── contexts │ │ ├── mooc │ │ ├── courses │ │ │ ├── application │ │ │ │ └── search-by-ids │ │ │ │ │ └── CoursesByIdsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── Course.ts │ │ │ │ ├── CourseId.ts │ │ │ │ └── CourseRepository.ts │ │ │ └── infrastructure │ │ │ │ └── MySqlCourseRepository.ts │ │ ├── user-course-progress │ │ │ ├── application │ │ │ │ └── complete │ │ │ │ │ └── UserCourseProgressCompleter.ts │ │ │ └── domain │ │ │ │ └── UserCourseProgressCompletedDomainEvent.ts │ │ ├── user-course-suggestions │ │ │ ├── application │ │ │ │ ├── generate │ │ │ │ │ ├── GenerateUserCourseSuggestionsOnUserCourseProgressCompleted.ts │ │ │ │ │ └── UserCourseSuggestionsGenerator.ts │ │ │ │ └── search │ │ │ │ │ └── UserCourseSuggestionsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── CourseSuggestion.ts │ │ │ │ ├── CourseSuggestionsGenerator.ts │ │ │ │ ├── UserCourseSuggestions.ts │ │ │ │ ├── UserCourseSuggestionsGeneratedDomainEvent.ts │ │ │ │ └── UserCourseSuggestionsRepository.ts │ │ │ └── infrastructure │ │ │ │ ├── OllamaLlama31CourseSuggestionsGenerator.ts │ │ │ │ └── PostgresUserCourseSuggestionsRepository.ts │ │ └── users │ │ │ ├── application │ │ │ ├── find │ │ │ │ └── UserFinder.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.ts │ │ │ └── update-course-suggestions │ │ │ │ ├── UpdateUserCourseSuggestionsOnUserCourseSuggestionsGenerated.ts │ │ │ │ └── UserCourseSuggestionsUpdater.ts │ │ │ ├── domain │ │ │ ├── CoursesSuggestionLlm.ts │ │ │ ├── DomainUserFinder.ts │ │ │ ├── User.ts │ │ │ ├── UserDoesNotExistError.ts │ │ │ ├── UserDomainEvent.ts │ │ │ ├── UserEmail.ts │ │ │ ├── UserId.ts │ │ │ ├── UserName.ts │ │ │ ├── UserProfilePicture.ts │ │ │ ├── UserRegisteredDomainEvent.ts │ │ │ ├── UserRepository.ts │ │ │ └── UserStatus.ts │ │ │ └── infrastructure │ │ │ ├── InMemoryCacheUserRepository.ts │ │ │ └── PostgresUserRepository.ts │ │ └── shared │ │ ├── domain │ │ ├── AggregateRoot.ts │ │ ├── Clock.ts │ │ ├── DomainError.ts │ │ ├── EmailAddress.ts │ │ ├── Identifier.ts │ │ ├── NanoId.ts │ │ ├── NumberValueObject.ts │ │ ├── StringValueObject.ts │ │ └── event │ │ │ ├── DomainEvent.ts │ │ │ ├── DomainEventClass.ts │ │ │ ├── DomainEventSubscriber.ts │ │ │ └── EventBus.ts │ │ └── infrastructure │ │ ├── dependency-injection │ │ └── diod.config.ts │ │ ├── domain-event │ │ └── InMemoryEventBus.ts │ │ ├── http │ │ ├── HttpNextResponse.ts │ │ └── executeWithErrorHandling.ts │ │ ├── mariadb │ │ └── MariaDBConnection.ts │ │ └── postgres │ │ ├── PostgresConnection.ts │ │ └── PostgresRepository.ts │ ├── tests │ └── contexts │ │ ├── mooc │ │ ├── courses-progress │ │ │ └── domain │ │ │ │ └── CourseProgressFinishedDomainEventMother.ts │ │ ├── user-course-suggestions │ │ │ ├── domain │ │ │ │ ├── CourseSuggestionMother.ts │ │ │ │ └── UserCourseSuggestionsMother.ts │ │ │ └── infrastructure │ │ │ │ ├── OllamaMistralCourseSuggestionsGenerator.test.ts │ │ │ │ └── OpenAIChatGPT35CourseSuggestionsGenerator.ci.test │ │ └── users │ │ │ ├── application │ │ │ └── registrar │ │ │ │ └── UserRegistrar.test.ts │ │ │ ├── domain │ │ │ ├── DateMother.ts │ │ │ ├── UserEmailMother.ts │ │ │ ├── UserIdMother.ts │ │ │ ├── UserMother.ts │ │ │ ├── UserNameMother.ts │ │ │ ├── UserProfilePictureMother.ts │ │ │ └── UserRegisteredDomainEventMother.ts │ │ │ └── infrastructure │ │ │ ├── MockCoursesSuggestionLlm.ts │ │ │ ├── MockUserRepository.ts │ │ │ └── PostgresUserRepository.test.ts │ │ └── shared │ │ ├── domain │ │ ├── EmailAddressMother.ts │ │ └── EnumMother.ts │ │ └── infrastructure │ │ ├── MockClock.ts │ │ └── MockEventBus.ts │ └── tsconfig.json ├── 05-3r_party_data ├── 1-pdfs │ ├── .gitignore │ ├── README.md │ ├── codely │ │ ├── DDD y CQRS_ Preguntas Frecuentes - Blog ﹤🍍﹥ Codely.pdf │ │ ├── Entrevista a Jose Armesto - De Softonic a Schibsted y Docker en producción 🦄 - Blog ﹤🍍﹥ Codely.pdf │ │ ├── Entrevista a Pol Romans _ Desarrollador en la consultora Mosaic - Blog ﹤🍍﹥ Codely.pdf │ │ ├── Finder kata en Scala - Dejando los bucles atrás ƛ - Blog ﹤🍍﹥ Codely.pdf │ │ └── Making off CodelyTV Pro 🚀 - Blog ﹤🍍﹥ Codely.pdf │ ├── compose.yml │ ├── databases │ │ ├── 0-enable-pgvector.sql │ │ └── 1-mooc.sql │ ├── eslint.config.mjs │ ├── etc │ │ └── search-courses-by-ids.sh │ ├── package-lock.json │ ├── package.json │ ├── src │ │ └── app │ │ │ ├── PostgresConnection.ts │ │ │ └── scripts │ │ │ ├── scrape-posts.ts │ │ │ └── search-posts.ts │ └── tsconfig.json ├── 2-declarative_pdfs │ ├── .gitignore │ ├── README.md │ ├── codely │ │ ├── DDD y CQRS_ Preguntas Frecuentes - Blog ﹤🍍﹥ Codely.pdf │ │ ├── Entrevista a Jose Armesto - De Softonic a Schibsted y Docker en producción 🦄 - Blog ﹤🍍﹥ Codely.pdf │ │ ├── Entrevista a Pol Romans _ Desarrollador en la consultora Mosaic - Blog ﹤🍍﹥ Codely.pdf │ │ ├── Finder kata en Scala - Dejando los bucles atrás ƛ - Blog ﹤🍍﹥ Codely.pdf │ │ └── Making off CodelyTV Pro 🚀 - Blog ﹤🍍﹥ Codely.pdf │ ├── compose.yml │ ├── databases │ │ ├── 0-enable-pgvector.sql │ │ └── 1-mooc.sql │ ├── eslint.config.mjs │ ├── etc │ │ └── search-courses-by-ids.sh │ ├── package-lock.json │ ├── package.json │ ├── src │ │ └── app │ │ │ ├── PostgresConnection.ts │ │ │ └── scripts │ │ │ ├── scrape-posts.ts │ │ │ └── search-posts.ts │ └── tsconfig.json └── 3-web_scrapping │ ├── .gitignore │ ├── README.md │ ├── codely │ ├── Curso de Añade Inteligencia Artificial siguiendo buenas prácticas ﹤🍍﹥ Codely_files │ │ ├── 1.gif │ │ ├── 1dd3208c-782521caac770bde.js │ │ ├── 5369-5f76ee97d76312aa.js │ │ ├── 53d689c5e9e905f3.css │ │ ├── 5469-c128f782674bf9dd.js │ │ ├── 5658-871ab6ec1ab90373.js │ │ ├── 64b6ccb7ac4e2336.css │ │ ├── 6522-914fb99b825807c4.js │ │ ├── 7818-15b6d7c324459405.js │ │ ├── 89882c28f2068700.css │ │ ├── 8ab63a082ea963a2.css │ │ ├── 8bedea10f6f90066.css │ │ ├── 9551-19d3568fddd2478e.js │ │ ├── 9723-02e4fcecb8a59eef.js │ │ ├── anade-ia-buenas-practicas.png │ │ ├── aws-sqs.png │ │ ├── bc-v4.min.html │ │ ├── cache.png │ │ ├── cd24890f-ec6b98a349ae2a4b.js │ │ ├── clean-code.png │ │ ├── criteria.png │ │ ├── cursos.png │ │ ├── error-2e40a4a905cf38cb.js │ │ ├── errores.png │ │ ├── global-error-2d840ca8028e0755.js │ │ ├── inheritance-mapping-php.png │ │ ├── javier-ferrer.jpg │ │ ├── layout-6689f47f234deadf.js │ │ ├── main-app-51ed83860651f976.js │ │ ├── nb5f8bpp │ │ ├── p.outbound-links.pageview-props.revenue.js │ │ ├── page-30f6a573581ac7f8.js │ │ ├── polyfills-42372ed130431b0a.js │ │ ├── problemas-ddd-eventos.png │ │ ├── proyecciones.png │ │ ├── rabbitmq.png │ │ ├── rafa-gomez.jpg │ │ ├── saved_resource(1).html │ │ ├── saved_resource.html │ │ ├── state.js │ │ ├── transacciones.png │ │ ├── uc.js │ │ ├── vistas.png │ │ └── webpack-044f59d2265eeff4.js │ ├── Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files │ │ ├── 1.gif │ │ ├── 1dd3208c-782521caac770bde.js │ │ ├── 5369-5f76ee97d76312aa.js │ │ ├── 53d689c5e9e905f3.css │ │ ├── 5469-c128f782674bf9dd.js │ │ ├── 5658-871ab6ec1ab90373.js │ │ ├── 64b6ccb7ac4e2336.css │ │ ├── 6522-914fb99b825807c4.js │ │ ├── 7818-15b6d7c324459405.js │ │ ├── 89882c28f2068700.css │ │ ├── 8ab63a082ea963a2.css │ │ ├── 8bedea10f6f90066.css │ │ ├── 9551-19d3568fddd2478e.js │ │ ├── 9723-02e4fcecb8a59eef.js │ │ ├── anade-ia-buenas-practicas.png │ │ ├── asincronia-en-javascript.png │ │ ├── aws-sqs.png │ │ ├── bc-v4.min.html │ │ ├── cache.png │ │ ├── cd24890f-ec6b98a349ae2a4b.js │ │ ├── criteria.png │ │ ├── cursos.png │ │ ├── error-2e40a4a905cf38cb.js │ │ ├── errores.png │ │ ├── global-error-2d840ca8028e0755.js │ │ ├── inheritance-mapping-php.png │ │ ├── isma-navarro.png │ │ ├── javier-ferrer.jpg │ │ ├── layout-6689f47f234deadf.js │ │ ├── main-app-51ed83860651f976.js │ │ ├── nb5f8bpp │ │ ├── nextjs-og-images.png │ │ ├── nuria-soriano.jpg │ │ ├── p.outbound-links.pageview-props.revenue.js │ │ ├── page-30f6a573581ac7f8.js │ │ ├── polyfills-42372ed130431b0a.js │ │ ├── proyecciones.png │ │ ├── rabbitmq.png │ │ ├── rafa-gomez.jpg │ │ ├── saved_resource(1).html │ │ ├── saved_resource.html │ │ ├── state.js │ │ ├── transacciones.png │ │ ├── uc.js │ │ ├── vistas.png │ │ └── webpack-044f59d2265eeff4.js │ ├── Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files │ │ ├── 1.gif │ │ ├── 1dd3208c-782521caac770bde.js │ │ ├── 5369-5f76ee97d76312aa.js │ │ ├── 53d689c5e9e905f3.css │ │ ├── 5469-c128f782674bf9dd.js │ │ ├── 5658-871ab6ec1ab90373.js │ │ ├── 64b6ccb7ac4e2336.css │ │ ├── 6522-914fb99b825807c4.js │ │ ├── 7818-15b6d7c324459405.js │ │ ├── 89882c28f2068700.css │ │ ├── 8ab63a082ea963a2.css │ │ ├── 8bedea10f6f90066.css │ │ ├── 9551-19d3568fddd2478e.js │ │ ├── 9723-02e4fcecb8a59eef.js │ │ ├── anade-ia-buenas-practicas.png │ │ ├── auditoria-holaluz.png │ │ ├── aws-sqs.png │ │ ├── bc-v4.min.html │ │ ├── cache.png │ │ ├── cd24890f-ec6b98a349ae2a4b.js │ │ ├── clean-code.png │ │ ├── criteria.png │ │ ├── cursos.png │ │ ├── error-2e40a4a905cf38cb.js │ │ ├── errores.png │ │ ├── global-error-2d840ca8028e0755.js │ │ ├── inheritance-mapping-php.png │ │ ├── javier-ferrer.jpg │ │ ├── layout-6689f47f234deadf.js │ │ ├── main-app-51ed83860651f976.js │ │ ├── nb5f8bpp │ │ ├── p.outbound-links.pageview-props.revenue.js │ │ ├── page-30f6a573581ac7f8.js │ │ ├── polyfills-42372ed130431b0a.js │ │ ├── proyecciones.png │ │ ├── rabbitmq.png │ │ ├── rafa-gomez.jpg │ │ ├── saved_resource(1).html │ │ ├── saved_resource.html │ │ ├── state.js │ │ ├── transacciones.png │ │ ├── uc.js │ │ ├── vistas.png │ │ └── webpack-044f59d2265eeff4.js │ ├── Curso de DDD, Microservicios e Infra en Audiense, Genially y Codely ﹤🍍﹥ Codely_files │ │ ├── 1.gif │ │ ├── 1dd3208c-782521caac770bde.js │ │ ├── 5369-5f76ee97d76312aa.js │ │ ├── 53d689c5e9e905f3.css │ │ ├── 5469-c128f782674bf9dd.js │ │ ├── 5658-871ab6ec1ab90373.js │ │ ├── 64b6ccb7ac4e2336.css │ │ ├── 6522-914fb99b825807c4.js │ │ ├── 7818-15b6d7c324459405.js │ │ ├── 89882c28f2068700.css │ │ ├── 8ab63a082ea963a2.css │ │ ├── 8bedea10f6f90066.css │ │ ├── 9551-19d3568fddd2478e.js │ │ ├── 9723-02e4fcecb8a59eef.js │ │ ├── anade-ia-buenas-practicas.png │ │ ├── audiense.png │ │ ├── aws-sqs.png │ │ ├── bc-v4.min.html │ │ ├── cache.png │ │ ├── cd24890f-ec6b98a349ae2a4b.js │ │ ├── codely.png │ │ ├── criteria.png │ │ ├── cursos.png │ │ ├── ddd-ms-Infra-audiense-genially-y-codely.png │ │ ├── error-2e40a4a905cf38cb.js │ │ ├── errores.png │ │ ├── genially.png │ │ ├── global-error-2d840ca8028e0755.js │ │ ├── inheritance-mapping-php.png │ │ ├── javier-ferrer.jpg │ │ ├── layout-6689f47f234deadf.js │ │ ├── main-app-51ed83860651f976.js │ │ ├── nb5f8bpp │ │ ├── p.outbound-links.pageview-props.revenue.js │ │ ├── page-30f6a573581ac7f8.js │ │ ├── php-linter.png │ │ ├── polyfills-42372ed130431b0a.js │ │ ├── proyecciones.png │ │ ├── rabbitmq.png │ │ ├── rafa-gomez.jpg │ │ ├── saved_resource(1).html │ │ ├── saved_resource.html │ │ ├── state.js │ │ ├── transacciones.png │ │ ├── uc.js │ │ ├── vistas.png │ │ └── webpack-044f59d2265eeff4.js │ ├── Curso de Diseño de infraestructura_ AWS SQS como cola de mensajería ﹤🍍﹥ Codely_files │ │ ├── 1.gif │ │ ├── 1dd3208c-782521caac770bde.js │ │ ├── 5369-5f76ee97d76312aa.js │ │ ├── 53d689c5e9e905f3.css │ │ ├── 5469-c128f782674bf9dd.js │ │ ├── 5658-871ab6ec1ab90373.js │ │ ├── 64b6ccb7ac4e2336.css │ │ ├── 6522-914fb99b825807c4.js │ │ ├── 7818-15b6d7c324459405.js │ │ ├── 89882c28f2068700.css │ │ ├── 8ab63a082ea963a2.css │ │ ├── 8bedea10f6f90066.css │ │ ├── 9551-19d3568fddd2478e.js │ │ ├── 9723-02e4fcecb8a59eef.js │ │ ├── anade-ia-buenas-practicas.png │ │ ├── aws-sqs.png │ │ ├── bc-v4.min.html │ │ ├── cache.png │ │ ├── cd24890f-ec6b98a349ae2a4b.js │ │ ├── clean-code.png │ │ ├── criteria.png │ │ ├── cursos.png │ │ ├── error-2e40a4a905cf38cb.js │ │ ├── errores.png │ │ ├── global-error-2d840ca8028e0755.js │ │ ├── inheritance-mapping-php.png │ │ ├── javier-ferrer.jpg │ │ ├── layout-6689f47f234deadf.js │ │ ├── main-app-51ed83860651f976.js │ │ ├── nb5f8bpp │ │ ├── p.outbound-links.pageview-props.revenue.js │ │ ├── page-30f6a573581ac7f8.js │ │ ├── polyfills-42372ed130431b0a.js │ │ ├── proyecciones.png │ │ ├── rabbitmq.png │ │ ├── rafa-gomez.jpg │ │ ├── saved_resource(1).html │ │ ├── saved_resource.html │ │ ├── state.js │ │ ├── transacciones.png │ │ ├── uc.js │ │ ├── vistas.png │ │ └── webpack-044f59d2265eeff4.js │ ├── Curso de Diseño de infraestructura_ RabbitMQ como cola de mensajería ﹤🍍﹥ Codely_files │ │ ├── 1.gif │ │ ├── 1dd3208c-782521caac770bde.js │ │ ├── 5369-5f76ee97d76312aa.js │ │ ├── 53d689c5e9e905f3.css │ │ ├── 5469-c128f782674bf9dd.js │ │ ├── 5658-871ab6ec1ab90373.js │ │ ├── 64b6ccb7ac4e2336.css │ │ ├── 6522-914fb99b825807c4.js │ │ ├── 7818-15b6d7c324459405.js │ │ ├── 89882c28f2068700.css │ │ ├── 8ab63a082ea963a2.css │ │ ├── 8bedea10f6f90066.css │ │ ├── 9551-19d3568fddd2478e.js │ │ ├── 9723-02e4fcecb8a59eef.js │ │ ├── anade-ia-buenas-practicas.png │ │ ├── aws-sqs.png │ │ ├── bc-v4.min.html │ │ ├── cache.png │ │ ├── cd24890f-ec6b98a349ae2a4b.js │ │ ├── clean-code.png │ │ ├── criteria.png │ │ ├── cursos.png │ │ ├── error-2e40a4a905cf38cb.js │ │ ├── errores.png │ │ ├── global-error-2d840ca8028e0755.js │ │ ├── inheritance-mapping-php.png │ │ ├── javier-ferrer.jpg │ │ ├── layout-6689f47f234deadf.js │ │ ├── main-app-51ed83860651f976.js │ │ ├── nb5f8bpp │ │ ├── p.outbound-links.pageview-props.revenue.js │ │ ├── page-30f6a573581ac7f8.js │ │ ├── polyfills-42372ed130431b0a.js │ │ ├── proyecciones.png │ │ ├── rabbitmq.png │ │ ├── rafa-gomez.jpg │ │ ├── saved_resource(1).html │ │ ├── saved_resource.html │ │ ├── state.js │ │ ├── transacciones.png │ │ ├── uc.js │ │ ├── vistas.png │ │ └── webpack-044f59d2265eeff4.js │ ├── Curso de Modelado del dominio_ Value Objects ﹤🍍﹥ Codely_files │ │ ├── 1.gif │ │ ├── 1dd3208c-782521caac770bde.js │ │ ├── 5369-5f76ee97d76312aa.js │ │ ├── 53d689c5e9e905f3.css │ │ ├── 5469-c128f782674bf9dd.js │ │ ├── 5658-871ab6ec1ab90373.js │ │ ├── 64b6ccb7ac4e2336.css │ │ ├── 6522-914fb99b825807c4.js │ │ ├── 7818-15b6d7c324459405.js │ │ ├── 89882c28f2068700.css │ │ ├── 8ab63a082ea963a2.css │ │ ├── 8bedea10f6f90066.css │ │ ├── 9551-19d3568fddd2478e.js │ │ ├── 9723-02e4fcecb8a59eef.js │ │ ├── anade-ia-buenas-practicas.png │ │ ├── aws-sqs.png │ │ ├── bc-v4.min.html │ │ ├── cache.png │ │ ├── cd24890f-ec6b98a349ae2a4b.js │ │ ├── clean-code.png │ │ ├── criteria.png │ │ ├── cursos.png │ │ ├── error-2e40a4a905cf38cb.js │ │ ├── errores.png │ │ ├── global-error-2d840ca8028e0755.js │ │ ├── javier-ferrer.jpg │ │ ├── layout-6689f47f234deadf.js │ │ ├── main-app-51ed83860651f976.js │ │ ├── nb5f8bpp │ │ ├── p.outbound-links.pageview-props.revenue.js │ │ ├── page-30f6a573581ac7f8.js │ │ ├── polyfills-42372ed130431b0a.js │ │ ├── problemas-ddd-eventos.png │ │ ├── proyecciones.png │ │ ├── rabbitmq.png │ │ ├── rafa-gomez.jpg │ │ ├── saved_resource(1).html │ │ ├── saved_resource.html │ │ ├── state.js │ │ ├── transacciones.png │ │ ├── uc.js │ │ ├── value-objects.png │ │ ├── vistas.png │ │ └── webpack-044f59d2265eeff4.js │ ├── Curso de Patrones de Diseño_ Criteria ﹤🍍﹥ Codely_files │ │ ├── 1.gif │ │ ├── 1dd3208c-782521caac770bde.js │ │ ├── 5369-5f76ee97d76312aa.js │ │ ├── 53d689c5e9e905f3.css │ │ ├── 5469-c128f782674bf9dd.js │ │ ├── 5658-871ab6ec1ab90373.js │ │ ├── 64b6ccb7ac4e2336.css │ │ ├── 6522-914fb99b825807c4.js │ │ ├── 7818-15b6d7c324459405.js │ │ ├── 89882c28f2068700.css │ │ ├── 8ab63a082ea963a2.css │ │ ├── 8bedea10f6f90066.css │ │ ├── 9551-19d3568fddd2478e.js │ │ ├── 9723-02e4fcecb8a59eef.js │ │ ├── anade-ia-buenas-practicas.png │ │ ├── aws-sqs.png │ │ ├── bc-v4.min.html │ │ ├── cache.png │ │ ├── cd24890f-ec6b98a349ae2a4b.js │ │ ├── clean-code.png │ │ ├── criteria.png │ │ ├── cursos.png │ │ ├── error-2e40a4a905cf38cb.js │ │ ├── errores.png │ │ ├── global-error-2d840ca8028e0755.js │ │ ├── inheritance-mapping-php.png │ │ ├── javier-ferrer.jpg │ │ ├── layout-6689f47f234deadf.js │ │ ├── main-app-51ed83860651f976.js │ │ ├── nb5f8bpp │ │ ├── p.outbound-links.pageview-props.revenue.js │ │ ├── page-30f6a573581ac7f8.js │ │ ├── polyfills-42372ed130431b0a.js │ │ ├── proyecciones.png │ │ ├── rabbitmq.png │ │ ├── rafa-gomez.jpg │ │ ├── saved_resource(1).html │ │ ├── saved_resource.html │ │ ├── state.js │ │ ├── transacciones.png │ │ ├── uc.js │ │ ├── vistas.png │ │ └── webpack-044f59d2265eeff4.js │ ├── Curso de Tratamiento de datos en Bash_ Gestiona archivos JSON, XML, YAML ﹤🍍﹥ Codely_files │ │ ├── 1.gif │ │ ├── 1dd3208c-782521caac770bde.js │ │ ├── 5369-5f76ee97d76312aa.js │ │ ├── 53d689c5e9e905f3.css │ │ ├── 5469-c128f782674bf9dd.js │ │ ├── 5658-871ab6ec1ab90373.js │ │ ├── 64b6ccb7ac4e2336.css │ │ ├── 6522-914fb99b825807c4.js │ │ ├── 7818-15b6d7c324459405.js │ │ ├── 89882c28f2068700.css │ │ ├── 8ab63a082ea963a2.css │ │ ├── 8bedea10f6f90066.css │ │ ├── 9551-19d3568fddd2478e.js │ │ ├── 9723-02e4fcecb8a59eef.js │ │ ├── bash.png │ │ ├── bc-v4.min.html │ │ ├── cd24890f-ec6b98a349ae2a4b.js │ │ ├── cursos.png │ │ ├── dani-santamaria.jpg │ │ ├── datos-bash.png │ │ ├── error-2e40a4a905cf38cb.js │ │ ├── global-error-2d840ca8028e0755.js │ │ ├── iterm.png │ │ ├── javier-ferrer.jpg │ │ ├── karabiner.png │ │ ├── layout-6689f47f234deadf.js │ │ ├── linting-js-ts.png │ │ ├── main-app-51ed83860651f976.js │ │ ├── makefiles.png │ │ ├── nb5f8bpp │ │ ├── nino-dafonte.jpg │ │ ├── notion.png │ │ ├── nuria-soriano.jpg │ │ ├── p.outbound-links.pageview-props.revenue.js │ │ ├── page-30f6a573581ac7f8.js │ │ ├── polyfills-42372ed130431b0a.js │ │ ├── rafa-gomez.jpg │ │ ├── saved_resource(1).html │ │ ├── saved_resource.html │ │ ├── setup-linux.png │ │ ├── setup-mac.png │ │ ├── state.js │ │ ├── teclados-mecanicos.png │ │ ├── todo-sobre-los-dotfiles.png │ │ ├── uc.js │ │ ├── visual-studio-code-productividad-y-setup.png │ │ └── webpack-044f59d2265eeff4.js │ ├── anade-inteligencia-artificial-siguiendo-buenas-practicas.html │ ├── asincronia-en-javascript.html │ ├── auditoria-holaluz.html │ ├── ddd-microservicios-e-infra-en-audiense-genially-y-codely.html │ ├── diseno-de-infraestructura-aws-sqs-como-cola-de-mensajeria.html │ ├── diseno-de-infraestructura-rabbitmq-como-cola-de-mensajeria.html │ ├── index.html │ ├── modelado-del-dominio-value-objects.html │ ├── patrones-de-diseno-criteria.html │ └── tratamiento-de-datos-en-bash-gestiona-archivos-json-xml-yaml.html │ ├── compose.yml │ ├── databases │ ├── 0-enable-pgvector.sql │ └── 1-mooc.sql │ ├── eslint.config.mjs │ ├── etc │ └── search-courses-by-ids.sh │ ├── package-lock.json │ ├── package.json │ ├── src │ └── app │ │ ├── PostgresConnection.ts │ │ └── scripts │ │ ├── scrape-courses.ts │ │ └── search-courses.ts │ └── tsconfig.json ├── 06-chunking └── 2-optimize_import_pipeline │ ├── .gitignore │ ├── README.md │ ├── codely │ ├── DDD y CQRS_ Preguntas Frecuentes - Blog ﹤🍍﹥ Codely.pdf │ ├── Entrevista a Jose Armesto - De Softonic a Schibsted y Docker en producción 🦄 - Blog ﹤🍍﹥ Codely.pdf │ ├── Entrevista a Pol Romans _ Desarrollador en la consultora Mosaic - Blog ﹤🍍﹥ Codely.pdf │ ├── Finder kata en Scala - Dejando los bucles atrás ƛ - Blog ﹤🍍﹥ Codely.pdf │ └── Making off CodelyTV Pro 🚀 - Blog ﹤🍍﹥ Codely.pdf │ ├── compose.yml │ ├── databases │ ├── 0-enable-pgvector.sql │ └── 1-mooc.sql │ ├── eslint.config.mjs │ ├── etc │ └── search-courses-by-ids.sh │ ├── package-lock.json │ ├── package.json │ ├── src │ └── app │ │ ├── PostgresConnection.ts │ │ └── scripts │ │ ├── scrape-posts.ts │ │ └── search-posts.ts │ └── tsconfig.json ├── 07-best_embedding_model └── 2-migrate_embedding_models │ ├── 1-only_one_model │ ├── .github │ │ └── workflows │ │ │ └── ci.yml │ ├── .gitignore │ ├── README.md │ ├── compose.yml │ ├── databases │ │ ├── 0-enable-pgvector.sql │ │ └── 1-mooc.sql │ ├── eslint.config.mjs │ ├── etc │ │ └── request │ │ │ └── mooc │ │ │ └── course_progress.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── next.svg │ │ └── vercel.svg │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ └── mooc │ │ │ │ │ ├── course-progress │ │ │ │ │ └── route.ts │ │ │ │ │ └── users │ │ │ │ │ └── [user-id] │ │ │ │ │ └── route.ts │ │ │ ├── favicon.ico │ │ │ ├── globals.css │ │ │ ├── layout.tsx │ │ │ └── scripts │ │ │ │ ├── courses.json │ │ │ │ ├── create-courses.ts │ │ │ │ └── search-courses.ts │ │ └── contexts │ │ │ ├── mooc │ │ │ ├── courses │ │ │ │ ├── application │ │ │ │ │ └── search-by-ids │ │ │ │ │ │ └── CoursesByIdsSearcher.ts │ │ │ │ ├── domain │ │ │ │ │ ├── Course.ts │ │ │ │ │ ├── CourseId.ts │ │ │ │ │ └── CourseRepository.ts │ │ │ │ └── infrastructure │ │ │ │ │ └── PostgresCourseRepository.ts │ │ │ ├── user-course-progress │ │ │ │ ├── application │ │ │ │ │ └── complete │ │ │ │ │ │ └── UserCourseProgressCompleter.ts │ │ │ │ └── domain │ │ │ │ │ └── UserCourseProgressCompletedDomainEvent.ts │ │ │ ├── user-course-suggestions │ │ │ │ ├── application │ │ │ │ │ ├── generate │ │ │ │ │ │ ├── GenerateUserCourseSuggestionsOnUserCourseProgressCompleted.ts │ │ │ │ │ │ └── UserCourseSuggestionsGenerator.ts │ │ │ │ │ └── search │ │ │ │ │ │ └── UserCourseSuggestionsSearcher.ts │ │ │ │ ├── domain │ │ │ │ │ ├── CourseSuggestion.ts │ │ │ │ │ ├── CourseSuggestionsGenerator.ts │ │ │ │ │ ├── UserCourseSuggestions.ts │ │ │ │ │ ├── UserCourseSuggestionsGeneratedDomainEvent.ts │ │ │ │ │ └── UserCourseSuggestionsRepository.ts │ │ │ │ └── infrastructure │ │ │ │ │ ├── OllamaLlama31CourseSuggestionsGenerator.ts │ │ │ │ │ └── PostgresUserCourseSuggestionsRepository.ts │ │ │ └── users │ │ │ │ ├── application │ │ │ │ ├── find │ │ │ │ │ └── UserFinder.ts │ │ │ │ ├── registrar │ │ │ │ │ └── UserRegistrar.ts │ │ │ │ └── update-course-suggestions │ │ │ │ │ ├── UpdateUserCourseSuggestionsOnUserCourseSuggestionsGenerated.ts │ │ │ │ │ └── UserCourseSuggestionsUpdater.ts │ │ │ │ ├── domain │ │ │ │ ├── CoursesSuggestionLlm.ts │ │ │ │ ├── DomainUserFinder.ts │ │ │ │ ├── User.ts │ │ │ │ ├── UserDoesNotExistError.ts │ │ │ │ ├── UserDomainEvent.ts │ │ │ │ ├── UserEmail.ts │ │ │ │ ├── UserId.ts │ │ │ │ ├── UserName.ts │ │ │ │ ├── UserProfilePicture.ts │ │ │ │ ├── UserRegisteredDomainEvent.ts │ │ │ │ ├── UserRepository.ts │ │ │ │ └── UserStatus.ts │ │ │ │ └── infrastructure │ │ │ │ ├── InMemoryCacheUserRepository.ts │ │ │ │ └── PostgresUserRepository.ts │ │ │ └── shared │ │ │ ├── domain │ │ │ ├── AggregateRoot.ts │ │ │ ├── Clock.ts │ │ │ ├── DomainError.ts │ │ │ ├── EmailAddress.ts │ │ │ ├── Identifier.ts │ │ │ ├── NanoId.ts │ │ │ ├── NumberValueObject.ts │ │ │ ├── StringValueObject.ts │ │ │ └── event │ │ │ │ ├── DomainEvent.ts │ │ │ │ ├── DomainEventClass.ts │ │ │ │ ├── DomainEventSubscriber.ts │ │ │ │ └── EventBus.ts │ │ │ └── infrastructure │ │ │ ├── dependency-injection │ │ │ └── diod.config.ts │ │ │ ├── domain-event │ │ │ └── InMemoryEventBus.ts │ │ │ ├── http │ │ │ ├── HttpNextResponse.ts │ │ │ └── executeWithErrorHandling.ts │ │ │ └── postgres │ │ │ ├── PostgresConnection.ts │ │ │ └── PostgresRepository.ts │ ├── tests │ │ └── contexts │ │ │ ├── mooc │ │ │ ├── courses-progress │ │ │ │ └── domain │ │ │ │ │ └── CourseProgressFinishedDomainEventMother.ts │ │ │ ├── user-course-suggestions │ │ │ │ ├── domain │ │ │ │ │ ├── CourseSuggestionMother.ts │ │ │ │ │ └── UserCourseSuggestionsMother.ts │ │ │ │ └── infrastructure │ │ │ │ │ ├── OllamaMistralCourseSuggestionsGenerator.test.ts │ │ │ │ │ └── OpenAIChatGPT35CourseSuggestionsGenerator.ci.test │ │ │ └── users │ │ │ │ ├── application │ │ │ │ └── registrar │ │ │ │ │ └── UserRegistrar.test.ts │ │ │ │ ├── domain │ │ │ │ ├── DateMother.ts │ │ │ │ ├── UserEmailMother.ts │ │ │ │ ├── UserIdMother.ts │ │ │ │ ├── UserMother.ts │ │ │ │ ├── UserNameMother.ts │ │ │ │ ├── UserProfilePictureMother.ts │ │ │ │ └── UserRegisteredDomainEventMother.ts │ │ │ │ └── infrastructure │ │ │ │ ├── MockCoursesSuggestionLlm.ts │ │ │ │ ├── MockUserRepository.ts │ │ │ │ └── PostgresUserRepository.test.ts │ │ │ └── shared │ │ │ ├── domain │ │ │ ├── EmailAddressMother.ts │ │ │ └── EnumMother.ts │ │ │ └── infrastructure │ │ │ ├── MockClock.ts │ │ │ └── MockEventBus.ts │ └── tsconfig.json │ └── 2-two_models │ ├── .github │ └── workflows │ │ └── ci.yml │ ├── .gitignore │ ├── README.md │ ├── compose.yml │ ├── databases │ ├── 0-enable-pgvector.sql │ └── 1-mooc.sql │ ├── eslint.config.mjs │ ├── etc │ └── request │ │ └── mooc │ │ └── course_progress.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── next.svg │ └── vercel.svg │ ├── src │ ├── app │ │ ├── api │ │ │ └── mooc │ │ │ │ ├── course-progress │ │ │ │ └── route.ts │ │ │ │ └── users │ │ │ │ └── [user-id] │ │ │ │ └── route.ts │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── layout.tsx │ │ └── scripts │ │ │ ├── courses.json │ │ │ ├── create-courses.ts │ │ │ └── search-courses.ts │ └── contexts │ │ ├── mooc │ │ ├── courses │ │ │ ├── application │ │ │ │ └── search-by-ids │ │ │ │ │ └── CoursesByIdsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── Course.ts │ │ │ │ ├── CourseId.ts │ │ │ │ └── CourseRepository.ts │ │ │ └── infrastructure │ │ │ │ └── PostgresCourseRepository.ts │ │ ├── user-course-progress │ │ │ ├── application │ │ │ │ └── complete │ │ │ │ │ └── UserCourseProgressCompleter.ts │ │ │ └── domain │ │ │ │ └── UserCourseProgressCompletedDomainEvent.ts │ │ ├── user-course-suggestions │ │ │ ├── application │ │ │ │ ├── generate │ │ │ │ │ ├── GenerateUserCourseSuggestionsOnUserCourseProgressCompleted.ts │ │ │ │ │ └── UserCourseSuggestionsGenerator.ts │ │ │ │ └── search │ │ │ │ │ └── UserCourseSuggestionsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── CourseSuggestion.ts │ │ │ │ ├── CourseSuggestionsGenerator.ts │ │ │ │ ├── UserCourseSuggestions.ts │ │ │ │ ├── UserCourseSuggestionsGeneratedDomainEvent.ts │ │ │ │ └── UserCourseSuggestionsRepository.ts │ │ │ └── infrastructure │ │ │ │ ├── OllamaLlama31CourseSuggestionsGenerator.ts │ │ │ │ └── PostgresUserCourseSuggestionsRepository.ts │ │ └── users │ │ │ ├── application │ │ │ ├── find │ │ │ │ └── UserFinder.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.ts │ │ │ └── update-course-suggestions │ │ │ │ ├── UpdateUserCourseSuggestionsOnUserCourseSuggestionsGenerated.ts │ │ │ │ └── UserCourseSuggestionsUpdater.ts │ │ │ ├── domain │ │ │ ├── CoursesSuggestionLlm.ts │ │ │ ├── DomainUserFinder.ts │ │ │ ├── User.ts │ │ │ ├── UserDoesNotExistError.ts │ │ │ ├── UserDomainEvent.ts │ │ │ ├── UserEmail.ts │ │ │ ├── UserId.ts │ │ │ ├── UserName.ts │ │ │ ├── UserProfilePicture.ts │ │ │ ├── UserRegisteredDomainEvent.ts │ │ │ ├── UserRepository.ts │ │ │ └── UserStatus.ts │ │ │ └── infrastructure │ │ │ ├── InMemoryCacheUserRepository.ts │ │ │ └── PostgresUserRepository.ts │ │ └── shared │ │ ├── domain │ │ ├── AggregateRoot.ts │ │ ├── Clock.ts │ │ ├── DomainError.ts │ │ ├── EmailAddress.ts │ │ ├── Identifier.ts │ │ ├── NanoId.ts │ │ ├── NumberValueObject.ts │ │ ├── StringValueObject.ts │ │ └── event │ │ │ ├── DomainEvent.ts │ │ │ ├── DomainEventClass.ts │ │ │ ├── DomainEventSubscriber.ts │ │ │ └── EventBus.ts │ │ └── infrastructure │ │ ├── dependency-injection │ │ └── diod.config.ts │ │ ├── domain-event │ │ └── InMemoryEventBus.ts │ │ ├── http │ │ ├── HttpNextResponse.ts │ │ └── executeWithErrorHandling.ts │ │ └── postgres │ │ ├── PostgresConnection.ts │ │ └── PostgresRepository.ts │ ├── tests │ └── contexts │ │ ├── mooc │ │ ├── courses-progress │ │ │ └── domain │ │ │ │ └── CourseProgressFinishedDomainEventMother.ts │ │ ├── user-course-suggestions │ │ │ ├── domain │ │ │ │ ├── CourseSuggestionMother.ts │ │ │ │ └── UserCourseSuggestionsMother.ts │ │ │ └── infrastructure │ │ │ │ ├── OllamaMistralCourseSuggestionsGenerator.test.ts │ │ │ │ └── OpenAIChatGPT35CourseSuggestionsGenerator.ci.test │ │ └── users │ │ │ ├── application │ │ │ └── registrar │ │ │ │ └── UserRegistrar.test.ts │ │ │ ├── domain │ │ │ ├── DateMother.ts │ │ │ ├── UserEmailMother.ts │ │ │ ├── UserIdMother.ts │ │ │ ├── UserMother.ts │ │ │ ├── UserNameMother.ts │ │ │ ├── UserProfilePictureMother.ts │ │ │ └── UserRegisteredDomainEventMother.ts │ │ │ └── infrastructure │ │ │ ├── MockCoursesSuggestionLlm.ts │ │ │ ├── MockUserRepository.ts │ │ │ └── PostgresUserRepository.test.ts │ │ └── shared │ │ ├── domain │ │ ├── EmailAddressMother.ts │ │ └── EnumMother.ts │ │ └── infrastructure │ │ ├── MockClock.ts │ │ └── MockEventBus.ts │ └── tsconfig.json ├── 99-poc └── 1-with_send_email │ ├── .github │ └── workflows │ │ └── ci.yml │ ├── .gitignore │ ├── README.md │ ├── compose.yml │ ├── databases │ ├── 0-enable-pgvector.sql │ └── 1-mooc.sql │ ├── eslint.config.mjs │ ├── etc │ └── request │ │ └── mooc │ │ └── course_progress.http │ ├── jest.config.js │ ├── next.config.js │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── next.svg │ └── vercel.svg │ ├── src │ ├── app │ │ ├── api │ │ │ └── mooc │ │ │ │ ├── course-progress │ │ │ │ └── route.ts │ │ │ │ └── users │ │ │ │ └── [user-id] │ │ │ │ └── route.ts │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── layout.tsx │ │ └── scripts │ │ │ ├── courses.json │ │ │ ├── create-courses.ts │ │ │ └── search-courses.ts │ └── contexts │ │ ├── mooc │ │ ├── courses │ │ │ ├── application │ │ │ │ └── search-by-ids │ │ │ │ │ └── CoursesByIdsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── Course.ts │ │ │ │ ├── CourseId.ts │ │ │ │ └── CourseRepository.ts │ │ │ └── infrastructure │ │ │ │ └── PostgresCourseRepository.ts │ │ ├── next-suggested-courses-email │ │ │ ├── application │ │ │ │ └── send-next-suggested-courses-email │ │ │ │ │ ├── NextSuggestedCoursesEmailSender.ts │ │ │ │ │ └── SendNextSuggestedCoursesEmailOnUserCourseSuggestionsGenerated.ts │ │ │ ├── domain │ │ │ │ ├── NextSuggestedCoursesEmail.ts │ │ │ │ └── NextSuggestedCoursesEmailRealSender.ts │ │ │ └── infrastructure │ │ │ │ └── ConsoleLogNextSuggestedCoursesEmailRealSender.ts │ │ ├── user-course-progress │ │ │ ├── application │ │ │ │ └── complete │ │ │ │ │ └── UserCourseProgressCompleter.ts │ │ │ └── domain │ │ │ │ └── UserCourseProgressCompletedDomainEvent.ts │ │ ├── user-course-suggestions │ │ │ ├── application │ │ │ │ ├── generate │ │ │ │ │ ├── GenerateUserCourseSuggestionsOnUserCourseProgressCompleted.ts │ │ │ │ │ └── UserCourseSuggestionsGenerator.ts │ │ │ │ └── search │ │ │ │ │ └── UserCourseSuggestionsSearcher.ts │ │ │ ├── domain │ │ │ │ ├── CourseSuggestion.ts │ │ │ │ ├── CourseSuggestionsGenerator.ts │ │ │ │ ├── UserCourseSuggestions.ts │ │ │ │ ├── UserCourseSuggestionsGeneratedDomainEvent.ts │ │ │ │ └── UserCourseSuggestionsRepository.ts │ │ │ └── infrastructure │ │ │ │ ├── OllamaLlama31CourseSuggestionsGenerator.ts │ │ │ │ └── PostgresUserCourseSuggestionsRepository.ts │ │ └── users │ │ │ ├── application │ │ │ ├── find │ │ │ │ └── UserFinder.ts │ │ │ ├── registrar │ │ │ │ └── UserRegistrar.ts │ │ │ └── update-course-suggestions │ │ │ │ ├── UpdateUserCourseSuggestionsOnUserCourseSuggestionsGenerated.ts │ │ │ │ └── UserCourseSuggestionsUpdater.ts │ │ │ ├── domain │ │ │ ├── CoursesSuggestionLlm.ts │ │ │ ├── DomainUserFinder.ts │ │ │ ├── User.ts │ │ │ ├── UserDoesNotExistError.ts │ │ │ ├── UserDomainEvent.ts │ │ │ ├── UserEmail.ts │ │ │ ├── UserId.ts │ │ │ ├── UserName.ts │ │ │ ├── UserProfilePicture.ts │ │ │ ├── UserRegisteredDomainEvent.ts │ │ │ ├── UserRepository.ts │ │ │ └── UserStatus.ts │ │ │ └── infrastructure │ │ │ ├── InMemoryCacheUserRepository.ts │ │ │ └── PostgresUserRepository.ts │ │ └── shared │ │ ├── domain │ │ ├── AggregateRoot.ts │ │ ├── Clock.ts │ │ ├── DomainError.ts │ │ ├── EmailAddress.ts │ │ ├── Identifier.ts │ │ ├── NanoId.ts │ │ ├── NumberValueObject.ts │ │ ├── StringValueObject.ts │ │ └── event │ │ │ ├── DomainEvent.ts │ │ │ ├── DomainEventClass.ts │ │ │ ├── DomainEventSubscriber.ts │ │ │ └── EventBus.ts │ │ └── infrastructure │ │ ├── dependency-injection │ │ └── diod.config.ts │ │ ├── domain-event │ │ └── InMemoryEventBus.ts │ │ ├── http │ │ ├── HttpNextResponse.ts │ │ └── executeWithErrorHandling.ts │ │ └── postgres │ │ ├── PostgresConnection.ts │ │ └── PostgresRepository.ts │ ├── tests │ └── contexts │ │ ├── mooc │ │ ├── courses-progress │ │ │ └── domain │ │ │ │ └── CourseProgressFinishedDomainEventMother.ts │ │ ├── user-course-suggestions │ │ │ ├── domain │ │ │ │ ├── CourseSuggestionMother.ts │ │ │ │ └── UserCourseSuggestionsMother.ts │ │ │ └── infrastructure │ │ │ │ ├── OllamaMistralCourseSuggestionsGenerator.test.ts │ │ │ │ └── OpenAIChatGPT35CourseSuggestionsGenerator.ci.test │ │ └── users │ │ │ ├── application │ │ │ └── registrar │ │ │ │ └── UserRegistrar.test.ts │ │ │ ├── domain │ │ │ ├── DateMother.ts │ │ │ ├── UserEmailMother.ts │ │ │ ├── UserIdMother.ts │ │ │ ├── UserMother.ts │ │ │ ├── UserNameMother.ts │ │ │ ├── UserProfilePictureMother.ts │ │ │ └── UserRegisteredDomainEventMother.ts │ │ │ └── infrastructure │ │ │ ├── MockCoursesSuggestionLlm.ts │ │ │ ├── MockUserRepository.ts │ │ │ └── PostgresUserRepository.test.ts │ │ └── shared │ │ ├── domain │ │ ├── EmailAddressMother.ts │ │ └── EnumMother.ts │ │ └── infrastructure │ │ ├── MockClock.ts │ │ └── MockEventBus.ts │ └── tsconfig.json ├── LICENSE └── README.md /01-what_is_rag/3-implement_rag_pgvector/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/01-what_is_rag/3-implement_rag_pgvector/.gitignore -------------------------------------------------------------------------------- /01-what_is_rag/3-implement_rag_pgvector/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/01-what_is_rag/3-implement_rag_pgvector/README.md -------------------------------------------------------------------------------- /01-what_is_rag/3-implement_rag_pgvector/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/01-what_is_rag/3-implement_rag_pgvector/compose.yml -------------------------------------------------------------------------------- /01-what_is_rag/3-implement_rag_pgvector/databases/0-enable-pgvector.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS vector; 2 | -------------------------------------------------------------------------------- /01-what_is_rag/3-implement_rag_pgvector/databases/1-mooc.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/01-what_is_rag/3-implement_rag_pgvector/databases/1-mooc.sql -------------------------------------------------------------------------------- /01-what_is_rag/3-implement_rag_pgvector/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/01-what_is_rag/3-implement_rag_pgvector/eslint.config.mjs -------------------------------------------------------------------------------- /01-what_is_rag/3-implement_rag_pgvector/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/01-what_is_rag/3-implement_rag_pgvector/index.html -------------------------------------------------------------------------------- /01-what_is_rag/3-implement_rag_pgvector/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/01-what_is_rag/3-implement_rag_pgvector/package-lock.json -------------------------------------------------------------------------------- /01-what_is_rag/3-implement_rag_pgvector/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/01-what_is_rag/3-implement_rag_pgvector/package.json -------------------------------------------------------------------------------- /01-what_is_rag/3-implement_rag_pgvector/src/app/PostgresConnection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/01-what_is_rag/3-implement_rag_pgvector/src/app/PostgresConnection.ts -------------------------------------------------------------------------------- /01-what_is_rag/3-implement_rag_pgvector/src/app/scripts/courses.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/01-what_is_rag/3-implement_rag_pgvector/src/app/scripts/courses.json -------------------------------------------------------------------------------- /01-what_is_rag/3-implement_rag_pgvector/src/app/scripts/create-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/01-what_is_rag/3-implement_rag_pgvector/src/app/scripts/create-courses.ts -------------------------------------------------------------------------------- /01-what_is_rag/3-implement_rag_pgvector/src/app/scripts/search-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/01-what_is_rag/3-implement_rag_pgvector/src/app/scripts/search-courses.ts -------------------------------------------------------------------------------- /01-what_is_rag/3-implement_rag_pgvector/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/01-what_is_rag/3-implement_rag_pgvector/tsconfig.json -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/.github/workflows/ci.yml -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/.gitignore -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/README.md -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/compose.yml -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/databases/0-enable-pgvector.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS vector; 2 | -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/databases/1-mooc.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/databases/1-mooc.sql -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/eslint.config.mjs -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/etc/request/mooc/course_progress.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/etc/request/mooc/course_progress.http -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/jest.config.js -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/next.config.js -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/package-lock.json -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/package.json -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/public/next.svg -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/public/vercel.svg -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/app/api/mooc/course-progress/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/app/api/mooc/course-progress/route.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/app/api/mooc/users/[user-id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/app/api/mooc/users/[user-id]/route.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/app/favicon.ico -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/app/globals.css -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/app/layout.tsx -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/app/scripts/courses.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/app/scripts/courses.json -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/app/scripts/create-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/app/scripts/create-courses.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/app/scripts/search-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/app/scripts/search-courses.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/courses/domain/Course.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/courses/domain/Course.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/courses/domain/CourseId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/courses/domain/CourseId.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/courses/domain/CourseRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/courses/domain/CourseRepository.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/application/find/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/application/find/UserFinder.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/CoursesSuggestionLlm.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/CoursesSuggestionLlm.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/DomainUserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/DomainUserFinder.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/User.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserDoesNotExistError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserDoesNotExistError.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserDomainEvent.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserEmail.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserId.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserName.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserProfilePicture.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserProfilePicture.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserRegisteredDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserRegisteredDomainEvent.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserRepository.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserStatus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/mooc/users/domain/UserStatus.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/AggregateRoot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/AggregateRoot.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/Clock.ts: -------------------------------------------------------------------------------- 1 | export interface Clock { 2 | now(): Date; 3 | } 4 | -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/DomainError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/DomainError.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/EmailAddress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/EmailAddress.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/Identifier.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/Identifier.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/NanoId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/NanoId.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/NumberValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/NumberValueObject.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/StringValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/StringValueObject.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/event/DomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/event/DomainEvent.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/event/DomainEventClass.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/event/DomainEventClass.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/event/DomainEventSubscriber.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/event/DomainEventSubscriber.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/event/EventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/shared/domain/event/EventBus.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/src/contexts/shared/infrastructure/http/HttpNextResponse.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/src/contexts/shared/infrastructure/http/HttpNextResponse.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/tests/contexts/mooc/users/domain/DateMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/tests/contexts/mooc/users/domain/DateMother.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/tests/contexts/mooc/users/domain/UserEmailMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/tests/contexts/mooc/users/domain/UserEmailMother.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/tests/contexts/mooc/users/domain/UserIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/tests/contexts/mooc/users/domain/UserIdMother.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/tests/contexts/mooc/users/domain/UserMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/tests/contexts/mooc/users/domain/UserMother.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/tests/contexts/mooc/users/domain/UserNameMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/tests/contexts/mooc/users/domain/UserNameMother.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/tests/contexts/mooc/users/domain/UserProfilePictureMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/tests/contexts/mooc/users/domain/UserProfilePictureMother.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/tests/contexts/shared/domain/EmailAddressMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/tests/contexts/shared/domain/EmailAddressMother.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/tests/contexts/shared/domain/EnumMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/tests/contexts/shared/domain/EnumMother.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/tests/contexts/shared/infrastructure/MockClock.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/tests/contexts/shared/infrastructure/MockClock.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/tests/contexts/shared/infrastructure/MockEventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/tests/contexts/shared/infrastructure/MockEventBus.ts -------------------------------------------------------------------------------- /02-embedding/3-add_rag_existing_application/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/02-embedding/3-add_rag_existing_application/tsconfig.json -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/.gitignore -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/README.md -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/compose.yml -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/databases/0-enable-pgvector.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS vector; 2 | -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/databases/1-mooc.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/databases/1-mooc.sql -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/eslint.config.mjs -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/etc/search-courses-by-ids.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/etc/search-courses-by-ids.sh -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/package-lock.json -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/package.json -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/src/app/PostgresConnection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/src/app/PostgresConnection.ts -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/src/app/scripts/courses.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/src/app/scripts/courses.json -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/src/app/scripts/create-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/src/app/scripts/create-courses.ts -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/src/app/scripts/search-courses-by-ids-documents.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/src/app/scripts/search-courses-by-ids-documents.ts -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/src/app/scripts/search-courses-by-ids.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/src/app/scripts/search-courses-by-ids.ts -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/src/app/scripts/search-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/src/app/scripts/search-courses.ts -------------------------------------------------------------------------------- /03-add_rag/1-what_to_store_embedding/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/1-what_to_store_embedding/tsconfig.json -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/.github/workflows/ci.yml -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/.gitignore -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/README.md -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/compose.yml -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/databases/0-enable-pgvector.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS vector; 2 | -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/databases/1-mooc.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/databases/1-mooc.sql -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/eslint.config.mjs -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/etc/request/mooc/course_progress.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/etc/request/mooc/course_progress.http -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/jest.config.js -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/next.config.js -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/package-lock.json -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/package.json -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/public/next.svg -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/public/vercel.svg -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/app/api/mooc/course-progress/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/app/api/mooc/course-progress/route.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/app/api/mooc/users/[user-id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/app/api/mooc/users/[user-id]/route.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/app/favicon.ico -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/app/globals.css -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/app/layout.tsx -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/app/scripts/courses.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/app/scripts/courses.json -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/app/scripts/create-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/app/scripts/create-courses.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/app/scripts/search-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/app/scripts/search-courses.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/courses/domain/Course.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/courses/domain/Course.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/courses/domain/CourseId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/courses/domain/CourseId.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/courses/domain/CourseRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/courses/domain/CourseRepository.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/courses/infrastructure/PostgresCourseRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/courses/infrastructure/PostgresCourseRepository.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/user-course-suggestions/domain/CourseSuggestion.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/user-course-suggestions/domain/CourseSuggestion.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/application/find/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/application/find/UserFinder.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/application/registrar/UserRegistrar.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/application/registrar/UserRegistrar.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/CoursesSuggestionLlm.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/CoursesSuggestionLlm.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/DomainUserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/DomainUserFinder.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/User.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserDoesNotExistError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserDoesNotExistError.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserDomainEvent.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserEmail.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserId.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserName.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserProfilePicture.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserProfilePicture.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserRegisteredDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserRegisteredDomainEvent.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserRepository.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserStatus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/domain/UserStatus.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/infrastructure/InMemoryCacheUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/infrastructure/InMemoryCacheUserRepository.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/mooc/users/infrastructure/PostgresUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/mooc/users/infrastructure/PostgresUserRepository.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/domain/AggregateRoot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/domain/AggregateRoot.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/domain/Clock.ts: -------------------------------------------------------------------------------- 1 | export interface Clock { 2 | now(): Date; 3 | } 4 | -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/domain/DomainError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/domain/DomainError.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/domain/EmailAddress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/domain/EmailAddress.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/domain/Identifier.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/domain/Identifier.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/domain/NanoId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/domain/NanoId.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/domain/NumberValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/domain/NumberValueObject.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/domain/StringValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/domain/StringValueObject.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/domain/event/DomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/domain/event/DomainEvent.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/domain/event/DomainEventClass.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/domain/event/DomainEventClass.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/domain/event/DomainEventSubscriber.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/domain/event/DomainEventSubscriber.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/domain/event/EventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/domain/event/EventBus.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/infrastructure/dependency-injection/diod.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/infrastructure/dependency-injection/diod.config.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/infrastructure/domain-event/InMemoryEventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/infrastructure/domain-event/InMemoryEventBus.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/infrastructure/http/HttpNextResponse.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/infrastructure/http/HttpNextResponse.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/infrastructure/http/executeWithErrorHandling.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/infrastructure/http/executeWithErrorHandling.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/infrastructure/postgres/PostgresConnection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/infrastructure/postgres/PostgresConnection.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/src/contexts/shared/infrastructure/postgres/PostgresRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/src/contexts/shared/infrastructure/postgres/PostgresRepository.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/application/registrar/UserRegistrar.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/application/registrar/UserRegistrar.test.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/domain/DateMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/domain/DateMother.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/domain/UserEmailMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/domain/UserEmailMother.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/domain/UserIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/domain/UserIdMother.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/domain/UserMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/domain/UserMother.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/domain/UserNameMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/domain/UserNameMother.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/domain/UserProfilePictureMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/domain/UserProfilePictureMother.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/domain/UserRegisteredDomainEventMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/domain/UserRegisteredDomainEventMother.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/infrastructure/MockCoursesSuggestionLlm.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/infrastructure/MockCoursesSuggestionLlm.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/infrastructure/MockUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tests/contexts/mooc/users/infrastructure/MockUserRepository.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tests/contexts/shared/domain/EmailAddressMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tests/contexts/shared/domain/EmailAddressMother.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tests/contexts/shared/domain/EnumMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tests/contexts/shared/domain/EnumMother.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tests/contexts/shared/infrastructure/MockClock.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tests/contexts/shared/infrastructure/MockClock.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tests/contexts/shared/infrastructure/MockEventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tests/contexts/shared/infrastructure/MockEventBus.ts -------------------------------------------------------------------------------- /03-add_rag/2-add_embedding_context/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/2-add_embedding_context/tsconfig.json -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/.github/workflows/ci.yml -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/.gitignore -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/README.md -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/compose.yml -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/databases/0-enable-pgvector.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS vector; 2 | -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/databases/1-mooc.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/databases/1-mooc.sql -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/eslint.config.mjs -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/etc/request/mooc/course_progress.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/etc/request/mooc/course_progress.http -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/jest.config.js -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/next.config.js -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/package-lock.json -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/package.json -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/public/next.svg -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/public/vercel.svg -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/app/api/mooc/course-progress/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/app/api/mooc/course-progress/route.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/app/api/mooc/users/[user-id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/app/api/mooc/users/[user-id]/route.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/app/favicon.ico -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/app/globals.css -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/app/layout.tsx -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/app/scripts/courses.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/app/scripts/courses.json -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/app/scripts/create-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/app/scripts/create-courses.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/app/scripts/search-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/app/scripts/search-courses.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/courses/domain/Course.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/courses/domain/Course.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/courses/domain/CourseId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/courses/domain/CourseId.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/courses/domain/CourseRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/courses/domain/CourseRepository.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/courses/infrastructure/PostgresCourseRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/courses/infrastructure/PostgresCourseRepository.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/user-course-suggestions/domain/CourseSuggestion.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/user-course-suggestions/domain/CourseSuggestion.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/user-course-suggestions/domain/UserCourseSuggestions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/user-course-suggestions/domain/UserCourseSuggestions.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/application/find/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/application/find/UserFinder.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/application/registrar/UserRegistrar.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/application/registrar/UserRegistrar.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/CoursesSuggestionLlm.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/CoursesSuggestionLlm.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/DomainUserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/DomainUserFinder.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/User.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserDoesNotExistError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserDoesNotExistError.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserDomainEvent.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserEmail.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserId.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserName.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserProfilePicture.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserProfilePicture.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserRegisteredDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserRegisteredDomainEvent.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserRepository.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserStatus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/domain/UserStatus.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/infrastructure/InMemoryCacheUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/infrastructure/InMemoryCacheUserRepository.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/infrastructure/PostgresUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/mooc/users/infrastructure/PostgresUserRepository.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/AggregateRoot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/AggregateRoot.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/Clock.ts: -------------------------------------------------------------------------------- 1 | export interface Clock { 2 | now(): Date; 3 | } 4 | -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/DomainError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/DomainError.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/EmailAddress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/EmailAddress.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/Identifier.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/Identifier.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/NanoId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/NanoId.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/NumberValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/NumberValueObject.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/StringValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/StringValueObject.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/event/DomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/event/DomainEvent.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/event/DomainEventClass.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/event/DomainEventClass.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/event/DomainEventSubscriber.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/event/DomainEventSubscriber.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/event/EventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/domain/event/EventBus.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/infrastructure/dependency-injection/diod.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/infrastructure/dependency-injection/diod.config.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/infrastructure/domain-event/InMemoryEventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/infrastructure/domain-event/InMemoryEventBus.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/infrastructure/http/HttpNextResponse.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/infrastructure/http/HttpNextResponse.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/infrastructure/http/executeWithErrorHandling.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/infrastructure/http/executeWithErrorHandling.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/infrastructure/postgres/PostgresConnection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/infrastructure/postgres/PostgresConnection.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/src/contexts/shared/infrastructure/postgres/PostgresRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/src/contexts/shared/infrastructure/postgres/PostgresRepository.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/application/registrar/UserRegistrar.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/application/registrar/UserRegistrar.test.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/domain/DateMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/domain/DateMother.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/domain/UserEmailMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/domain/UserEmailMother.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/domain/UserIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/domain/UserIdMother.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/domain/UserMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/domain/UserMother.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/domain/UserNameMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/domain/UserNameMother.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/domain/UserProfilePictureMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/domain/UserProfilePictureMother.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/domain/UserRegisteredDomainEventMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/domain/UserRegisteredDomainEventMother.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/infrastructure/MockCoursesSuggestionLlm.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/infrastructure/MockCoursesSuggestionLlm.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/infrastructure/MockUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/infrastructure/MockUserRepository.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/infrastructure/PostgresUserRepository.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/mooc/users/infrastructure/PostgresUserRepository.test.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/shared/domain/EmailAddressMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/shared/domain/EmailAddressMother.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/shared/domain/EnumMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/shared/domain/EnumMother.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/shared/infrastructure/MockClock.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/shared/infrastructure/MockClock.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tests/contexts/shared/infrastructure/MockEventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tests/contexts/shared/infrastructure/MockEventBus.ts -------------------------------------------------------------------------------- /03-add_rag/3-rag_sort_by_recent/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/03-add_rag/3-rag_sort_by_recent/tsconfig.json -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/1-simple_example/.gitignore -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/1-simple_example/README.md -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/1-simple_example/compose.yml -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/databases/0-enable-pgai.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS ai CASCADE; 2 | -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/databases/1-mooc.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/1-simple_example/databases/1-mooc.sql -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/databases/2-add_vectorizer_to_courses.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/1-simple_example/databases/2-add_vectorizer_to_courses.sql -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/1-simple_example/eslint.config.mjs -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/etc/1-create_courses.sh: -------------------------------------------------------------------------------- 1 | npm run create-courses 2 | -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/etc/2-search_courses.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/1-simple_example/etc/2-search_courses.sh -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/1-simple_example/package-lock.json -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/1-simple_example/package.json -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/src/app/PostgresConnection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/1-simple_example/src/app/PostgresConnection.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/src/app/scripts/courses.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/1-simple_example/src/app/scripts/courses.json -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/src/app/scripts/create-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/1-simple_example/src/app/scripts/create-courses.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/src/app/scripts/search-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/1-simple_example/src/app/scripts/search-courses.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/1-simple_example/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/1-simple_example/tsconfig.json -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/.github/workflows/ci.yml -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/.gitignore -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/README.md -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/compose.yml -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/databases/0-enable-pgvector.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS ai CASCADE; 2 | -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/databases/1-mooc.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/databases/1-mooc.sql -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/databases/2-add_vectorizer_to_courses.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/databases/2-add_vectorizer_to_courses.sql -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/eslint.config.mjs -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/etc/request/mooc/course_progress.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/etc/request/mooc/course_progress.http -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/jest.config.js -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/next.config.js -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/package-lock.json -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/package.json -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/public/next.svg -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/public/vercel.svg -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/app/api/mooc/course-progress/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/app/api/mooc/course-progress/route.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/app/api/mooc/users/[user-id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/app/api/mooc/users/[user-id]/route.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/app/favicon.ico -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/app/globals.css -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/app/layout.tsx -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/app/scripts/courses.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/app/scripts/courses.json -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/app/scripts/create-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/app/scripts/create-courses.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/app/scripts/search-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/app/scripts/search-courses.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/courses/domain/Course.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/courses/domain/Course.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/courses/domain/CourseId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/courses/domain/CourseId.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/courses/domain/CourseRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/courses/domain/CourseRepository.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/application/find/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/application/find/UserFinder.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/CoursesSuggestionLlm.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/CoursesSuggestionLlm.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/DomainUserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/DomainUserFinder.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/User.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserDoesNotExistError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserDoesNotExistError.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserDomainEvent.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserEmail.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserId.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserName.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserProfilePicture.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserProfilePicture.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserRegisteredDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserRegisteredDomainEvent.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserRepository.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserStatus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/mooc/users/domain/UserStatus.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/AggregateRoot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/AggregateRoot.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/Clock.ts: -------------------------------------------------------------------------------- 1 | export interface Clock { 2 | now(): Date; 3 | } 4 | -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/DomainError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/DomainError.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/EmailAddress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/EmailAddress.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/Identifier.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/Identifier.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/NanoId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/NanoId.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/NumberValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/NumberValueObject.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/StringValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/StringValueObject.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/event/DomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/event/DomainEvent.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/event/DomainEventClass.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/event/DomainEventClass.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/event/DomainEventSubscriber.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/event/DomainEventSubscriber.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/event/EventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/domain/event/EventBus.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/infrastructure/http/HttpNextResponse.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/src/contexts/shared/infrastructure/http/HttpNextResponse.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/mooc/users/domain/DateMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/mooc/users/domain/DateMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/mooc/users/domain/UserEmailMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/mooc/users/domain/UserEmailMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/mooc/users/domain/UserIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/mooc/users/domain/UserIdMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/mooc/users/domain/UserMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/mooc/users/domain/UserMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/mooc/users/domain/UserNameMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/mooc/users/domain/UserNameMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/shared/domain/EmailAddressMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/shared/domain/EmailAddressMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/shared/domain/EnumMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/shared/domain/EnumMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/shared/infrastructure/MockClock.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/shared/infrastructure/MockClock.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/shared/infrastructure/MockEventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/tests/contexts/shared/infrastructure/MockEventBus.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/1-pgai/2-complex_example/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/1-pgai/2-complex_example/tsconfig.json -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/.github/workflows/ci.yml -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/.gitignore -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/README.md -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/compose.yml -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/databases/mysql/1-mooc.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/databases/mysql/1-mooc.sql -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/databases/postgres/0-enable-pgvector.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS vector; 2 | -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/databases/postgres/1-mooc.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/databases/postgres/1-mooc.sql -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/eslint.config.mjs -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/etc/request/mooc/course_progress.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/etc/request/mooc/course_progress.http -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/jest.config.js -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/next.config.js -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/package-lock.json -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/package.json -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/public/next.svg -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/public/vercel.svg -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/app/api/mooc/course-progress/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/app/api/mooc/course-progress/route.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/app/api/mooc/users/[user-id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/app/api/mooc/users/[user-id]/route.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/app/favicon.ico -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/app/globals.css -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/app/layout.tsx -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/app/scripts/courses.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/app/scripts/courses.json -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/app/scripts/create-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/app/scripts/create-courses.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/app/scripts/search-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/app/scripts/search-courses.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/courses/domain/Course.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/courses/domain/Course.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/courses/domain/CourseId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/courses/domain/CourseId.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/courses/domain/CourseRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/courses/domain/CourseRepository.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/application/find/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/application/find/UserFinder.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/application/registrar/UserRegistrar.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/application/registrar/UserRegistrar.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/CoursesSuggestionLlm.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/CoursesSuggestionLlm.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/DomainUserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/DomainUserFinder.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/User.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserDoesNotExistError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserDoesNotExistError.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserDomainEvent.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserEmail.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserId.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserName.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserProfilePicture.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserProfilePicture.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserRegisteredDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserRegisteredDomainEvent.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserRepository.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserStatus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/domain/UserStatus.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/infrastructure/PostgresUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/mooc/users/infrastructure/PostgresUserRepository.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/AggregateRoot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/AggregateRoot.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/Clock.ts: -------------------------------------------------------------------------------- 1 | export interface Clock { 2 | now(): Date; 3 | } 4 | -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/DomainError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/DomainError.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/EmailAddress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/EmailAddress.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/Identifier.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/Identifier.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/NanoId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/NanoId.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/NumberValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/NumberValueObject.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/StringValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/StringValueObject.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/event/DomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/event/DomainEvent.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/event/DomainEventClass.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/event/DomainEventClass.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/event/DomainEventSubscriber.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/event/DomainEventSubscriber.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/event/EventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/shared/domain/event/EventBus.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/shared/infrastructure/http/HttpNextResponse.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/shared/infrastructure/http/HttpNextResponse.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/src/contexts/shared/infrastructure/mariadb/MariaDBConnection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/src/contexts/shared/infrastructure/mariadb/MariaDBConnection.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/tests/contexts/mooc/users/domain/DateMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/tests/contexts/mooc/users/domain/DateMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/tests/contexts/mooc/users/domain/UserEmailMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/tests/contexts/mooc/users/domain/UserEmailMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/tests/contexts/mooc/users/domain/UserIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/tests/contexts/mooc/users/domain/UserIdMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/tests/contexts/mooc/users/domain/UserMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/tests/contexts/mooc/users/domain/UserMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/tests/contexts/mooc/users/domain/UserNameMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/tests/contexts/mooc/users/domain/UserNameMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/tests/contexts/mooc/users/domain/UserProfilePictureMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/tests/contexts/mooc/users/domain/UserProfilePictureMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/tests/contexts/mooc/users/infrastructure/MockUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/tests/contexts/mooc/users/infrastructure/MockUserRepository.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/tests/contexts/shared/domain/EmailAddressMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/tests/contexts/shared/domain/EmailAddressMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/tests/contexts/shared/domain/EnumMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/tests/contexts/shared/domain/EnumMother.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/tests/contexts/shared/infrastructure/MockClock.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/tests/contexts/shared/infrastructure/MockClock.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/tests/contexts/shared/infrastructure/MockEventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/tests/contexts/shared/infrastructure/MockEventBus.ts -------------------------------------------------------------------------------- /04-what_db_to_choose/3-combine_databases/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/04-what_db_to_choose/3-combine_databases/tsconfig.json -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/1-pdfs/.gitignore -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/1-pdfs/README.md -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/codely/DDD y CQRS_ Preguntas Frecuentes - Blog ﹤🍍﹥ Codely.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/1-pdfs/codely/DDD y CQRS_ Preguntas Frecuentes - Blog ﹤🍍﹥ Codely.pdf -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/codely/Finder kata en Scala - Dejando los bucles atrás ƛ - Blog ﹤🍍﹥ Codely.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/1-pdfs/codely/Finder kata en Scala - Dejando los bucles atrás ƛ - Blog ﹤🍍﹥ Codely.pdf -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/codely/Making off CodelyTV Pro 🚀 - Blog ﹤🍍﹥ Codely.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/1-pdfs/codely/Making off CodelyTV Pro 🚀 - Blog ﹤🍍﹥ Codely.pdf -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/1-pdfs/compose.yml -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/databases/0-enable-pgvector.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS vector; 2 | -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/databases/1-mooc.sql: -------------------------------------------------------------------------------- 1 | CREATE SCHEMA mooc; 2 | -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/1-pdfs/eslint.config.mjs -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/etc/search-courses-by-ids.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/1-pdfs/etc/search-courses-by-ids.sh -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/1-pdfs/package-lock.json -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/1-pdfs/package.json -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/src/app/PostgresConnection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/1-pdfs/src/app/PostgresConnection.ts -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/src/app/scripts/scrape-posts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/1-pdfs/src/app/scripts/scrape-posts.ts -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/src/app/scripts/search-posts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/1-pdfs/src/app/scripts/search-posts.ts -------------------------------------------------------------------------------- /05-3r_party_data/1-pdfs/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/1-pdfs/tsconfig.json -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/2-declarative_pdfs/.gitignore -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/2-declarative_pdfs/README.md -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/codely/DDD y CQRS_ Preguntas Frecuentes - Blog ﹤🍍﹥ Codely.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/2-declarative_pdfs/codely/DDD y CQRS_ Preguntas Frecuentes - Blog ﹤🍍﹥ Codely.pdf -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/codely/Making off CodelyTV Pro 🚀 - Blog ﹤🍍﹥ Codely.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/2-declarative_pdfs/codely/Making off CodelyTV Pro 🚀 - Blog ﹤🍍﹥ Codely.pdf -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/2-declarative_pdfs/compose.yml -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/databases/0-enable-pgvector.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS vector; 2 | -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/databases/1-mooc.sql: -------------------------------------------------------------------------------- 1 | CREATE SCHEMA mooc; 2 | -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/2-declarative_pdfs/eslint.config.mjs -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/etc/search-courses-by-ids.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/2-declarative_pdfs/etc/search-courses-by-ids.sh -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/2-declarative_pdfs/package-lock.json -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/2-declarative_pdfs/package.json -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/src/app/PostgresConnection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/2-declarative_pdfs/src/app/PostgresConnection.ts -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/src/app/scripts/scrape-posts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/2-declarative_pdfs/src/app/scripts/scrape-posts.ts -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/src/app/scripts/search-posts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/2-declarative_pdfs/src/app/scripts/search-posts.ts -------------------------------------------------------------------------------- /05-3r_party_data/2-declarative_pdfs/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/2-declarative_pdfs/tsconfig.json -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/.gitignore -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/README.md -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Añade Inteligencia Artificial siguiendo buenas prácticas ﹤🍍﹥ Codely_files/state.js: -------------------------------------------------------------------------------- 1 | CookieConsent.latestVersion=1; -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/1.gif -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/aws-sqs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/aws-sqs.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/cache.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/cache.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/criteria.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/criteria.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/cursos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/cursos.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/errores.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/errores.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/nb5f8bpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/nb5f8bpp -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/rabbitmq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/rabbitmq.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/state.js: -------------------------------------------------------------------------------- 1 | CookieConsent.latestVersion=1; -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/uc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/uc.js -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/vistas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Asincronía en JavaScript ﹤🍍﹥ Codely_files/vistas.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/1.gif -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/aws-sqs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/aws-sqs.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/bc-v4.min.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/bc-v4.min.html -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/cache.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/cache.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/clean-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/clean-code.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/criteria.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/criteria.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/cursos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/cursos.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/errores.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/errores.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/javier-ferrer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/javier-ferrer.jpg -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/nb5f8bpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/nb5f8bpp -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/proyecciones.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/proyecciones.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/rabbitmq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/rabbitmq.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/rafa-gomez.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/rafa-gomez.jpg -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/saved_resource.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/saved_resource.html -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/state.js: -------------------------------------------------------------------------------- 1 | CookieConsent.latestVersion=1; -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/transacciones.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/transacciones.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/uc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/uc.js -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/vistas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Auditoría Holaluz ﹤🍍﹥ Codely_files/vistas.png -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de DDD, Microservicios e Infra en Audiense, Genially y Codely ﹤🍍﹥ Codely_files/state.js: -------------------------------------------------------------------------------- 1 | CookieConsent.latestVersion=1; -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Diseño de infraestructura_ AWS SQS como cola de mensajería ﹤🍍﹥ Codely_files/state.js: -------------------------------------------------------------------------------- 1 | CookieConsent.latestVersion=1; -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Diseño de infraestructura_ RabbitMQ como cola de mensajería ﹤🍍﹥ Codely_files/state.js: -------------------------------------------------------------------------------- 1 | CookieConsent.latestVersion=1; -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Modelado del dominio_ Value Objects ﹤🍍﹥ Codely_files/state.js: -------------------------------------------------------------------------------- 1 | CookieConsent.latestVersion=1; -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Patrones de Diseño_ Criteria ﹤🍍﹥ Codely_files/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Patrones de Diseño_ Criteria ﹤🍍﹥ Codely_files/1.gif -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Patrones de Diseño_ Criteria ﹤🍍﹥ Codely_files/nb5f8bpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Patrones de Diseño_ Criteria ﹤🍍﹥ Codely_files/nb5f8bpp -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Patrones de Diseño_ Criteria ﹤🍍﹥ Codely_files/state.js: -------------------------------------------------------------------------------- 1 | CookieConsent.latestVersion=1; -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Patrones de Diseño_ Criteria ﹤🍍﹥ Codely_files/uc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/Curso de Patrones de Diseño_ Criteria ﹤🍍﹥ Codely_files/uc.js -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/Curso de Tratamiento de datos en Bash_ Gestiona archivos JSON, XML, YAML ﹤🍍﹥ Codely_files/state.js: -------------------------------------------------------------------------------- 1 | CookieConsent.latestVersion=1; -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/anade-inteligencia-artificial-siguiendo-buenas-practicas.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/anade-inteligencia-artificial-siguiendo-buenas-practicas.html -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/asincronia-en-javascript.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/asincronia-en-javascript.html -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/auditoria-holaluz.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/auditoria-holaluz.html -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/ddd-microservicios-e-infra-en-audiense-genially-y-codely.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/ddd-microservicios-e-infra-en-audiense-genially-y-codely.html -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/diseno-de-infraestructura-aws-sqs-como-cola-de-mensajeria.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/diseno-de-infraestructura-aws-sqs-como-cola-de-mensajeria.html -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/diseno-de-infraestructura-rabbitmq-como-cola-de-mensajeria.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/diseno-de-infraestructura-rabbitmq-como-cola-de-mensajeria.html -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/index.html -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/modelado-del-dominio-value-objects.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/modelado-del-dominio-value-objects.html -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/patrones-de-diseno-criteria.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/patrones-de-diseno-criteria.html -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/codely/tratamiento-de-datos-en-bash-gestiona-archivos-json-xml-yaml.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/codely/tratamiento-de-datos-en-bash-gestiona-archivos-json-xml-yaml.html -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/compose.yml -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/databases/0-enable-pgvector.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS vector; 2 | -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/databases/1-mooc.sql: -------------------------------------------------------------------------------- 1 | CREATE SCHEMA mooc; 2 | -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/eslint.config.mjs -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/etc/search-courses-by-ids.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/etc/search-courses-by-ids.sh -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/package-lock.json -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/package.json -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/src/app/PostgresConnection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/src/app/PostgresConnection.ts -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/src/app/scripts/scrape-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/src/app/scripts/scrape-courses.ts -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/src/app/scripts/search-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/src/app/scripts/search-courses.ts -------------------------------------------------------------------------------- /05-3r_party_data/3-web_scrapping/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/05-3r_party_data/3-web_scrapping/tsconfig.json -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/06-chunking/2-optimize_import_pipeline/.gitignore -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/06-chunking/2-optimize_import_pipeline/README.md -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/codely/DDD y CQRS_ Preguntas Frecuentes - Blog ﹤🍍﹥ Codely.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/06-chunking/2-optimize_import_pipeline/codely/DDD y CQRS_ Preguntas Frecuentes - Blog ﹤🍍﹥ Codely.pdf -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/codely/Making off CodelyTV Pro 🚀 - Blog ﹤🍍﹥ Codely.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/06-chunking/2-optimize_import_pipeline/codely/Making off CodelyTV Pro 🚀 - Blog ﹤🍍﹥ Codely.pdf -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/06-chunking/2-optimize_import_pipeline/compose.yml -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/databases/0-enable-pgvector.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS vector; 2 | -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/databases/1-mooc.sql: -------------------------------------------------------------------------------- 1 | CREATE SCHEMA mooc; 2 | -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/06-chunking/2-optimize_import_pipeline/eslint.config.mjs -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/etc/search-courses-by-ids.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/06-chunking/2-optimize_import_pipeline/etc/search-courses-by-ids.sh -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/06-chunking/2-optimize_import_pipeline/package-lock.json -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/06-chunking/2-optimize_import_pipeline/package.json -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/src/app/PostgresConnection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/06-chunking/2-optimize_import_pipeline/src/app/PostgresConnection.ts -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/src/app/scripts/scrape-posts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/06-chunking/2-optimize_import_pipeline/src/app/scripts/scrape-posts.ts -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/src/app/scripts/search-posts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/06-chunking/2-optimize_import_pipeline/src/app/scripts/search-posts.ts -------------------------------------------------------------------------------- /06-chunking/2-optimize_import_pipeline/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/06-chunking/2-optimize_import_pipeline/tsconfig.json -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/.github/workflows/ci.yml -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/.gitignore -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/README.md -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/compose.yml -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/databases/0-enable-pgvector.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS vector; 2 | -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/databases/1-mooc.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/databases/1-mooc.sql -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/eslint.config.mjs -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/etc/request/mooc/course_progress.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/etc/request/mooc/course_progress.http -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/jest.config.js -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/next.config.js -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/package-lock.json -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/package.json -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/public/next.svg -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/public/vercel.svg -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/src/app/favicon.ico -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/src/app/globals.css -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/src/app/layout.tsx -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/src/app/scripts/courses.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/src/app/scripts/courses.json -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/src/app/scripts/create-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/src/app/scripts/create-courses.ts -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/src/app/scripts/search-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/src/app/scripts/search-courses.ts -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/src/contexts/shared/domain/Clock.ts: -------------------------------------------------------------------------------- 1 | export interface Clock { 2 | now(): Date; 3 | } 4 | -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/1-only_one_model/tsconfig.json -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/.github/workflows/ci.yml -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/.gitignore -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/README.md -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/compose.yml -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/databases/0-enable-pgvector.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS vector; 2 | -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/databases/1-mooc.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/databases/1-mooc.sql -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/eslint.config.mjs -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/etc/request/mooc/course_progress.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/etc/request/mooc/course_progress.http -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/jest.config.js -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/next.config.js -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/package-lock.json -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/package.json -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/public/next.svg -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/public/vercel.svg -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/app/favicon.ico -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/app/globals.css -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/app/layout.tsx -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/app/scripts/courses.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/app/scripts/courses.json -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/app/scripts/create-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/app/scripts/create-courses.ts -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/app/scripts/search-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/app/scripts/search-courses.ts -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/contexts/mooc/users/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/contexts/mooc/users/domain/User.ts -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/contexts/shared/domain/Clock.ts: -------------------------------------------------------------------------------- 1 | export interface Clock { 2 | now(): Date; 3 | } 4 | -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/contexts/shared/domain/NanoId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/src/contexts/shared/domain/NanoId.ts -------------------------------------------------------------------------------- /07-best_embedding_model/2-migrate_embedding_models/2-two_models/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/07-best_embedding_model/2-migrate_embedding_models/2-two_models/tsconfig.json -------------------------------------------------------------------------------- /99-poc/1-with_send_email/.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/.github/workflows/ci.yml -------------------------------------------------------------------------------- /99-poc/1-with_send_email/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/.gitignore -------------------------------------------------------------------------------- /99-poc/1-with_send_email/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/README.md -------------------------------------------------------------------------------- /99-poc/1-with_send_email/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/compose.yml -------------------------------------------------------------------------------- /99-poc/1-with_send_email/databases/0-enable-pgvector.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS vector; 2 | -------------------------------------------------------------------------------- /99-poc/1-with_send_email/databases/1-mooc.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/databases/1-mooc.sql -------------------------------------------------------------------------------- /99-poc/1-with_send_email/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/eslint.config.mjs -------------------------------------------------------------------------------- /99-poc/1-with_send_email/etc/request/mooc/course_progress.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/etc/request/mooc/course_progress.http -------------------------------------------------------------------------------- /99-poc/1-with_send_email/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/jest.config.js -------------------------------------------------------------------------------- /99-poc/1-with_send_email/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/next.config.js -------------------------------------------------------------------------------- /99-poc/1-with_send_email/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/package-lock.json -------------------------------------------------------------------------------- /99-poc/1-with_send_email/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/package.json -------------------------------------------------------------------------------- /99-poc/1-with_send_email/public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/public/next.svg -------------------------------------------------------------------------------- /99-poc/1-with_send_email/public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/public/vercel.svg -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/app/api/mooc/course-progress/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/app/api/mooc/course-progress/route.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/app/api/mooc/users/[user-id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/app/api/mooc/users/[user-id]/route.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/app/favicon.ico -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/app/globals.css -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/app/layout.tsx -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/app/scripts/courses.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/app/scripts/courses.json -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/app/scripts/create-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/app/scripts/create-courses.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/app/scripts/search-courses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/app/scripts/search-courses.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/courses/application/search-by-ids/CoursesByIdsSearcher.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/courses/application/search-by-ids/CoursesByIdsSearcher.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/courses/domain/Course.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/courses/domain/Course.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/courses/domain/CourseId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/courses/domain/CourseId.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/courses/domain/CourseRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/courses/domain/CourseRepository.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/courses/infrastructure/PostgresCourseRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/courses/infrastructure/PostgresCourseRepository.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/user-course-suggestions/domain/CourseSuggestion.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/user-course-suggestions/domain/CourseSuggestion.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/user-course-suggestions/domain/CourseSuggestionsGenerator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/user-course-suggestions/domain/CourseSuggestionsGenerator.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/user-course-suggestions/domain/UserCourseSuggestions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/user-course-suggestions/domain/UserCourseSuggestions.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/application/find/UserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/application/find/UserFinder.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/application/registrar/UserRegistrar.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/application/registrar/UserRegistrar.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/domain/CoursesSuggestionLlm.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/domain/CoursesSuggestionLlm.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/domain/DomainUserFinder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/domain/DomainUserFinder.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/domain/User.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserDoesNotExistError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserDoesNotExistError.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserDomainEvent.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserEmail.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserId.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserName.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserProfilePicture.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserProfilePicture.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserRegisteredDomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserRegisteredDomainEvent.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserRepository.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserStatus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/domain/UserStatus.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/infrastructure/InMemoryCacheUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/infrastructure/InMemoryCacheUserRepository.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/mooc/users/infrastructure/PostgresUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/mooc/users/infrastructure/PostgresUserRepository.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/domain/AggregateRoot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/domain/AggregateRoot.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/domain/Clock.ts: -------------------------------------------------------------------------------- 1 | export interface Clock { 2 | now(): Date; 3 | } 4 | -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/domain/DomainError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/domain/DomainError.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/domain/EmailAddress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/domain/EmailAddress.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/domain/Identifier.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/domain/Identifier.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/domain/NanoId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/domain/NanoId.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/domain/NumberValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/domain/NumberValueObject.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/domain/StringValueObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/domain/StringValueObject.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/domain/event/DomainEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/domain/event/DomainEvent.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/domain/event/DomainEventClass.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/domain/event/DomainEventClass.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/domain/event/DomainEventSubscriber.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/domain/event/DomainEventSubscriber.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/domain/event/EventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/domain/event/EventBus.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/infrastructure/dependency-injection/diod.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/infrastructure/dependency-injection/diod.config.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/infrastructure/domain-event/InMemoryEventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/infrastructure/domain-event/InMemoryEventBus.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/infrastructure/http/HttpNextResponse.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/infrastructure/http/HttpNextResponse.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/infrastructure/http/executeWithErrorHandling.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/infrastructure/http/executeWithErrorHandling.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/infrastructure/postgres/PostgresConnection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/infrastructure/postgres/PostgresConnection.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/src/contexts/shared/infrastructure/postgres/PostgresRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/src/contexts/shared/infrastructure/postgres/PostgresRepository.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/mooc/user-course-suggestions/domain/CourseSuggestionMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/mooc/user-course-suggestions/domain/CourseSuggestionMother.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/mooc/users/application/registrar/UserRegistrar.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/mooc/users/application/registrar/UserRegistrar.test.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/mooc/users/domain/DateMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/mooc/users/domain/DateMother.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/mooc/users/domain/UserEmailMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/mooc/users/domain/UserEmailMother.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/mooc/users/domain/UserIdMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/mooc/users/domain/UserIdMother.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/mooc/users/domain/UserMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/mooc/users/domain/UserMother.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/mooc/users/domain/UserNameMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/mooc/users/domain/UserNameMother.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/mooc/users/domain/UserProfilePictureMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/mooc/users/domain/UserProfilePictureMother.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/mooc/users/domain/UserRegisteredDomainEventMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/mooc/users/domain/UserRegisteredDomainEventMother.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/mooc/users/infrastructure/MockCoursesSuggestionLlm.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/mooc/users/infrastructure/MockCoursesSuggestionLlm.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/mooc/users/infrastructure/MockUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/mooc/users/infrastructure/MockUserRepository.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/mooc/users/infrastructure/PostgresUserRepository.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/mooc/users/infrastructure/PostgresUserRepository.test.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/shared/domain/EmailAddressMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/shared/domain/EmailAddressMother.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/shared/domain/EnumMother.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/shared/domain/EnumMother.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/shared/infrastructure/MockClock.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/shared/infrastructure/MockClock.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tests/contexts/shared/infrastructure/MockEventBus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tests/contexts/shared/infrastructure/MockEventBus.ts -------------------------------------------------------------------------------- /99-poc/1-with_send_email/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/99-poc/1-with_send_email/tsconfig.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodelyTV/ai-search_engine_with_rag-course/HEAD/README.md --------------------------------------------------------------------------------