beiryu
  • Projects
  • Blog
  • About

© 2026 Khanh Dinh. I build software and write about the journey.

  • GitHub
  • LinkedIn
  • X
January 15, 2025 · 0 views

Hành trình xây dựng tính năng đọc truyện trong ứng dụng Applaydu (phần 1)

Xin chào các bạn, hôm nay mình sẽ chia sẻ với các bạn về hành trình xây dựng tính năng đọc truyện "Let's Story" trong ứng dụng Applaydu và những câu chuyện thú vị xoay quanh quá trình phát triển tính năng này.

  • Backend
  • AWS
  • DevOps
  • Personal Stories
  • AI

DLC là gì?#

Trước hết, mình xin giải thích một chút về thuật ngữ DLC. DLC là viết tắt của "Downloadable Content", tức là nội dung có thể tải xuống. Trong ngữ cảnh của ứng dụng Applaydu, DLC chính là các câu chuyện, truyện tranh mà người dùng có thể tải về và đọc offline.

AWS Presigned URL trong AWS là gì?#

Để tải và lưu trữ nội dung truyện, chúng tôi sử dụng dịch vụ lưu trữ đám mây của Amazon Web Services (AWS). Một trong những tính năng quan trọng mà chúng tôi sử dụng là Presigned URL.

Image

Presigned URL là một URL đặc biệt được tạo ra bởi AWS, cho phép truy cập tạm thời vào một tài nguyên cụ thể trên S3 (dịch vụ lưu trữ của AWS). Điều này giúp chúng tôi kiểm soát việc truy cập vào nội dung truyện và đảm bảo tính bảo mật.

Tính năng đọc truyện "Let's Story" của Applaydu#

Let's Story là tính năng đọc truyện tích hợp AI trong ứng dụng Applaydu, người dùng có thể

  • Khám phá và chọn từ một thư viện phong phú các câu chuyện và truyện tranh với AI generated.
  • Tải xuống và lưu trữ truyện để đọc offline.
  • Tận hưởng trải nghiệm đọc truyện với giao diện đẹp mắt và thân thiện.

Để xây dựng tính năng này, chúng tôi đã phải đối mặt với nhiều thách thức, từ việc tìm nguồn nội dung phù hợp, xử lý và lưu trữ dữ liệu, đến việc tối ưu trải nghiệm người dùng.

Câu chuyện Microsoft generate AI stories#

Một trong những thách thức lớn nhất của chúng tôi là tìm nguồn nội dung truyện chất lượng. Ban đầu, chúng tôi đã thử sử dụng công nghệ AI của Microsoft để tự động tạo ra các câu chuyện.

Tuy nhiên, chúng tôi nhanh chóng nhận ra rằng:

  • Các câu chuyện được tạo ra bởi AI của Microsoft thường thiếu tính logic và không hoàn chỉnh.
  • Nhiều câu chuyện AI mang nội dung vô nghĩa.

Nhưng không còn cách nào khác, chúng tôi và Microsoft Prompt Engineering phải cùng ngồi lại làm việc trong suốt vài tuần để giải quyết vấn đề, và generate lại toàn bộ 40,400 câu chuyện. May sau, mọi thứ có vẻ suôn sẻ để cho chúng tôi có thể delivery.

Câu chuyện về devops#

Quá trình phát triển tính năng "Let's Story" cũng gắn liền với nhiều câu chuyện thú vị về đội ngũ devops của chúng tôi.

Có một giai đoạn, để đáp ứng nhu cầu tải và xử lý một lượng lớn nội dung truyện, đội ngũ devops đã phải "tự bỏ tiền túi" để mua một chiếc máy tính cấu hình cao. Chiếc máy tính này trở thành "trụ cột" trong pipeline xử lý và upload nội dung truyện.

Tuy nhiên, không phải lúc nào mọi thứ cũng suôn sẻ. Có những lần pipeline gặp sự cố, dẫn đến tình trạng upload thiếu truyện. Đội ngũ devops đã phải làm việc xuyên đêm để khắc phục và đảm bảo người dùng có thể truy cập đầy đủ nội dung.

Kết luận#

Hành trình xây dựng tính năng "Let's Story" trong ứng dụng Applaydu là một hành trình đầy thử thách nhưng cũng vô cùng thú vị. Chúng tôi đã học được rất nhiều bài học quý giá, từ việc lựa chọn công nghệ, xử lý dữ liệu, đến cách đối mặt với các sự cố bất ngờ.

Tuy nhiên, tất cả những nỗ lực đó đều xứng đáng khi chúng tôi nhìn thấy người dùng thích thú khám phá và đọc truyện trên ứng dụng của mình. Chúng tôi tin rằng "Let's Story" không chỉ mang đến giá trị giải trí, mà còn góp phần nuôi dưỡng tình yêu đọc sách và khơi gợi trí tưởng tượng của trẻ nhỏ.

Nếu các bạn có những câu chuyện thú vị về quá trình phát triển sản phẩm, đừng ngại chia sẻ với mình nhé. Mình tin rằng, mỗi câu chuyện đều mang trong mình những bài học và kinh nghiệm quý giá.

Cảm ơn các bạn đã đồng hành cùng mình trong bài viết này. Hẹn gặp lại các bạn trong những bài viết tiếp theo!

Enjoyed this? Get the next one by email.

Keep reading

May 8, 2024

How to notify Slack for AWS CodePipeline

To notify Slack for AWS CodePipeline, create a notification rule for the pipeline, selecting all events and Slack as the target. Register the Slack channel as a target and configure a new chatbot client. After authorizing Slack, specify the Slack channel to connect to, set the chatbot's privileges, and establish guard rules. With read-only access for both allowed rules and guard conditions, the pipeline can trigger notifications to the Slack channel.

Apr 26, 2024

Jenkins Slack Integration

The tutorial outlines how to integrate Jenkins and Slack for monitoring CI/CD pipelines. It involves setting up a custom Slack app to receive messages from Jenkins, configuring Jenkins with the Slack Notification plugin, and adding the OAuth token from Slack as a secret text credential in Jenkins. Both traditional Jenkins jobs and Jenkins pipelines can be configured to send Slack notifications, with pipeline scripts used to send messages in the latter case.