GIỚI THIỆU VỀ ĐƠN VỊ THỰC TẬP
Giới thiệu địa điểm kiến tập
Tên công ty: Công Ty TNHH Pureative Địa chỉ: 398 Trưng Nữ Vương, Phường Hoà Thuận Đông, Quận Hải Châu, Thành phố Đà Nẵng
Người ĐDPL: Lê Thành Công
Lĩnh vực: Hoạt động dịch vụ công nghệ thông tin và dịch vụ khác liên quan đến máy vi tính
Giới thiệu chung
TNHH Pureative là một công ty phần mềm công nghệ, được thành lập bởi những cá nhân tâm huyết, giàu năng lực và kinh nghiệm chuyên môn Công ty hướng đến mục tiêu trở thành một trong những đơn vị hàng đầu tại Việt Nam và mở rộng tầm ảnh hưởng ra toàn cầu.
Công ty TNHH Pureative chuyên cung cấp giải pháp phần mềm quản lý cho các doanh nghiệp lớn, ngân hàng, trường đại học, bệnh viện và nhiều tổ chức khác Chúng tôi cũng phát triển các giải pháp kết nối cộng đồng trên nền tảng internet, bao gồm hệ thống website và các dịch vụ liên quan, cùng với các hệ thống trong lĩnh vực thương mại điện tử và chính phủ điện tử.
Công ty TNHH Pureative cam kết nghiên cứu và ứng dụng công nghệ tiên tiến vào đời sống, với mục tiêu nâng cao chất lượng cuộc sống cho cộng đồng.
TỔNG QUAN DỰ ÁN
Tên dự án
Ứng dụng dự báo thời tiết
Sinh viên thực hiện
4651 Bán buôn máy vi tính, thiết bị ngoại vi và phần mềm
4652 Bán buôn thiết bị và linh kiện điện tử, viễn thông
7410 Hoạt động thiết kế chuyên dụng
6201 Lập trình máy vi tính
6202 Tư vấn máy vi tính và quản trị hệ thống máy vi tính
6311 Xử lý dữ liệu, cho thuê và các hoạt động liên quan
4669 Bán buôn chuyên doanh khác chưa được phân vào đâu
7490 Hoạt động chuyên môn, khoa học và công nghệ khác chưa được phân vào đâu
4321 Lắp đặt hệ thống điện
Phạm Văn Việt Tiến - 18IT
Ý tưởng đề tài
Hiện nay, việc ứng dụng công nghệ thông tin và tin học hóa là yếu tố quyết định cho hoạt động của chính phủ, tổ chức và doanh nghiệp Công nghệ này đóng vai trò quan trọng, giúp tạo ra những bước đột phá mạnh mẽ trong nhiều lĩnh vực.
Việc phát triển ứng dụng điện thoại đã trở thành một xu hướng phổ biến, phục vụ nhu cầu của tổ chức, công ty và cá nhân Người dùng có thể dễ dàng tải và cài đặt ứng dụng trong nhiều lĩnh vực như thời tiết, âm nhạc, video, mạng xã hội, giáo dục và nấu ăn Đối với doanh nghiệp, việc tạo ứng dụng trên điện thoại thông minh là rất quan trọng để phát triển, giúp truyền tải thông tin về sản phẩm và dịch vụ mới đến khách hàng một cách nhanh chóng và hiệu quả, tránh những phiền phức của giao tiếp truyền thống.
Với tình hình hiện tại, việc xem dự báo thời tiết trên truyền hình ở Việt Nam gặp nhiều hạn chế Tuy nhiên, nhờ vào sự phát triển của công nghệ, việc tạo ra một ứng dụng thời tiết trên hệ điều hành Android đã trở nên dễ dàng và tiện lợi cho người dùng Ứng dụng này cho phép người dùng theo dõi thời tiết mọi lúc, mọi nơi, miễn là có kết nối internet.
Mục tiêu của dự án
Tạo một ứng dụng thời tiết đơn giản với giao diện đẹp và dễ sử dụng, giúp người dùng cập nhật thông tin thời tiết hàng ngày và dự báo cho những ngày tiếp theo Ứng dụng còn cho phép chia sẻ hình ảnh thời tiết tại vị trí hiện tại với mọi người, mang lại trải nghiệm tiện lợi và thú vị.
Phương pháp thực hiện
Khám phá các ứng dụng dự báo thời tiết phổ biến trên điện thoại và tìm hiểu về API dự báo thời tiết từ các trang web như OpenWeatherMap và Windy Phân tích giao diện và các chức năng nổi bật của những ứng dụng này Dựa vào những chức năng đã được lên kế hoạch từ ban đầu, tổng hợp và đưa ra yêu cầu hoàn chỉnh cho ứng dụng dự báo thời tiết.
Tìm hiểu API Google Map, Arcgis online để hiển thị bản đồ, hiển thị basic layer thời tiết
Sử dụng các công cụ như Visual Studio Code, Nodejs, Express Framework,
Mongodb để tạo một web server back-end kiểm thử trên localhost Sau khi hoàn chỉnh sẽ đưa lên internet.
Utilizing Android Studio software enables the development of fully functional applications that operate on mobile devices, leveraging APIs retrieved from a back-end web server hosted online.
NGHIÊN CỨU THIẾT KẾ
Ngôn ngữ và công cụ lập trình được sử dụng
Node.js là một nền tảng phần mềm lý tưởng để phát triển các ứng dụng internet mở rộng, đặc biệt là máy chủ web Được viết bằng JavaScript, Node.js sử dụng kỹ thuật điều khiển theo sự kiện và nhập/xuất không đồng bộ nhằm tối ưu hóa hiệu suất và khả năng mở rộng Nền tảng này tích hợp V8 JavaScript engine của Google, libUV và một số thư viện khác, mang lại hiệu quả cao trong việc xử lý các tác vụ mạng.
Framework là một thư viện các lớp hoàn chỉnh, cung cấp bộ khung cho việc phát triển phần mềm ứng dụng Nó giống như các “vật liệu” trong từng lĩnh vực cho lập trình viên, giúp tiết kiệm thời gian thiết kế Nhờ đó, lập trình viên chỉ cần tìm hiểu và khai thác các vật liệu có sẵn để kết hợp chúng lại, tạo ra sản phẩm cuối cùng.
Express là một framework mạnh mẽ dành cho Node.js, cung cấp nhiều tính năng hữu ích cho phát triển web và ứng dụng di động Nó hỗ trợ các phương thức HTTP và middleware, giúp tạo ra API dễ sử dụng và hiệu quả.
Android Studio là phần mềm cung cấp bộ công cụ phát triển ứng dụng cho thiết bị sử dụng hệ điều hành Android, bao gồm smartphone và tablet Phần mềm này tích hợp trình biên tập mã, công cụ gỡ lỗi, công cụ hiệu suất và hệ thống xây dựng/phân phối, cùng với trình giả lập để mô phỏng môi trường thiết bị Nhờ đó, lập trình viên có thể nhanh chóng phát triển ứng dụng từ đơn giản đến phức tạp.
3.1.4 Visual Studio Code (VS Code hay VSC):
Là một trình biên tập lập trình code miễn phí dành cho Windows, Linux và macOS,
Visual Studio Code được phát triển bởi Microsoft Nó được xem là một sự kết hợp hoàn hảo giữa IDE và Code Editor.
Visual Studio Code là một công cụ lập trình mạnh mẽ với chức năng debug tích hợp, hỗ trợ Git, và tính năng tô màu cú pháp Nó cung cấp khả năng tự hoàn thành mã thông minh, snippets, cùng với cải tiến mã nguồn Đặc biệt, người dùng có thể tùy chỉnh giao diện, phím tắt và nhiều tùy chọn khác để phù hợp với nhu cầu cá nhân.
Java là ngôn ngữ chính thức phát triển ứng dụng Android, được Google hỗ trợ mạnh mẽ nhất Hầu hết các ứng dụng trên Play Store được xây dựng bằng Java, và nó là nền tảng cơ bản cho tất cả ứng dụng trong hệ điều hành Android của Google.
JavaScript là một ngôn ngữ lập trình phổ biến cho việc phát triển website, được sử dụng cho cả giao diện người dùng và phía máy chủ thông qua Node.js Ngôn ngữ này thường được nhúng trực tiếp vào trang web hoặc tham chiếu qua file js riêng biệt Là ngôn ngữ phía client, JavaScript cho phép script được tải về máy của người dùng và xử lý tại đó, thay vì phải xử lý trên server trước khi gửi kết quả đến khách truy cập.
RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web
Dịch vụ thiết kế web nhằm hỗ trợ quản lý các tài nguyên hệ thống như tệp văn bản, hình ảnh, âm thanh, video và dữ liệu động Nó tập trung vào việc định dạng và truyền tải các trạng thái tài nguyên qua giao thức HTTP.
3.1.8 API Google map, Arcgis online:
Phân tích thiết kệ hệ thống website
3.2.1 Các actor và phân tích chức năng:
Các actor và chức năng:
Đăng nhập bằng quyền admin.
Xem, sửa , xóa thông tin người dùng.
Xem, sửa , xóa các bài viết, story
Nhận thông báo báo cáo bài viết của người dùng
Nhận và trả lời liên hệ với người dùng
Tạo tài khoàn, đăng nhập.
Xem thông tin thời tiết theo vùng, vị trí hiện tại
Xem thời tiết chi tiết bản đồ vùng tại TP Đà Nẵng
Xem bản đồ nhiệt, lương mưa, mây, v.v
Xem hiểu đồ nhiệt độ theo ngày, giờ
Tạo bài viết, story mới
Chỉnh sửa bài viết, story
Chỉnh sửa thông tin trang cá nhân (hình ảnh đại diện, mật khẩu, email….).
Hình 3-1 Sơ đồ Use-case mô tả chức năng chính của hệ thống
Hình 3-2 Sơ đồ use-case mô tả các chứng năng chi tiết trong trang homde
Hình 3-3 Sơ đồ use-case mô tả chi tiết chức năng trang thông báo
Hình 3-4 Biểu đồ use case trang bản đồ
Cơ sở dữ liệu
3.3.1 Mô tả một số bảng chính của hệ thống:
UserName String Tên đăng nhập
Email String Email của người dùng
Password String Mật khẩu đăng nhập()
Bang 3-1 Cấu trúc bảng Users
ID_User ObjectID Tên đăng nhập
First_Name String Họ và tên lót
Last_Name String Tên người dùng
Address String Địa chỉ hiện tại người dùng
Phone String Số điện thaoij
Date_Of_Birth Date Ngày sinh
Bang 3-2 Cấu trúc bảng thông tin user
ID_User ObjectID Id user
Text String Nội dung bài viết
File Array[Strinhg] Hình ảnh, video
Like Int Số lượt thích
Comment Int Số lượt bình luận
Level Int Chế độ xem của bài viết
Bang 3-3 Cấu trúc bảng Posts
ID_User ObjectID Id user
Text String Nội dung story
File Array[Strinhg] Hình ảnh, video
Like Int Số lượt thích
Bang 3-4 Cấu trúc bảng Story
3.3.2 Biểu đồ cơ sở dữ liệu:
Hình 3-5 Biểu đồ cơ sở dữ liệu
Biểu đồ lớp
Biểu đồ hoạt động
Biểu đồ hoạt động đăng nhập:
Hình 3-7 Biểu đồ hoạt động đăng nhập
Biểu đồ hoạt động đỗi mật khẩu:
Hình 3-8 Biểu đồ hoạt động đổi mật khẩu
Biểu đồ hoạt động sửa thông tin cá nhân:
Hình 3-9 Biểu đồ hoạt động sửa thông tin cá nhân
Biểu đồ hoạt động đăng bài mới
Hình 3-10 Biểu đồ hoạt động đăng bài
Biểu đồ hoạt động đăng stories:
Hình 3-11 Biểu đồ hoạt động đăng stories
Biểu đồ hoạt động đăng ký tài khoảng:
Hình 3-12 Biểu đồ hoạt động đăng ký tài khoảng
XÂY DỰNG ỨNG DỤNG
Xây dựng restful API, cào dữ liệu thời tiết
Đoạn code lấy dữ liệu:
Hình 4-13 Restful API – Code lấy dữ liệu
Hình 4-14 Restful API – Dữ liệu nhận được
4.1.2 Cào dữ liệu thời tiết: Ở trong dự án này, em sử dụng API của trang web openweathermap.org có thể trả về thông tin thời tiết hiện tại, hoặc là trong vòng 5 ngày tới với chu kì 3 giờ / 1 kết quả, hoặc là trong vòng 24 giờ tiếp theo Có thể cung cấp thông tin về địa điểm muốn xem kết quả thời tiết bằng cách cung cấp vị trí kinh độ và vĩ độ, hoặc theo tên thành phố, quốc gia, hoặc theo mã vùng của thành phố đó,…
Kết quả trả về có thể ở định dạng JSON hoặc XML với các thông tin như:
− Vị trí địa lí (Kinh độ – vĩ độ)
− Thời tiết hiện tại (Kèm mô tả)
− Nhiệt độ (Lớn nhất, thấp nhất và cảm giác nhiệt độ)
Dữ liệu lượng mưa dạng JSON:
Hình 4-15 Dữ liệu lượng mưa dạng JSON
Một số hàm cào dữ liệu phía Server :
Hình 4-16 Cào dữ liệu thời tiết ở server
Xây dựng ứng dụng trên Android
4.2.1 Sử dung thư viện retrofit 2 android
Cài đặt Retrofit và Gson cho dự án (project) android:
Đưa các implementation sau vào file build.gradle (app) của project:
Các implementation trên bao gồm:
Lớp (Class) này hổ trợ kết nối đến serve và thực hiện các yêu cầu restful api từ app đến web services.
Tạo các model nhận,xử lí và lưu trữ các thông tin trả về
Api Login sử dụng mô hình LoginModel để gửi email và mật khẩu đăng nhập Nếu quá trình đăng nhập thành công, hệ thống sẽ trả về token, và token này sẽ được lưu trữ trong mô hình LoginResponse.
Tạo đối tượng Retrofit (Retrofit client):
4.2.2 Sử dung API Google map, Arcgis online:
Trong dự án này, tôi đã sử dụng API Google Maps và ArcGIS Online để hiển thị đa dạng các loại bản đồ, đồng thời kết hợp với lớp cơ bản của khu vực thành phố Đà Nẵng.
Hình 4-17 Google map và Arcgis map
Sử dụng Api google map thêm basic layer khu vực Đà Nẵng:
Sử dụng Tile Overlays của Google map để thêm các biểu đồ nhiệt, lượng mưa từ trang openweathermap.org :
Chương trình demo
Màng hình Splash, đăng nhập, đăng ký:
Hình 4-18 Màng hình splash, đăng nhập, đăng ký
Màng hình trang bản đồ
Hình 4-19 Màng hình trang bản đồ - 1
Hình 4-20 Màng hình trang bản đồ - 2
Màng hình trang bài viết
Hình 4-21 Màng hình trang bài viết
Màng hình trang dự báo thời tiết vị trí hiện tại
Hình 4-22 Màng hình trang thời tiết vị trí hiện tại