Bối cảnh và vấn đề nghiên cứu

Trong đời sống xã hội hiện đại, nhu cầu đi lại, làm việc, học tập và tổ chức các sự kiện ngoài trời của con người ngày càng gia tăng. Các yếu tố khí tượng thủy văn như nhiệt độ, độ ẩm, lượng mưa, áp suất khí quyển và hướng gió có ảnh hưởng trực tiếp đến kế hoạch sinh hoạt thường nhật cũng như các hoạt động sản xuất, kinh doanh. Việc nắm bắt thông tin thời tiết kịp thời, chính xác giúp người dùng chủ động sắp xếp lịch trình và đưa ra các quyết định phù hợp cho các kế hoạch tương lai.

Song song với nhu cầu thực tiễn đó là sự bùng nổ mạnh mẽ của công nghệ di động và các thiết bị thông minh chạy hệ điều hành Android. Nền tảng di động mở này mang lại môi trường thuận lợi để các nhà phát triển triển khai các ứng dụng tiện ích phục vụ đời sống. Xuất phát từ thực tế trên, tác giả Phạm Viết Long (sinh viên lớp CNTT_K17N, Trường Đại học Công nghệ Thông tin và Truyền thông – Đại học Thái Nguyên) đã thực hiện đồ án tốt nghiệp với đề tài "Xây dựng ứng dụng dự báo thời tiết trên hệ điều hành Android" dưới sự hướng dẫn của Th.S Vũ Thị Nguyệt vào năm 2023.

Mục tiêu và nhiệm vụ nghiên cứu cụ thể của đề tài bao gồm:

  1. Tìm hiểu tổng quan về hệ điều hành Android, ngôn ngữ lập trình và môi trường phát triển ứng dụng di động.
  2. Nghiên cứu các kiến thức kỹ thuật nền tảng: mô hình lập trình đa tiến trình, kiến trúc giao tiếp Web Service theo định dạng JSON hoặc SOAP (XML).
  3. Tìm hiểu và tích hợp giao diện lập trình ứng dụng OpenWeatherMap API để trích xuất dữ liệu khí tượng toàn cầu.
  4. Vận dụng các kiến thức đã nghiên cứu để phân tích, thiết kế và xây dựng hoàn chỉnh phần mềm dự báo thời tiết hoạt động trên thiết bị di động Android.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình phân tích, thiết kế và lập trình ứng dụng dự báo thời tiết trên nền tảng hệ điều hành Android.
  • Phạm vi nghiên cứu: Tìm hiểu kiến trúc tổng quát của hệ điều hành Android, cấu hình môi trường và các gói phần mềm cần thiết để lập trình; khai thác Web Service thời tiết từ OpenWeatherMap và xây dựng ứng dụng hiển thị thông tin thời tiết tại vị trí hiện tại (mặc định Hà Nội), tìm kiếm theo địa điểm bất kỳ và dự báo thời tiết trong 5 ngày tiếp theo.

Cơ sở lý thuyết và phương pháp

Đồ án xây dựng dựa trên nền tảng lý thuyết phát triển phần mềm di động và tích hợp dịch vụ web:

  • Nền tảng hệ điều hành Android: Hệ điều hành mã nguồn mở dựa trên nhân Linux (Linux Kernel 2.6) do Google bảo trợ và phát hành theo Giấy phép Apache (Apache License). Kiến trúc phần mềm bao gồm các tầng: Nhân Linux, Thư viện C/C++ và Android Runtime (máy ảo Dalvik thực thi định dạng .dex), Khung ứng dụng (Application Framework) và Tầng ứng dụng.
  • Bốn thành phần cốt lõi của ứng dụng Android:
    • Activity: Thành phần giao diện trực quan tương tác với người dùng, quản lý theo ngăn xếp và tuân thủ vòng đời trạng thái (onCreate, onStart, onResume, onPause, onStop, onDestroy, onRestart).
    • Service: Thành phần chạy ngầm thực thi các tác vụ dài hạn mà không có giao diện tương tác trực tiếp, khởi tạo qua Context.startService() hoặc liên kết qua Context.bindService() với giao tiếp IBinder.
    • BroadcastReceiver: Thành phần lắng nghe và phản hồi các thông điệp quảng bá từ hệ thống hoặc các ứng dụng khác.
    • ContentProvider: Cơ chế chia sẻ và quản lý truy cập dữ liệu giữa các ứng dụng dựa trên hệ quản trị cơ sở dữ liệu SQLite hoặc tập tin.
    • Intent và Intent Filter: Cơ chế truyền thông điệp không đồng bộ để kích hoạt các thành phần trong hệ thống.
    • Tập tin cấu hình AndroidManifest.xml: Khai báo quyền hạn, thư viện liên kết và toàn bộ thành phần của gói ứng dụng (.apk).
  • Dịch vụ Web Service và OpenWeatherMap API: Khai thác Web Service cung cấp dữ liệu khí tượng theo kiến trúc RESTful, trả về dữ liệu có cấu trúc dưới định dạng JSON (JavaScript Object Notation). Sử dụng thư viện ngoài Picasso để bất đồng bộ hóa việc tải và hiển thị hình ảnh biểu tượng thời tiết.

Phương pháp thực hiện đề tài:

  • Phương pháp thu thập tài liệu: Tổng hợp và nghiên cứu các tài liệu kỹ thuật chuyên ngành về Android, tài liệu đặc tả API trực tuyến và các nguồn học liệu lập trình di động.
  • Phương pháp thực nghiệm phát triển phần mềm: Thiết lập môi trường lập trình, cài đặt bộ công cụ Android SDK; thực hành viết mã nguồn Java, phân tích cú pháp JSON để chuyển đổi dữ liệu thành các đối tượng Java Class.
  • Phương pháp tham vấn chuyên gia: Thường xuyên trao đổi chuyên môn, tiếp thu hướng dẫn từ giảng viên hướng dẫn (Th.S Vũ Thị Nguyệt) và thảo luận kỹ thuật với các bạn học cùng chuyên ngành.

Thiết kế và triển khai

Hệ thống được thiết kế theo quy trình phân tích hướng đối tượng với các sơ đồ UML mô tả hành vi và cấu trúc dữ liệu.

1. Phân tích chức năng và ca sử dụng (Use Case)

Tác nhân chính tương tác với hệ thống là Người dùng (User). Các ca làm việc cơ bản bao gồm:

  • Truy cập ứng dụng: Khởi động ứng dụng và thiết lập kết nối mạng Internet.
  • Xem thời tiết ở địa điểm hiện tại: Lấy dữ liệu tọa độ hoặc vị trí hiện hành của thiết bị để hiển thị thông số khí tượng.
  • Tìm kiếm thời tiết ở địa điểm khác: Nhập tên thành phố/quốc gia bất kỳ để truy vấn dữ liệu từ máy chủ.
  • Xem thời tiết trong 5 ngày kế tiếp: Chức năng mở rộng hiển thị xu hướng thời tiết tương lai theo mốc thời gian.
Ca sử dụng (Use Case) Tác nhân Điều kiện / Chuỗi làm việc chính Kết quả đầu ra
Truy cập ứng dụng Người dùng Thiết bị bật kết nối mạng Internet; người dùng mở ứng dụng. Ứng dụng khởi chạy thành công vào màn hình chính.
Xem thời tiết hiện tại Người dùng Người dùng truy cập ứng dụng; ứng dụng gửi yêu cầu lấy thời tiết vị trí hiện hành. Hiển thị nhiệt độ, nhiệt độ cao nhất/thấp nhất, độ ẩm, áp suất, tốc độ gió, mây.
Tìm kiếm thời tiết địa điểm khác Người dùng Người dùng vào thanh tìm kiếm, nhập tên địa điểm cần tra cứu. Trả về và hiển thị thông số thời tiết chi tiết của địa điểm được chọn.
Xem dự báo 5 ngày kế tiếp Người dùng Người dùng chọn chức năng xem dự báo mở rộng từ màn hình chính hoặc sau khi tìm kiếm địa điểm. Hiển thị danh sách các mốc thời gian và tình trạng thời tiết trong 5 ngày tiếp theo.

2. Thiết kế lớp dữ liệu (Class Diagram)

Để xử lý dữ liệu JSON nhận về từ máy chủ OpenWeatherMap, ứng dụng thiết kế các lớp Java model tương ứng nhằm ánh xạ các trường dữ liệu:

  • OpenWeatherJson: Lớp đối tượng chính chứa toàn bộ cấu trúc dữ liệu phản hồi từ API.
  • Main: Lớp chứa các thuộc tính nhiệt độ (temp), nhiệt độ nhỏ nhất (temp_min), nhiệt độ lớn nhất (temp_max), áp suất khí quyển (pressure) và độ ẩm (humidity).
  • Clouds: Lớp lưu trữ thông tin về mật độ mây bao phủ.
  • Win (Wind): Lớp quản lý dữ liệu về tốc độ và hướng gió.
  • Sys: Lớp lưu trữ thông tin hệ thống, quốc gia và thời gian mặt trời mọc/lặn.
  • WeatherItem: Lớp chứa thông tin mô tả trạng thái thời tiết tổng quan và mã biểu tượng (icon).
  • Coord: Lớp lưu trữ dữ liệu tọa độ địa lý (kinh độ và vĩ độ).

3. Quy trình tương tác và biểu đồ tuần tự (Sequence Diagram)

Quy trình xử lý dữ liệu giữa Người dùng, Ứng dụng di động và Máy chủ dữ liệu (OpenWeatherMap Server) diễn ra theo các bước:

  1. Người dùng gửi yêu cầu hiển thị thời tiết (tại vị trí mặc định/hiện tại hoặc nhập tên địa điểm tìm kiếm).
  2. Ứng dụng nhận yêu cầu, xây dựng chuỗi URL chứa tham số truy vấn (q=city,country hoặc tọa độ) kèm mã định danh ứng dụng appid (API Key).
  3. Ứng dụng gửi truy vấn HTTP đến máy chủ OpenWeatherMap.
  4. Máy chủ tiếp nhận, kiểm tra tính hợp lệ của tham số và mã appid, xử lý dữ liệu và trả về chuỗi JSON.
  5. Ứng dụng phân tích cú pháp chuỗi JSON, bóc tách các trường dữ liệu vào các lớp đối tượng Java tương ứng (Main, Clouds, Win, WeatherItem...).
  6. Sử dụng thư viện Picasso để tải hình ảnh trạng thái thời tiết và kết xuất toàn bộ thông tin lên giao diện người dùng.

4. Quy trình hoạt động (Activity Diagram)

Khi người dùng mở ứng dụng, hệ thống kiểm tra trạng thái kết nối Internet và quyền định vị. Nếu có kết nối, hệ thống gửi yêu cầu lên máy chủ OpenWeatherMap, nhận dữ liệu JSON, trích xuất và hiển thị kết quả lên màn hình. Nếu không có kết nối mạng, ứng dụng không thể truy vấn dữ liệu từ máy chủ và kết thúc tiến trình hiển thị.


Nội dung chính theo từng chương

CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID

Chương này trình bày toàn diện về lịch sử hình thành, sự phát triển và cấu trúc kiến trúc của hệ điều hành Android.

  • Lịch sử và vị thế: Android khởi đầu từ Tổng công ty Android, được Google mua lại vào năm 2005 và công bố chính thức vào năm 2007 cùng Liên minh thiết bị cầm tay mở (Open Handset Alliance). Thiết bị thương mại đầu tiên xuất hiện vào tháng 10 năm 2008. Đến quý 3 năm 2012, Android đã đạt 75% thị phần điện thoại thông minh toàn cầu với 500 triệu thiết bị được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày; kho ứng dụng Google Play đạt khoảng 700.000 ứng dụng với 25 tỷ lượt tải (tháng 10/2012).
  • So sánh với các hệ điều hành cùng thời kỳ: Đồ án tổng hợp ưu và nhược điểm của Android so với Windows Phone và iOS:
Hệ điều hành Ưu điểm Nhược điểm
Android Nền tảng mã nguồn mở, cho phép tùy biến linh hoạt; có Liên minh thiết bị cầm tay mở hậu thuẫn; bộ công cụ SDK đầy đủ hỗ trợ đa nền tảng (Windows, Linux, macOS); thư viện phong phú. Hệ điều hành phân mảnh, không thống nhất trên các dòng thiết bị phần cứng; còn tồn tại các lỗ hổng bảo mật.
Windows Phone Thư viện API gần gũi với Win32 API; công cụ phát triển Visual Studio mạnh mẽ, thuận tiện cho lập trình viên nền tảng Windows. Thị phần suy giảm mạnh trước sự cạnh tranh quyết liệt của Android và iOS.
iOS Giao diện cảm ứng đa điểm mượt mà; tích hợp cảm biến gia tốc và đa phương tiện xuất sắc; tính bảo mật và trải nghiệm đồng nhất cao. Mã nguồn đóng; môi trường lập trình bắt buộc chạy trên macOS; chi phí tài khoản nhà phát triển cao làm giảm tính cạnh tranh tự do.
  • Kiến trúc hệ thống Android:
    • Nhân Linux (Linux Kernel 2.6): Bao gồm các trình điều khiển phần cứng như Display Driver, Camera Driver, Bluetooth Driver, USB Driver, Wifi Driver, Audio Driver, Power Management, M-system Driver và Binder IPC Driver.
    • Thư viện hệ thống & Android Runtime: Chứa các thư viện C/C++ nền tảng (OpenGL cho đồ họa 3D, FreeType cho phông chữ vector, GGL cho đồ họa 2D, Libc, SQLite Engine cho cơ sở dữ liệu quan hệ, SSL cho bảo mật mạng) cùng hệ thống API Java cơ bản (android.util, android.graphics, android.database, android.content, android.view, android.widget, android.maps, android.provider, android.telephony, android.webkit). Android Runtime sử dụng máy ảo Dalvik thực thi các tập tin mã máy tối ưu .dex.
    • Khung ứng dụng (Application Framework): Bao gồm Activity Manager, Views, Notification Manager, Content Provider, Resource Manager.
    • Bốn thành phần ứng dụng và cơ chế Intent: Phân tích chi tiết vòng đời Activity, cơ chế hoạt động của Service, BroadcastReceiver, ContentProvider, Intent và cấu hình trong tập tin AndroidManifest.xml.

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ ỨNG DỤNG

Chương 2 tập trung vào việc mô hình hóa các yêu cầu chức năng và phi chức năng của ứng dụng dự báo thời tiết:

  • Xác định các ca sử dụng: Phân tích 4 ca sử dụng chính gồm Truy cập ứng dụng, Xem thời tiết ở địa điểm hiện tại, Tìm kiếm thời tiết ở địa điểm khác và Xem thông tin thời tiết trong 5 ngày kế tiếp.
  • Đặc tả ca sử dụng chi tiết: Lập bảng đặc tả chi tiết từ Bảng 2.1 đến Bảng 2.4 mô tả tên usecase, tác nhân, mô tả, chuỗi làm việc chính, sự kiện bắt đầu và sự kiện kết thúc cho từng chức năng.
  • Biểu đồ Use Case: Xây dựng biểu đồ usecase tổng quát và các biểu đồ phân rã chức năng (sử dụng các quan hệ <<include>> như Hiển thị nhiệt độ, nhiệt độ cao nhất, nhiệt độ thấp nhất, trạng thái bầu trời, áp suất, tốc độ gió, độ ẩm; và quan hệ <<extend>> đối với chức năng xem thời tiết 5 ngày kế tiếp).
  • Mô hình hóa cấu trúc và tương tác: Xây dựng Biểu đồ lớp (Class Diagram) với các lớp dữ liệu OpenWeatherJson, Main, Clouds, Win, Sys, WeatherItem, Coord; Biểu đồ tuần tự (Sequence Diagram) cho các kịch bản xem thời tiết hiện tại và địa điểm khác; Biểu đồ hoạt động (Activity Diagram) thể hiện luồng điều khiển nghiệp vụ khi có hoặc không có kết nối mạng.

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG

Chương này trình bày quá trình hiện thực hóa phần mềm và triển khai mã nguồn:

  • Tích hợp OpenWeatherMap API:
    • Sử dụng dịch vụ Web Service của OpenWeatherMap thông qua tài khoản đăng ký để nhận mã API Key (appid=9eae7af1a4775860b5d8444ce5c62be9).
    • Cấu trúc đường dẫn URL truy vấn thời tiết theo tên thành phố: http://api.openweathermap.org/data/2.5/weather?q=city,country&appid=9eae7af1a4775860b5d8444ce5c62be9
    • URL mẫu truy vấn thời tiết Hà Nội: http://api.openweathermap.org/data/2.5/weather?q=hanoi&appid=9eae7af1a4775860b5d8444ce5c62be9
    • Tiếp nhận chuỗi phản hồi định dạng JSON từ máy chủ và tiến hành bóc tách dữ liệu vào các lớp đối tượng Java.
  • Tích hợp thư viện hiển thị hình ảnh: Sử dụng thư viện Picasso để xử lý tải và nạp các biểu tượng mô tả trạng thái thời tiết (nắng, mưa, mây, bão...) trực tiếp lên giao diện.
  • Xây dựng giao diện người dùng:
    • Giao diện chính: Mặc định hiển thị thông tin thời tiết của Thủ đô Hà Nội bao gồm: tên thành phố, thời gian cập nhật, biểu tượng bầu trời (qua Picasso), nhiệt độ hiện tại, nhiệt độ cao nhất/thấp nhất, độ ẩm, tốc độ gió, áp suất khí quyển và mật độ mây.
    • Giao diện tìm kiếm và dự báo: Cung cấp ô nhập tên địa điểm để tìm kiếm thời tiết ở bất kỳ thành phố nào trên thế giới; giao diện danh sách hiển thị các mốc thời gian dự báo thời tiết trong 5 ngày tiếp theo.

Kết quả và đóng góp

Đồ án đã đạt được các kết quả cụ thể theo đúng mục tiêu đặt ra:

  1. Kết quả về mặt lý thuyết:

    • Hệ thống hóa được kiến trúc tổng quan của hệ điều hành Android, vai trò của nhân Linux 2.6, cơ chế hoạt động của máy ảo Dalvik và cấu trúc các thư viện C/C++ cũng như Java API.
    • Nắm vững vòng đời và phương thức tương tác giữa 4 thành phần cơ bản của Android (Activity, Service, BroadcastReceiver, ContentProvider) và cơ chế điều hướng thông qua Intent.
    • Làm chủ kỹ thuật kết nối dịch vụ Web Service RESTful, hiểu rõ cơ chế phân tích cú pháp dữ liệu JSON từ API bên thứ ba (OpenWeatherMap) và trích xuất đưa vào các đối tượng dữ liệu Java.
  2. Kết quả về mặt ứng dụng thực tiễn:

    • Xây dựng thành công ứng dụng "Dự báo thời tiết" hoàn chỉnh chạy trên hệ điều hành Android.
    • Ứng dụng hiển thị đầy đủ, trực quan các thông số thời tiết cơ bản (nhiệt độ, độ ẩm, gió, mây, áp suất khí quyển) tại địa điểm mặc định (Hà Nội) hoặc tại bất kỳ địa điểm nào do người dùng nhập vào.
    • Cung cấp chức năng dự báo thông tin thời tiết mở rộng trong 5 ngày kế tiếp.
    • Tích hợp thành công thư viện Picasso để xử lý hiển thị biểu tượng trạng thái thời tiết động từ máy chủ.
  3. Đóng góp của tác giả:

    • Đưa ra tài liệu phân tích thiết kế chi tiết (từ Use Case, Class Diagram, Sequence Diagram đến Activity Diagram) cho một ứng dụng di động khai thác dữ liệu khí tượng mở.
    • Minh chứng giải pháp lập trình ứng dụng Android kết hợp Web Service thực tế, có thể làm tài liệu tham khảo cho sinh viên ngành Công nghệ Thông tin trong các môn học lập trình thiết bị di động.

Hạn chế và hướng nghiên cứu tiếp

Mặc dù đã hoàn thành các mục tiêu cơ bản của đồ án, tác giả cũng thẳng thắn chỉ ra một số hạn chế do thời gian thực hiện có hạn và kiến thức chuyên sâu về nền tảng Android còn cần được tích lũy thêm:

  • Hạn chế:
    • Giao diện người dùng còn ở mức cơ bản, chưa tối ưu hóa trải nghiệm trên nhiều kích thước màn hình khác nhau.
    • Các tính năng khí tượng chuyên sâu và khả năng tùy biến hiển thị theo nhu cầu cá nhân chưa nhiều.
  • Hướng phát triển tiếp theo:
    • Bổ sung và hoàn thiện tính năng hiển thị thời tiết qua tiện ích màn hình chính (Widgets) để người dùng theo dõi thông tin nhanh mà không cần mở ứng dụng.
    • Nghiên cứu sâu hơn các API và kiến trúc Android để phát triển thêm các dạng ứng dụng di động đa phương tiện và truyền thông khác như: ứng dụng trò chuyện (chat), gửi tin nhắn đa phương tiện MMS, truyền gửi video và tập tin, phát nhạc, trò chơi di động và ứng dụng thư điện tử (email).

Giá trị tham khảo

Đồ án tốt nghiệp của tác giả Phạm Viết Long có giá trị tham khảo thiết thực cho các đối tượng sau:

  • Sinh viên ngành Công nghệ Thông tin và Kỹ thuật Phần mềm: Tài liệu cung cấp bức tranh tổng quát, dễ hiểu về kiến trúc hệ điều hành Android, vòng đời thành phần Activity/Service và cách thức cấu hình tập tin AndroidManifest.xml.
  • Người học lập trình di động cơ bản: Cung cấp tài liệu mẫu về quy trình phân tích thiết kế phần mềm hướng đối tượng (UML) cho ứng dụng di động, bao gồm các ca sử dụng, sơ đồ tuần tự và sơ đồ hoạt động.
  • Lập trình viên phát triển ứng dụng tích hợp Web Service: Phần triển khai tại Chương 3 là tài liệu tham khảo cụ thể về cách đăng ký appid, thiết lập URL truy vấn RESTful tới OpenWeatherMap API, kỹ thuật chuyển đổi chuỗi JSON sang Java Class và cách sử dụng thư viện Picasso để quản lý hình ảnh trong Android.

Câu hỏi thường gặp

1. Tác giả sử dụng nguồn dữ liệu nào để cung cấp thông tin dự báo thời tiết trong ứng dụng?
Ứng dụng lấy dữ liệu từ dịch vụ Web Service của trang web OpenWeatherMap.org (OpenWeatherMap API phiên bản 2.5) thông qua giao thức HTTP với định dạng dữ liệu trả về là JSON.

2. Ứng dụng quản lý và phân tích dữ liệu thời tiết nhận về từ API bằng những lớp (Java Class) nào?
Dữ liệu JSON được phân tích cú pháp và ánh xạ vào các lớp Java gồm: OpenWeatherJson (lớp bao ngoài JSON), Main (chứa nhiệt độ, độ ẩm, áp suất), Clouds (mật độ mây), Win (thông tin gió), Sys (thông tin địa điểm/quốc gia), WeatherItem (mô tả thời tiết và biểu tượng) và Coord (tọa độ địa lý).

3. Thư viện ngoài nào được tác giả sử dụng để hiển thị hình ảnh trạng thái thời tiết trên giao diện Android?
Tác giả sử dụng thư viện Picasso để tải và hiển thị hình ảnh biểu tượng trạng thái thời tiết tương ứng từ máy chủ lên giao diện ứng dụng.

4. Màn hình chính của ứng dụng mặc định hiển thị thông tin thời tiết của địa điểm nào?
Theo thiết kế và triển khai tại Chương 3, giao diện chính của ứng dụng mặc định sẽ hiển thị thông tin thời tiết của thành phố Hà Nội.

5. Hướng phát triển tính năng mới được tác giả đề xuất cụ thể cho ứng dụng thời tiết là gì?
Tác giả đề xuất phát triển thêm tiện ích màn hình chính (Widgets) để hiển thị nhanh thông tin thời tiết và mở rộng nghiên cứu các ứng dụng di động khác như chat, MMS, gửi tập tin, video, nghe nhạc và email.


Kết luận

Đồ án tốt nghiệp "Xây dựng ứng dụng dự báo thời tiết trên hệ điều hành Android" của sinh viên Phạm Viết Long đã giải quyết trọn vẹn mục tiêu nghiên cứu lý thuyết nền tảng Android và triển khai ứng dụng thực tế. Thông qua việc tích hợp OpenWeatherMap API và phân tích cú pháp dữ liệu JSON, ứng dụng cho phép người dùng theo dõi đầy đủ các thông số khí tượng tại vị trí hiện tại cũng như tìm kiếm thời tiết và xem dự báo 5 ngày cho các địa điểm bất kỳ. Đề tài là công trình tốt nghiệp hoàn chỉnh, phản ánh đúng chuẩn mực đồ án đại học ngành Công nghệ Thông tin tại Trường Đại học Công nghệ Thông tin và Truyền thông – Đại học Thái Nguyên.