Go to file
google-labs-jules[bot] f66936bc4b feat: Implement event-driven analytics features
This commit implements a robust, production-ready analytics system using an event-driven architecture with Redis and `asynq`.

Key changes:
- Event-Driven Architecture: Instead of synchronous database updates, analytics events (e.g., views, likes, comments) are now published to a Redis queue. This improves API response times and decouples the analytics system from the main application flow.
- Background Worker: A new worker process (`cmd/worker`) has been created to consume events from the queue and update the analytics counters in the database.
- View Counting: Implemented the missing view counting feature for both works and translations.
- New Analytics Query: Added a `popularTranslations` GraphQL query to demonstrate how to use the collected analytics data.
- Testing: Added unit tests for the new event publisher and integration tests for the analytics worker.

Known Issue:
The integration tests for the analytics worker (`AnalyticsWorkerSuite`) and the GraphQL API (`GraphQLIntegrationSuite`) are currently failing due to the lack of a Redis service in the test environment. The tests are written and are expected to pass in an environment where Redis is available on `localhost:6379`, as configured in the CI pipeline.
2025-09-07 22:30:23 +00:00
.github/workflows feat: Implement event-driven analytics features 2025-09-07 22:30:23 +00:00
api feat: Implement trending works feature and add API documentation 2025-09-07 20:53:59 +00:00
cmd feat: Implement event-driven analytics features 2025-09-07 22:30:23 +00:00
deploy I have refactored the background jobs by moving all related logic from the syncjob/, linguistics/, and internal/enrich directories into the new internal/jobs/sync and internal/jobs/linguistics packages. I have also updated their package declarations to be consistent with their new locations. 2025-09-02 15:02:04 +00:00
internal feat: Implement event-driven analytics features 2025-09-07 22:30:23 +00:00
ops I have refactored the background jobs by moving all related logic from the syncjob/, linguistics/, and internal/enrich directories into the new internal/jobs/sync and internal/jobs/linguistics packages. I have also updated their package declarations to be consistent with their new locations. 2025-09-02 15:02:04 +00:00
pkg/linguistics I have refactored the background jobs by moving all related logic from the syncjob/, linguistics/, and internal/enrich directories into the new internal/jobs/sync and internal/jobs/linguistics packages. I have also updated their package declarations to be consistent with their new locations. 2025-09-02 15:02:04 +00:00
test I have refactored the background jobs by moving all related logic from the syncjob/, linguistics/, and internal/enrich directories into the new internal/jobs/sync and internal/jobs/linguistics packages. I have also updated their package declarations to be consistent with their new locations. 2025-09-02 15:02:04 +00:00
.air.toml Initial commit: Tercul Go project with comprehensive architecture 2025-08-13 07:42:32 +02:00
.gitignore wip 2025-09-01 00:43:59 +02:00
.tool-versions wip 2025-09-01 00:43:59 +02:00
create_repo_interfaces.go Fix build issues and refactor for maintainability 2025-09-05 21:37:42 +00:00
docker-compose.yml Initial commit: Tercul Go project with comprehensive architecture 2025-08-13 07:42:32 +02:00
Dockerfile Initial commit: Tercul Go project with comprehensive architecture 2025-08-13 07:42:32 +02:00
Dockerfile.dev Initial commit: Tercul Go project with comprehensive architecture 2025-08-13 07:42:32 +02:00
fix_domain_repos.go Fix build issues and refactor for maintainability 2025-09-05 21:37:42 +00:00
fix_sql_imports.go Fix build issues and refactor for maintainability 2025-09-05 21:37:42 +00:00
go.mod feat: Implement trending works feature 2025-09-07 20:40:35 +00:00
go.sum feat: Implement trending works feature 2025-09-07 20:40:35 +00:00
gqlgen.yml feat: Refactor GORM relations and implement mutations 2025-09-06 12:45:44 +00:00
refactor.md Initial commit: Tercul Go project with comprehensive architecture 2025-08-13 07:42:32 +02:00
report.md docs: Update markdown files to reflect current project state 2025-09-07 12:01:11 +00:00
requirements.txt Initial commit: Tercul Go project with comprehensive architecture 2025-08-13 07:42:32 +02:00
TODO.md feat: Implement event-driven analytics features 2025-09-07 22:30:23 +00:00
tools.go feat: Implement analytics features 2025-09-07 16:43:15 +00:00