MỤC LỤC
Prisma là một công cụ ORM (Object-Relational Mapping) cho Node.js và TypeScript, giúp giảm độ phức tạp khi làm việc với cơ sở dữ liệu. Nó được thiết kế để tạo ra một lớp trừu tượng giữa ứng dụng của bạn và cơ sở dữ liệu, cho phép bạn tương tác với cơ sở dữ liệu bằng cách sử dụng các đối tượng JavaScript thay vì truy vấn SQL trực tiếp. Tạo Schema bằng mã (Code-First): Prisma sử dụng ngôn ngữ lập trình (TypeScript hoặc JavaScript) để định nghĩa schema của cơ sở dữ liệu.
Migrate dữ liệu: Prisma cung cấp các công cụ mạnh mẽ để quản lý quá trình migrate cơ sở dữ liệu, giúp bạn duy trì và cập nhật cấu trúc cơ sở dữ liệu một cách dễ dàng khi ứng dụng phát triển. Prisma giúp làm giảm độ phức tạp trong việc tương tác với cơ sở dữ liệu, tăng tính hiệu quả và linh hoạt của quá trình phát triển ứng dụng. Firebase là một nền tảng của Google cung cấp nhiều dịch vụ cho phát triển ứng dụng, bao gồm cả cơ sở dữ liệu, xác thực, phân tích, v.v.
Firebase Storage là một dịch vụ lưu trữ đám mây của Google Firebase, được thiết kế để lưu trữ và quản lý các tệp tin và đa phương tiện trong ứng dụng web và di động. Lưu trữ an toàn và linh hoạt: Firebase Storage cung cấp một nơi an toàn để lưu trữ dữ liệu trên đám mây với sự hỗ trợ của hạ tầng an toàn của Google. Tích hợp dễ dàng với Firebase: Firebase Storage tích hợp chặt chẽ với các dịch vụ khác của Firebase, như Firebase Realtime Database, Firebase Authentication, và Firebase Hosting.
Ngoài ra Firebase cũng dễ dàng tích hợp vào ứng dụng di động thông qua các thư viện SDK chính thức được cung cấp bởi Firebase. Cloud Text-to-Speech có thể triển khai với 12 ngôn ngữ (không có tiếng Việt), bao gồm 32 kiểu giọng nói khác nhau. Ngoài ra, nhà phát triển có thể tuỳ chỉnh âm lượng, tốc độ nói, định dạng âm thanh (MP3, WAV) theo nhu cầu sử dụng.
Dựa theo cuộc khảo sát năm 2023, Google Cloud đứng thứ 2 về độ chính xác của so với các dịch vụ Speech To Text khác như IBM, Amazon. Trong phạm vi đồ án này, nhóm chúng tôi quyết định xây dựng back end server bằng JavaScript trên môi trường NodeJS, định nghĩa và lưu dữ liệu trên Prisma. Chúng tôi sử dụng Firebase Storage để lưu trữ file ghi âm, đồng thời tích hợp Google Cloud – Speech To Text để chuyển đổi file ghi âm thành đoạn văn bản.
2 Đăng ký Người dùng tạo tài khoản mới bằng cách cung cấp username, email, password. 3 Quên mật khẩu Ứng dụng sẽ yêu cầu người dùng nhập địa chỉ email, sau đó mã code sẽ được gửi từ hệ thống về email, cuối cùng người dùng sẽ nhập mã code và đổi mật khẩu mới 4 Thêm mới file ghi âm Người dùng thêm mới một file ghi âm. 5 Xem file ghi âm Người dùng có thể xem chi tiết một file ghi âm, sửa file, xóa file, sắp xếp field.
6 Chia sẻ file ghi âm Hệ thống cho phép người dùng chia sẻ file ghi âm của mình với người khác bằng cách cung cấp email của người nhận. Hệ thống kiểm tra nếu các thông tin hợp lệ, hệ thống điều hướng người dùng đến màn hình Home. 1.d Hệ thống kiểm tra, nếu tài khoản của người dùng không có trong hệ thống thì đăng ký tài khoản mới cho nguòi dùng.
Ở bước 3, nếu người dùng không nhập đầy đủ thông tin email hoặc username và password, hiển thị thông báo lỗi. Mô tả Người dùng tạo tài khoản mới bằng cách cung cấp username, email, password. Hệ thống kiểm tra nếu các thông tin hợp lệ, hiển thị thông báo thành công, gửi email xác nhận và điều hướng đến màn hình Login.
Ngoại lệ Ở bước 3, nếu người dùng không nhập đầy đủ thông tin email, username và password, hiển thị thông báo lỗi. Hệ thống kiểm tra nếu mật khẩu mới hợp lệ, điều hướng người dùng vào trang Home. Hệ thống lưu file ghi âm, chuyển đổi âm thanh thành đoạn văn bản, hiển thị và lưu đoạn văn bản vào database.
Mô tả Người dùng có thể xem chi tiết một file ghi âm, sửa file, xóa file, sắp xếp field. Người dùng bấm nút “Thay đổi” để thay đổi thông tin trong file record (tiêu đề hoặc đoạn văn bản). Mô tả Hệ thống cho phép người dùng chia sẻ file ghi âm của mình với người khác bằng cách cung cấp email của người nhận.
Hệ thống kiểm tra nếu email người nhận hợp lệ, gửi file record đến email người nhận. Hệ thống hỗ trợ tạo nhóm, người dùng có thể tạo hoặc tham gia vào các nhóm khác nhau, chia sẻ file ghi âm cho các thành viên trong nhóm.