PHẦN MỞ ĐẦU 1. Phát biểu đề tài Chăm sóc sức khỏe bà bầu là trọng trách thiêng liêng đầu tiên trên chặng đường thiên chức người mẹ. Điều này không chỉ liên quan đến sức khỏe của mẹ mà còn ảnh hưởng đến sự phát triển của thai nhi. Sự chú ý đúng đắn và việc cung cấp thông tin y tế đáng tin cậy là quan trọng để đảm bảo thai kỳ diễn ra một cách an toàn và khỏe mạnh.
Tuy nhiên, nhiều bà bầu vẫn gặp khó khăn trong việc truy cập thông tin chính xác và hữu ích về thai kỳ, dinh dưỡng, và quá trình chăm sóc sức khỏe của họ. Đây là lý do tại sao đề tài này trở nên quan trọng. Nhóm thực hiện báo cáo sẽ phát triển một ứng dụng Android dành riêng cho bà bầu, với hy vọng giải quyết những khó khăn này và mang lại giá trị thực sự cho cộng đồng. Mục đích, yêu cầu cần thực hiện Mục tiêu của dự án này là: Nhóm thực hiện báo cáo đã đặt ra mục tiêu tạo ra một ứng dụng dễ sử dụng và thân thiện với người dùng.
Giao diện của ứng dụng được thiết kế một cách trực quan và tiện lợi, cho phép bà bầu dễ dàng tương tác với nó thông qua điện thoại di động của mình. Ứng dụng này cần cung cấp một số tính năng quan trọng như: Thông tin chính xác và tin cậy: Ứng dụng cung cấp thông tin về thai kỳ, dinh dưỡng, tập thể dục và các vấn đề sức khoẻ quan trọng khác, dựa trên nghiên cứu y tế mới nhất và hướng dẫn từ các chuyên gia y tế. Theo dõi thai kỳ: Bằng cách đặt mục tiêu và lên lịch, bà bầu có thể theo dõi sự phát triển của thai nhi và thay đổi trong cơ thể mình qua từng giai đoạn thai kỳ. Phân tích sổ khám thai: Bằng cách thu thập thông tin từ sổ khám thai, ứng dụng sẽ giúp bà bầu xem được bảng phân tích sơ lược về tình trạng của bản thân trong giai đoạn mang thai của mình.
Phạm vi và đối tượng Đối tượng chính: Ứng dụng hướng đến việc cung cấp hỗ trợ, thông tin và tư vấn cho phụ nữ trong quá trình mang thai từ các tháng đầu đến khi sinh. Phạm vi sử dụng: o Thông tin Y tế và Sức khỏe: Cung cấp kiến thức và thông tin cần thiết về thai kỳ, quá trình sinh, dinh dưỡng và các vấn đề sức khỏe liên quan. o Theo dõi Sức khỏe và Thai nhi: Cho phép bà bầu ghi chép, theo dõi sự phát triển của thai nhi và sức khỏe của bản thân thông qua việc nhập liệu thông tin. o Nhắc nhở và Lịch trình quan trọng: Gửi thông báo nhắc nhở về việc đi khám thai, uống thuốc và các sự kiện quan trọng trong quá trình mang thai.
Mục tiêu: o Hỗ trợ toàn diện: Mang lại thông tin và công cụ hỗ trợ toàn diện cho phụ nữ mang thai để họ có thể chăm sóc sức khỏe của mình và của thai nhi một cách tốt nhất. o Dễ sử dụng và Tiện ích: Tạo ra một ứng dụng dễ tiếp cận, thân thiện và tiện ích cho người dùng, giúp họ tận dụng nguồn thông tin và tư vấn tốt nhất có thể. o Kết nối Cộng đồng: Tạo cơ hội kết nối, hỗ trợ và chia sẻ thông tin giữa những phụ nữ đang trải qua giai đoạn mang thai 2 PHẦN CƠ SỞ LÝ THUYẾT 2.1 Java Java là một ngôn ngữ lập trình mạnh mẽ và phổ biến được phát triển bởi Sun Microsystems (hiện thuộc về Oracle Corporation). Được ra mắt lần đầu vào năm 1995, Java đã trở thành một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới với sự linh hoạt, tính di động và khả năng tương thích.
Đặc điểm chính của Java: Đa nền tảng (Platform-Independent): Java được thiết kế để có khả năng chạy trên nhiều nền tảng khác nhau, từ máy tính cá nhân tới thiết bị di động và máy chủ, nhờ vào việc sử dụng Java Virtual Machine (JVM). Tính đa mục đích (Versatility): Java hỗ trợ nhiều loại ứng dụng từ ứng dụng desktop, web, di động tới các ứng dụng máy chủ phức tạp. Bảo mật cao: Java có một môi trường bảo mật mạnh mẽ, bao gồm hệ thống kiểm soát truy cập và quản lý bộ nhớ an toàn. Tính khả chuyển (Portability): Mã nguồn Java có thể chạy trên mọi nền tảng mà có JVM, không cần viết lại mã nguồn.
Sự phát triển liên tục: Java thường xuyên cập nhật các phiên bản mới, cung cấp các tính năng mới, cải thiện hiệu suất và bảo mật. Community lớn: Java có một cộng đồng lập trình viên mạnh mẽ và rộng lớn, với nhiều tài liệu, công cụ và hỗ trợ sẵn có. Hỗ trợ đa dạng ngôn ngữ lập trình: Java hỗ trợ nhiều ngôn ngữ lập trình khác nhau như Kotlin, Scala, và Groovy. Java được sử dụng rộng rãi trong nhiều lĩnh vực từ phát triển ứng dụng di động, web, game, đến phát triển các hệ thống phần mềm lớn và các ứng dụng máy chủ.
Với tính linh hoạt, bảo mật cao và khả năng chạy trên nhiều nền tảng, Java tiếp tục giữ vững vị trí của mình trong ngành công nghiệp công nghệ thông tin.2 Java Spring Boot Java Spring Boot là một framework phát triển ứng dụng web Java dựa trên nguyên tắc "Convention over Configuration" (Quy ước hơn là cấu hình). Nó cung cấp một cách nhanh chóng và dễ dàng để xây dựng các ứng dụng web và dịch vụ RESTful bằng việc sử dụng Spring Framework. Đặc điểm chính của Java Spring Boot: Tích hợp dễ dàng: Spring Boot giúp tích hợp các thư viện và công nghệ một cách linh hoạt thông qua các cấu hình mặc định và tự động hóa. Cấu hình tự động: Cung cấp cấu hình tự động thông qua các Annotation và conventions mặc định giúp việc cấu hình trở nên đơn giản hơn.
Embedded Servers: Hỗ trợ các máy chủ nhúng như Tomcat, Jetty, và Undertow để chạy ứng dụng mà không cần cấu hình riêng biệt. Starter POMs: Cung cấp các bộ POM (Project Object Model) đã được cấu hình sẵn để bắt đầu dự án một cách nhanh chóng với các dependencies được định nghĩa sẵn. Actuator: Cho phép quản lý và giám sát ứng dụng bằng cách cung cấp các endpoints để xem thông tin về ứng dụng và quản lý chúng. Spring Boot CLI: Cung cấp một Command-Line Interface để tạo, chạy và quản lý ứng dụng Spring Boot.
Tích hợp Spring ecosystem: Spring Boot kế thừa và mở rộng các tính năng của Spring Framework như Dependency Injection, AOP (Aspect-Oriented Programming), Spring MVC, và nhiều tính năng khác. Tích hợp dễ dàng với các công nghệ khác: Có khả năng tích hợp dễ dàng với các công nghệ khác như Thymeleaf, JPA, Security, và nhiều thư viện khác.3 Kotlin Kotlin là một ngôn ngữ lập trình đa năng, hướng đối tượng và tĩnh được phát triển bởi JetBrains. Được công bố vào năm 2011 và sau đó trở thành ngôn ngữ lập trình chính thức cho việc phát triển ứng dụng Android vào năm 2017. Kotlin chủ yếu định hình để làm cho việc phát triển phần mềm dễ dàng, gọn nhẹ và đáng tin cậy.
Đặc điểm chính của Kotlin: 4 Tích hợp tốt với Java: Kotlin hoàn toàn tương thích với Java. Bạn có thể sử dụng các thư viện Java hiện có mà không cần chuyển đổi mã. An toàn và Tính Tĩnh: Hỗ trợ kiểm tra lỗi ở thời gian biên dịch, giúp giảm thiểu lỗi trong quá trình chạy ứng dụng. Có hệ thống kiểm tra null an toàn (null safety) để tránh lỗi NullPointerException.
Ngắn Gọn và Dễ Đọc: Cú pháp ngắn gọn và dễ đọc, giúp viết mã nguồn tối ưu hơn so với Java. Hỗ Trợ Functional Programming: Hỗ trợ các tính năng của lập trình hàm, bao gồm lambda expressions, higher-order functions, và immutable collections. Tính Tích Hợp Đa Nền Tảng: Kotlin không chỉ được sử dụng cho phát triển Android, mà còn hỗ trợ phát triển ứng dụng trên nhiều nền tảng như JVM, JavaScript và Native. Cộng Đồng và Hỗ Trợ Mạnh Mẽ: Có cộng đồng sử dụng rộng rãi và một số lượng lớn các tài liệu, hướng dẫn, và thư viện hỗ trợ từ cộng đồng lập trình viên.1 MongoDB MongoDB là một hệ thống quản lý cơ sở dữ liệu (DBMS) thuộc dạng NoSQL (không SQL) phổ biến, phát triển bởi MongoDB Inc.
MongoDB lưu trữ dữ liệu dưới dạng tài liệu linh hoạt và có khả năng mở rộng tốt, đặc biệt thích hợp cho các ứng dụng có yêu cầu cao về tính linh hoạt và hiệu suất. Đặc điểm chính của MongoDB: Document-Oriented Database: Lưu trữ dữ liệu dưới dạng JSON-like document (tài liệu giống JSON) gọi là BSON (Binary JSON). Dữ liệu được tổ chức trong các collections, mỗi collection chứa nhiều documents không yêu cầu schema cố định. Tính Linh Hoạt và Đa Dạng Dữ Liệu: Không yêu cầu schema cứng, cho phép tài liệu trong cùng một collection có cấu trúc khác nhau.
5 Hỗ trợ nhiều loại dữ liệu: số, văn bản, mảng, dữ liệu nhúng (embedded documents), và object ID. Tính Năng Tìm Kiếm Mạnh Mẽ: Cung cấp các truy vấn phong phú và linh hoạt cho việc truy xuất dữ liệu. Hỗ trợ tìm kiếm theo các trường, phạm vi, và các phép toán phức tạp. Horizontal Scaling và Sharding: Hỗ trợ khả năng mở rộng cơ sở dữ liệu theo chiều ngang (horizontal scaling) bằng cách phân tán dữ liệu trên nhiều nodes và clusters.
Cung cấp tính năng sharding để chia nhỏ dữ liệu và phân phối trên các shard. Bảo Mật và Quản Lý: Cung cấp các tính năng bảo mật như xác thực, quản lý quyền truy cập, và mã hóa dữ liệu. Có các công cụ quản lý và giám sát dữ liệu như MongoDB Compass. Sử Dụng Đa Dạng: MongoDB được sử dụng rộng rãi trong các ứng dụng web, mobile, IoT và big data.2 IntelliJ IDEA IntelliJ IDEA là một trong những IDE hàng đầu để phát triển ứng dụng Java và Java Spring Boot không phải là ngoại lệ.
Nó cung cấp rất nhiều tính năng hỗ trợ cho việc phát triển ứng dụng Spring Boot, bao gồm cả hỗ trợ cho Maven/Gradle, quản lý các Bean, hỗ trợ Auto-Configuration, tạo RESTful service, và nhiều hơn nữa. Dưới đây là một số điểm nổi bật khi sử dụng IntelliJ IDEA cho phát triển Java Spring Boot: Hỗ trợ Spring Initializr: IntelliJ IDEA tích hợp với Spring Initializr, cho phép người dùng tạo một dự án Spring Boot mới một cách dễ dàng. Người dùng có thể chọn dependencies (phụ thuộc) như Spring Web, Spring Data JPA, Hibernate, và các công nghệ khác để bắt đầu một dự án Spring Boot. Hỗ trợ Maven và Gradle: IntelliJ IDEA hỗ trợ Maven và Gradle, hai công cụ quản lý dự án phổ biến trong Java.
Nó cho phép người dùng quản lý dependencies, build và quản lý các tệp tin cấu hình của dự án.