Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 103 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
103
Dung lượng
5,17 MB
Nội dung
LỜI CAM ĐOAN Tôi Đào Anh Khoa cam kết luận văn thạc sĩ công trình nghiên cứu thân hướng dẫn TS Nguyễn Nhật Quang Các kết nêu luận văn thạc sĩ trung thực, chép toàn văn công trình khác Hà Nội, ngày 22 tháng 09 năm 2014 Tác giả luận văn Đào Anh Khoa Xác nhận giáo viên hướng dẫn mức độ hoàn thành luận văn cho phép bảo vệ: Hà Nội, ngày 22 tháng 09 năm 2014 Giáo viên hướng dẫn TS Nguyễn Nhật Quang MỤC LỤC MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ DANH MỤC CÁC BẢNG DANH SÁCH CÁC HÌNH MỞ ĐẦU Đặt vấn đề Các công nghệ sử dụng 11 2.1 RESTful Web Service 11 2.2 Ruby On Rails 15 2.3 Memcached 16 2.4 Redis 18 2.5 ElastichSearch 20 2.6 Amazon Web Services (AWS) 21 2.7 Google geocoding 23 2.8 Sidekiq 24 Phân tích, thiết kế hệ thống 26 3.1 Tổng quan chức hệ thống 26 3.1.1 Chức quản trị: 26 3.1.2 Các chức mạng xã hội 27 3.2 Phân tích, thiết kế hệ thống 31 3.2.1 Khung nhìn theo lược đồ trường hợp sử dụng (Use-case diagram) 31 3.2.2 Khung nhìn theo lược đồ hoạt động (Activity diagram) 34 3.2.3 Khung nhìn theo lược đồ chuỗi hành động (Sequence diagram) 39 3.2.4 Thiết kế sở liệu 71 3.2.5 Sơ đồ package hệ thống 72 Cài đặt thư viện 73 4.1.1 KdaGem 74 4.1.2 Kcache 75 4.1.3 Mredis 76 Cài đặt hệ thống mạng xã hội chia sẻ địa điểm 80 5.1 Kiến trúc hệ thống 80 5.2 Giao diện chương trình chức hệ thống 82 Kết luận 96 Tài liệu tham khảo 97 PHỤ LỤC 98 DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ Viết tắt Thuật ngữ Ghi CSDL Cơ sở liệu AWS Amazon Web Service Dịch vụ đám mây Amazon S3 Simple Storage Service Dịch vụ lưu trữ đám mây Amazon MXH Mạng xã hội DANH MỤC CÁC BẢNG Bảng 4.1 Các phương thức thư viện KdaGem 75 DANH SÁCH CÁC HÌNH Hình 2.1 Hình minh họa sử dụng phương thức HTTP RESTful 12 Hình 2.2 Thiết kế trạng thái 12 Hình 2.3 Thiết kế phi trạng thái 13 Hình 2.4: Sử dụng Memcached đệm liệu truy cập cở sở liệu 17 Hình 2.5: Kiến trúc hệ thống sử dụng Amazon Cloudfront 23 Hình 3.1 Biều đồ Use-case chức quản lý theo hình ảnh 31 Hình 3.2 Biểu đồ Use-case chức quản lý theo địa điểm 32 Hình 3.3 Biều đồ Use-case người sử dụng 33 Hình 3.4 Biểu đồ activity trình đăng kí 34 Hình 3.5 Biểu đồ activity trình đăng nhập 35 Hình 3.6 Biểu đồ activity đăng ảnh 36 Hình 3.7 Biểu đồ activity kiểm tra ảnh có vào danh sách phô biến không? 38 Hình 3.8 Biểu đồ sequence tiến trình bình luận ảnh 39 Hình 3.9 Biểu đồ sequence tiến trình xóa bình luận ảnh 41 Hình 3.10 Biểu đồ sequence tiến trình thích ảnh 42 Hình 3.11 Biểu đồ sequence tiến trình thực sưu tập ảnh 44 Hình 3.12 Biểu đồ sequence tiến trình đưa ảnh vào thư mục sưu tập 46 Hình 3.13 Biểu đồ sequence tiến trình xóa ảnh khỏi thư mục sưu tập 47 Hình 3.14 Biểu đồ sequence tiến trình xóa ảnh 48 Hình 3.15 Biểu đồ sequence tiến trình báo cáo sai phạm ảnh 49 Hình 3.16 Biểu đồ sequence tiến trình tìm kiếm ảnh theo tiêu chí khác 50 Hình 3.17 Biểu đồ sequence tiến trình lấy danh sách ảnh người dùng theo dõi người dùng 51 Hình 3.18 Biểu đồ sequence tiến trình lấy danh sách ảnh sưu tập 52 Hình 3.19 Biểu đồ sequence tiến trình lấy danh sách ảnh popular (ảnh đạt số point lớn số định vòng ngày) 53 Hình 3.20 Biểu đồ sequence tiến trình lấy danh sách ảnh 54 Hình 3.21 Biểu đồ Sequence tìm kiếm ảnh phạm vi xếp theo thời gian độ phổ biến 55 Hình 3.22 Biểu đồ Sequence tìm kiếm địa điểm theo từ khóa tên thành phố, tên bang, tên nước, 56 Hình 3.23 Biểu đồ Sequence lấy danh sách ảnh gắn với địa điểm 57 Hình 3.24 Biểu đồ Sequence lấy danh sách địa điểm đẹp (landmark) phạm vi định 58 Hình 3.25 Biểu đồ sequence tiến trình gửi đánh giá địa điểm đẹp (landmark) 59 Hình 3.26 Biểu đồ sequence tiến trình tạo kế hoạch đến địa điểm ảnh 60 Hình 3.27 Biểu đồ sequence tiến trình lấy danh sách kế hoạch tạo người dùng 61 Hình 3.28: Biểu đồ Sequence lấy danh sách tin tức user 62 Hình 3.29 Biểu đồ Sequence tìm kiếm bạn bè (theo tên, username, email) 63 Hình 3.30 Biểu đồ sequence tiến trình đăng kí / hủy đăng kí theo dõi người dùng 64 Hình 3.31 Biểu đồ sequence tiến trình lấy danh sách người dùng theo dõi người dùng 65 Hình 3.32 Biểu đồ sequence tiến trình lấy danh sách người dùng theo dõi người dùng 66 Hình 3.33 Biểu đồ sequence tiến trình lấy thông tin đăng kí nhận thông báo 67 Hình 3.34 Biểu đồ sequence tiến trình chỉnh sửa đăng kí nhận thông báo 68 Hình 3.35 Biểu đồ sequence tiến trình lấy thông tin cá nhân người dùng 69 Hình 3.36: Biểu đồ sequence tiến trình chỉnh sửa thông tin cá nhân 70 Hình 3.37 Sơ đồ thiết kế sở liệu hệ thống 71 Hình 3.38 Biểu đồ package hệ thống 72 Hình 4.1 Danh sách thư viện xây dựng RubyGems 73 Hình 5.1 Kiến trúc hệ thống 80 Hình 5.2 Của sổ hình đăng kí đăng nhập 82 Hình 5.3 Thanh công cụ người dùng sau đăng nhập 83 Hình 5.4 Cửa sổ hiển thị tin tức thông báo cho người dùng 83 Hình 5.5 Giao diện trang hiển thị dành cho người dùng 84 Hình 5.6 Sơ đồ trình đăng ảnh 85 Hình 5.7 Giao diện trang cài đặt thông tin cá nhân người dùng 86 Hình 5.8 Màn hình chi tiết thông tin ảnh 87 Hình 5.9 Màn hình danh sách ảnh phổ biến 88 Hình 5.10 Màn hình thực sưu tập ảnh 89 Hình 5.11 Màn hình kết sau thực sưu tập, thích ảnh 89 Hình 5.12 Màn hình danh sách sưu tập (dạng lưới) 90 Hình 5.13 Màn hình danh sách sưu tập (dạng đồ) 91 Hình 5.14 Màn hình chi tiết thông tin sưu tập 91 Hình 5.15 Màn hình tạo kế hoạch 92 Hình 5.16 Màn hình chi tiết thông tin địa điểm 93 Hình 5.17 Màn hình tìm kiếm người dùng 94 Hình 5.18 Màn hình hiển thị ảnh, địa điểm đẹp dạng đồ 94 Hình 5.19 Màn hình tìm kiếm nâng cao ảnh 95 Hình 8.1 Thông tin thư viện KdaGem 98 Hình 8.2 Thông tin thư viện Kcache 99 Hình 8.3 Thông tin thư viện Mredis 100 MỞ ĐẦU Trong thời đại nay, mạng xã hội trở thành phần phổ biến sống Mạng xã hội nơi chia sẻ cảm xúc, học hỏi, giao lưu, kết bạn, tìm kiếm thông tin, chia niềm đam mê, sở thích … Facebook hay Twitter biết đến mạng xã hội tiếng phổ biến nhất, bên cạnh đó nhiều mạng xã hội khác Khác với trang mạng xã hội lớn dùng cho nhiều mục đích (multi-purpose social network) Facebook, Twitter nơi cho tất người chia sẻ nhiều lĩnh vực sống Mạng xã hội phát triển luận văn nàyhướng tới đối tượng người dùng cụ thể người du lịch cần tìm địa điểm đẹp người thích chụp ảnh muốn tìm đến nơi có thể chụp ảnh đẹp – mạng xã hội chia sẻ địa điểm Một vấn đề tính mạng xã hội cần cập nhật liên tục để thu hút người dung nên cần chương trình có tính mềm dẻo khả mở rộng cao Chính chọn Ruby on Rails (http://rubyonrails.org) – ngôn ngữ lập trình ngắn gọn gần với ngôn ngữ tự nhiên cộng đồng phát triển mạnh giúp rút ngắn thời gian, công sức xây dựng chương trình Khi định xây dựng thư viện lập trình mạng xã hội chia sẻ địa điểm, mong muốn xây dựng ứng dụng chạy tảng, hệ điều hành khác nhau, kết nối với ứng dụng mạng xã hội khác để tiếp cận đến với nhiều người dùng tốt Chính vậy, xây dựng thư viện lập trình API theo chuẩn RESTful giúp ứng dụng hay hệ thông dễ dàng kết nối mà không phụ thuộc vào ngôn ngữ lập trình hay hệ điều hành Ngoài ra, với điều thu được, kĩ thuật hữu ích xây dựng mạng xã hội, đóng gói thành thư viện (gems) để chia sẻ cho cộng đồng phát triển Ruby On Rails nói riêng nhà lập trình nói chung Từ điểm trên, thực luân văn “Xây dựng thư viện lập trình API theo chuẩn RESTful cho mạng xã hội chia sẻ địa điểm” Cụ thể, công việc thực luận văn bao gồm việc nghiên cứu công nghệ cần thiết để thiết kế cài đặt thư viện lập trình API theo chuẩn RESTful, với đó thực cài đặt hệ thống mạng xã hội chia sẻ địa điểm chạy tảng Web đóng gói thư viện (gems) cho cộng đồng lập trình tái sử dụng Bố cục luận văn tổ chức sau: Đặt vấn đề: khảo sát, đánh giá thư viện, framework hỗ trợ xây dựng mạng xã hội có Qua đó cho thấy tính cần thiết việc thực công việc luận văn Các công nghệ sử dụng: trình bày đặc điểm khả công nghệ sử dụng để xây dựng mạng xã hội chia sẻ địa điểm Phân tích, thiết kế hệ thống: trình bày tổng quan chức mạng xã hội chia sẻ địa điểm, đặc tả chức khung nhìn theo lược đồ trường hợp sử dụng (Use-case diagram), lược đồ hoạt động (Activity diagram), lược đồ chuỗi hành động (Sequence diagram) Cài đặt thư viện: trình bày mục đích xây dựng tính thư viện thực Cài đặt hệ thống mạng xã hội chia sẻ địa điểm: trình bày kiến trúc vật lý, giao diện chức chức mạng xã hội chia sẻ địa điểm cài đặt Kết luận: kết đạt công việc thực luận văn, điểm hạn chế, hướng phát triển công việc làm luận văn Đặt vấn đề Cùng với bùng nổ mạng xã hội công cụ hỗ trợ giúp xây dựng mạng xã hội ngày nhiều lên Vậy vấn đề ta không sử dụng công cụ đó để xây dựng mạng xã hội chia sẻ địa điểm? Có ưu nhược điểm công cụ này? Và lại tự xây dựng mạng xã hội Ruby on Rails? Để trả lời câu hỏi thử nghiệm đánh giá số framework hỗ trợ xây dựng mạng xã hội tiêu biểu có, bao gồm: - Buddypress (PHP): http://buddypress.org/ - Dolphin (PHP): http://www.boonex.com/dolphin - Community Engine (Ruby): http://communityengine.org/ Sở dĩ chọn framework viết PHP Ruby On Rails để đánh giá ta biết ngôn ngữ phổ biến, có cộng đồng phát triển mạnh, thích hợp để xây dựng, phát triển mô hình web ứng dụng vừa nhỏ mạng xã hội đề cập luận văn Ta vào chi tiết framework Buddypress: Như biết Wordpress có cộng đồng phát triển lớn mạnh, đó có nhiều plugin cung cấp nhiều chức khác Trong đó có Buddypress - plugin hỗ trợ làm MXH Wordpress Sau cài đặt thử sử dụng Buddypress thấy plugin hay để xây dựng MXH với chức kết bạn, đăng bài, bình luận, thích đăng, … Tuy nhiên số lượng chức Buddypress thân cung cấp không nhiều Nhưng lợi cộng đồng phát triển wordpress lớn, số lượng plugin nhiều nên ta dễ dàng tìm plugin khác giúp xây dưng chức mở rộng MXH muốn xây dựng Address Geocoder giúp tích hợp địa điểm đồ vào đăng, ta muốn kết nối đến dịch vụ cache liệu giúp nâng cao hiệu cho hệ thống (như memcached, redis) hay dịch vụ giúp đánh chỉ mục cho việc tìm kiếm nâng cao (như elasticsearch) có plugin hỗ trợ tương ứng,… Tuy không khó khăn việc tích hợp plugin chúng dạng mã nguồn mở nên tùy biến cao công việc công Có thể nhận thấy điểm hạn chế sau: - MXH chia sẻ địa điểm ta cần có quản lý phân cấp địa điểm (thành phố, bang, nước) plugin chỉ dừng lại mức trả cho ta dạng chuỗi kí tự nên ta phải xử lý chuỗi muốn thực phân cấp quản lý - Trong trường hợp ta cần nâng cao hiệu hệ thống, cần sử dụng memcached thành phần nhớ đệm Ta tìm plugin để kết nối memcached đó chỉ kết nối đơn Khi cần sử dụng chúng memcached để làm nhớ đệm cho truy vấn SQL, dùng làm nhớ đệm cho thành phần lặp lại view không sẵn có - Việc xây dựng Restul API Buddypress khó khăn, gặp trở ngại không hỗ trợ, sử dụng plugin khác chưa hoàn chỉnh - Để tìm kiếm hỗ hợp, xếp phức tạp ta chọn sử dụng dịch vụ Elasticsearch với nhiều ưu điểm Có thể tìm plugin cho phép kết nối elasticsearch lại hỗ trợ chưa tốt việc đưa liệu vào Elasticsearch từ CSDL Định nghĩa phân tích hỗ trợ, đánh chỉ mục cho phương thức gắn với đối tượng mà thuộc tính sẵn có CSDL không có Dolphin: Là framework PHP giúp xây dựng MXH phí Khác vói Buddypress chỉ cung cấp tính mạng xã hội Dolphin cung cấp chức phong phú thông qua số lương lớn module như: quản lý người dùng, post ảnh, video, quản lý theo tag, lọc xếp nhóm đối tượng theo tiêu chí, Thậm chí cung cấp giao diện quản trị (admin), forum tích hợp di động (mobile) Nhưng có thể thấy nhược điểm là: - Sử dụng phí, vấn đề tùy biến liên quan đến quyền Do đó việc phát triển chức không dễ dàng Từ trang thông tin chi tiết ảnh, người dùng thực thao tác sau: - Xem đầy đủ thông tin ảnh, thông tin người đăng ảnh, thông tin địa điểm đăng ảnh, danh sách ảnh gần với ảnh này, danh sách số lượng người thích chọn sưu tập ảnh - Thực bình luận ảnh - Thực thích bỏ thích ảnh - Thực chọn sưu tập bỏ sưu tập ảnh - Thực theo dõi, bỏ theo dõi người đăng ảnh Hình 5.8 Màn hình chi tiết thông tin ảnh 87 Người dùng khám phá ảnh cách click vào nút Discorver công cụ Các thông tin địa điểm ảnh, nút thích, sưu tập hiển thị người dùng đặt chuột qua ảnh đó Danh sách ảnh với tiêu chí (người dùng chọn thẻ để di chuyển): - Ảnh phổ biến: ảnh nhiều thích, chọn sưu tập hay bình luận - Ảnh mới: xếp từ đến cũ - Ảnh người dùng vòng kết nối (yêu cầu đăng nhập) Mỗi danh sách ảnh có phân trang, trang hiển thị 36 ảnh, người dùng chọn sang trang liệu phần cuối trang hình: Hình 5.9 Màn hình danh sách ảnh phổ biến 88 Người dùng chọn sưu tập ảnh trang chi tiết ảnh trang danh sách ảnh dạng lưới cách đặt chuột vào vùng ảnh muốn chọn Sau ấn Collect, cửa sổ Collect mở cho phép người dùng chọn sưu tập muốn gán ảnh vào hay tạo sưu tập sau đó gán ảnh vào đó Hình 5.10 Màn hình thực sưu tập ảnh Sau hoàn thành chọn sưu tập ảnh thích ảnh biểu tượng ảnh sáng hình dưới, người dùng hủy thích hủy sưu tập cách ấn vào đó lần Hình 5.11 Màn hình kết sau thực sưu tập, thích ảnh 89 Người dùng xem danh sách ảnh sưu tập cách ấn vào Collect công cụ Trên trang Collect, người dùng theo dõi toàn sưu tập ảnh, số lượng ảnh thuộc sưu tập Có hình thực hiển thị ảnh đó dạng lưới (thực thao tác chọn ảnh lập kế hoạch) dạng đồ (người dùng dễ dàng quan sát địa điểm đăng ảnh) Hình 5.12 Màn hình danh sách sưu tập (dạng lưới) 90 Hình 5.13 Màn hình danh sách sưu tập (dạng đồ) Trên trang Collect, người dùng tạo thư mục sưu tập mới, xem chi tiết thông tin, đưa ảnh vào hay loại bỏ ảnh khỏi thư mục sưu tập Hình 5.14 Màn hình chi tiết thông tin sưu tập 91 Người dùng xem thông tin kế hoạch lập cách chọn Plan công cụ Trên trang Plan, người dùng xem danh sách kế hoạch (tất chỉ kế hoạch tới) thấy kế hoạch lập bới người dùng khác hệ thống Để tạo kế hoạch người dùng chọn “Make a new plan from collect page”, hình di chuyển sang trang Collect để người dùng chọn ảnh tạo kế hoạch từ ảnh đó Hình 5.15 Màn hình tạo kế hoạch 92 Màn hình chi tiết địa điểm hiển thị thông tin ảnh chụp đỉa điểm đó, danh sách danh lam thắng cảnh nằm địa điểm đó địa điểm lân cận Hình 5.16 Màn hình chi tiết thông tin địa điểm 93 Người dùng tìm kiếm gợi ý người dùng khác cách chọn thẻ Community công cụ Hình 5.17 Màn hình tìm kiếm người dùng Trang Maptool cho phép người dùng lọc hiển thị ảnh, địa điểm đẹp đồ Hình 5.18 Màn hình hiển thị ảnh, và địa điểm đẹp dạng đồ 94 Người dùng tìm kiếm ảnh qua từ khóa cách nhập từ khóa (khi người dùng gõ từ khóa có gợi ý từ hệ thống) công cụ Sau đó hình kết tìm kiếm Ở danh sách ảnh có lọc ảnh, việc gom nhóm kết tìm theo mục (tag, nước, bang, thành phố) người dùng dễ dàng chọn hình thức lọc ảnh phù hợp Ngoài người dùng tìm kiếm ảnh theo thời gian đăng ảnh ngày (time) khoảng thời gian đăng ảnh (date) hay tìm kiếm theo khoảng cách (distance) cách nhập số km người dùng muốn tìm kiếm kể từ vị trí Hình 5.19 Màn hình tìm kiếm nâng cao ảnh 95 Kết luận Kết đạt công việc thực luận văn bao gồm: - Tìm hiểu vận dụng công nghệ Memcached, Redis, Elasticsearch, Geocoder, Sidekiq, … Ruby On Rails cho lập trình mạng xã hội - Hệ thống MXH chia sẻ địa điểm hoàn thành chức đề ra, có khả mở rộng phát triển chức - Các thư viện (gems) cho Ruby on Rails xây dựng nhà phá triển khác sử dụng nhiều thời gian ngắn - Các APIs theo chuẩn RESTful cho phép dễ dàng kết nối xây dựng ứng dụng từ môi trường phát triển khác Tuy nhiên, công việc đạt còn số điểm hạn chế sau đây: - Thiếu chế hoàn chỉnh nghiên cứu đánh giá hoạt động người dùng (dù có sử dụng số công cụ thống kê Mixpanel) để nắm bắt mong muốn, sở thích người dùng - Việc tạo loại ảnh với kích thước cố định khó cho việc tối ưu tài nguyên phía ứng dụng client điện thoại có độ phân giải khác nên hình ảnh cần độ phân giải khác Giải pháp sử dụng thêm dịch vụ bên thứ Cloudinary Trong tương lai, muốn tiếp tục phát triển công việc làm theo định hướng phát triển sau đây: - Phát triển thêm chức thu hút người dùng - Phát triển người dùng cách tạo chụp ảnh có giải thưởng - Cho phép đặt quảng cáo đặt chỗ khách sạn, nhà hàng địa điểm đẹp, tiếng nhiều người chụp ảnh đến thăm - Thông qua ảnh đẹp, quảng cáo bán loại máy ảnh, lens, … (nhúng mã từ Amazon, Ebay) mà chụp ảnh đó 96 Tài liệu tham khảo Leonard Richardson, S R (2007) RESTful Web Services O'Reilly Media Tiago Macedo, F O (2011) Redis Cookbook O'Reilly Media Ruby on Rails: http://guides.rubyonrails.org/index.html (9/9/2014) Geocoder: http://www.rubygeocoder.com (30/8/2014) ElasticSearch: http://www.elasticsearch.org/guide (9/9/2014) Redis: http://redis.io/documentation (9/9/2014) Amazon Web Service: http://aws.amazon.com/documentation (9/9/2014) 97 PHỤ LỤC Thư viện KdaGems Hình 8.1 Thông tin thư viện KdaGem Code: module KdaGem module Suggestion def self.terms_for(prefix) $redis_search.zrevrange "kdagem-suggestions:#{prefix.gsub(" ","").downcase}", 0, end def index_term(term) return if term.blank? term_search = term.gsub(" ","").downcase 1.upto(term_search.length) |n| prefix = term_search[0, n] $redis_search.zincrby "kdagem-suggestions:#{prefix}", 1, term end end end end 98 Cách sử dụng: Cài đặt thư viện (gem): o Thêm “kda_gem” vào Gemfile sau đó chạy lệnh “bundle install” o Hoặc tự cài đặt lệnh “gem install kda_gem” Thiết lập cấu hình cho Redis: KdaGem.configure |config| config.host = ENV["host"] #địa server redis config.port = ENV["port"] #cổng kết nối (mặc định 6379) config.db = ENV["database"] #tên sở liệu kết nối (dạng số) end Kết nối module vào lớp đối tượng cách thêm: include KdaGem::Suggestion Sau đó sử dụng phương thức thư viện cung cấp ứng với đối tượng đó Thư viện Kcache Hình 8.2 Thông tin thư viện Kcache 99 Code: module Kcache module MultiFetch def self.fetch_multi k, objects return {} if objects.blank? objects = objects.to_a.compact results = {} keys = objects.collect { |o| "#{o.class.base_class.name.downcase}/#{o.id.to_s}/#{k}" } hits = Rails.cache.read_multi(*keys) keys.each_with_index |key, i| results[objects[i].id.to_i] = if hits.include?(key) hits[key] else objects[i].try(k) end end results end end end Thư viện Mredis Hình 8.3 Thông tin thư viện Mredis 100 Cài đặt thư viện (gem) Thêm “mredis” vào Gemfile sau đó chạy lệnh “bundle install” Hoặc tự cài đặt lệnh “gem install mredis” Cấu hình cho redis: Mredis.configure |config| config.host = ENV["host"] #địa server redis config.port = ENV["port"] #cổng kết nối (mặc định 6379) config.db = ENV["database"] #tên sở liệu kết nối (dạng số) end 101 ... Đặt vấn đề Cùng với bùng nổ mạng xã hội công cụ hỗ trợ giúp xây dựng mạng xã hội ngày nhiều lên Vậy vấn đề ta không sử dụng công cụ đó để xây dựng mạng xã hội chia sẻ địa điểm? Có ưu nhược... trình API theo chuẩn RESTful cho mạng xã hội chia sẻ địa điểm” Cụ thể, công việc thực luận văn bao gồm việc nghiên cứu công nghệ cần thiết để thiết kế cài đặt thư viện lập trình API theo chuẩn RESTful, ... sức xây dựng chương trình Khi định xây dựng thư viện lập trình mạng xã hội chia sẻ địa điểm, mong muốn xây dựng ứng dụng chạy tảng, hệ điều hành khác nhau, kết nối với ứng dụng mạng xã hội