CHƯƠNG I. Ngôn ngữ lập trình JavaScript 1. JavaScript là gì? JavaScript là một ngôn ngữ lập trình thông dịch được phát triển từ các ý niệm nguyên mẫu. Ngôn ngữ này được dùng rộng rãi cho các trang web (phía người dùng) cũng như phía máy chủ (với Nodejs).
Nó vốn được phát triển bởi Brendan Eich tại Hãng truyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó đổi tên thành LiveScript, và cuối cùng thành JavaScript. Giống Java, JavaScript có cú pháp tương tự C, nhưng nó gần với Self hơn Java.js là phần mở rộng thường được dùng cho tập tin mã nguồn JavaScript. Lịch sử phát triển Trước năm 1995, các trang web vẫn chỉ là các trang web tĩnh được tạo nên từ HTML, CSS. Ông lớn trong lĩnh vực công nghệ thời đó là Netscape đã sớm nhận ra được sự bất tiện này và bước đầu cho ra 1 “ngôn ngữ” đầu tiên chạy trên trình duyệt gọi là CGI script.
Tuy nhiên, đây vẫn chưa phải là một cuộc cách mạng vì CGI script bắt người dùng phải gửi 1 request đến server mỗi khi muốn thay đổi trang web và chờ response, điều này khá bất tiện và tốn thời gian. Chưa hài lòng với kết quả hiện tại, Netscape có 1 ý tưởng về 1 ngôn ngữ lập trình chuyên dụng trên browser và ngay lập tức bắn phát súng đầu tiên. Họ đã thuê 1 lập trình viên đầy tài năng là Brendan Eich để tạo ra 1 ngôn ngữ có tên là Mocha. Chỉ trong vòng 10 ngày ngắn ngủi, ông đã tạo ra 1 ngôn ngữ lập trình chuyên dụng trên browser có tên Livescript sau đó đổi tên thành Javascript.
Brendan đã chia sẻ trên 1 tờ báo rằng “Tôi không ngủ nhiều lắm”. Nhờ vào Javascript, lập trình viên bây giờ có thể thêm logic vào trong trang web của mình và biến nó từ “tĩnh” (static) sang “động” (dynamic), điều này có nghĩa là JS giúp lập trình viên tương tác trực tiếp với những thành phần quan trọng của trang web như DOM (Document Object Model) hay windown object (Global execution context của 1 trang web). Nếu như ngày xưa, với CGI script, bạn phải gửi cả 1 request chỉ để đổi màu 1 dòng chữ hay background Sinh viên thực hiện: Trần Y Tiến Người hướng dẫn: TS. Nguyễn Tấn Thuận 4 Xây dựng website tìm kiếm nhà trọ trên toàn quốc của trang web thì bây giờ, bạn chỉ cần JS là có thể tương tác trực tiếp và manipulate các thuộc tính của 1 trang web.
Đôi nét về ReactJs ReactJS là một thư viện JavaScript mã nguồn mở được phát triển bởi Facebook, ra mắt vào năm 2013 với mục đích để xây dựng giao diện người dùng. Nó được sử dụng rộng rãi để xây dựng các trang web SPA (Single Page Application) và các ứng dụng trên nền tảng di động. Nó rất dễ sử dụng và cho phép người dùng có thể tạo các component UI có thể tái sử dụng. Một trong những điểm hấp dẫn của React là thư viện này không chỉ hoạt động trên phía client, mà còn được render trên server và có thể kết nối với nhau.
React so sánh sự thay đổi giữa các giá trị của lần render này với lần render trước và cập nhật ít thay đổi nhất trên DOM. Những tính năng của ReactJs JSX: viết tắt của JavaScript extension, nó là React extension, giúp cho việc thay đổi cây DOM dễ dàng hơn bằng HTML-style code đơn giản. Nó là một trong những tính năng tốt và dễ sử dụng. Single-way data flow (Luồng dữ liệu một chiều): ReactJS không có những module chuyên dụng để xử lý data, vì vậy ReactJS chia nhỏ view thành các component nhỏ có mỗi quan hệ chặt chẽ với nhau.
Luồng truyền dữ liệu trong ReactJS là luồng dữ liệu một chiều từ cha xuống con. Việc ReactJS sử dụng one-way data flow có thể gây ra một chút khó khăn cho những người muốn tìm hiểu và ứng dụng vào trong các dự án. Tuy nhiên, cơ chế này sẽ phát huy được ưu điểm của mình khi cấu trúc cũng như chức năng của view trở nên phức tạp thì ReactJS sẽ phát huy được vai trò của mình. Components: Một trang web được xây dựng bằng ReactJS là một sự kết hợp nhiều component lại với nhau chứ không phải chung một Template như bình thường.
Các component cũng như các hàm JavaScript bình thường, giúp tạo ra các code dễ dàng bằng cách tách các logic ra thành các đoạn code độc lập có thể tái sử dụng. Chúng ta có thể sử dụng component dưới dạng function hoặc class, ngoài ra các component còn có state và props. Sinh viên thực hiện: Trần Y Tiến Người hướng dẫn: TS. Nguyễn Tấn Thuận 5 Xây dựng website tìm kiếm nhà trọ trên toàn quốc Virtual DOM: ReactJS tạo một thứ gọi là Virtual DOM (DOM ảo).
Đúng như tên gọi, nó là một copy của DOM thật trên trang web đó. ReactJS dùng những DOM ảo đó để tìm đúng những DOM thật cần được cập nhật khi có bất kỳ sự kiện nào làm các thành phần bên trong nó thay đổi. Javascript Expressions: Biểu thức JS có thể sử dụng trong file .js bằng cách sử dụng cặp dấu ngoặc nhọn “{}”. NodeJS là gì? NodeJS là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine, nó được sử dụng để xây dựng các ứng dụng web như các trang video clip, các forum và đặc biệt là trang mạng xã hội phạm vi hẹp.
NodeJS là một mã nguồn mở được sử dụng rộng bởi hàng ngàn lập trình viên trên toàn thế giới. NodeJS có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ Window cho tới Linux nên đó cũng là một lợi thế. NodeJS cung cấp các thư viện phong phú ở dạng Javascript Module khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở mức thấp nhất. Các đặc tính của NodeJS Không đồng bộ: Tất cả các API của NodeJS đều không đồng bộ (none- blocking), nó chủ yếu dựa trên nền của NodeJS Server và chờ đợi Server trả dữ liệu về.
Việc di chuyển máy chủ đến các API tiếp theo sau khi gọi và cơ chế thông báo các sự kiện của Node.js giúp máy chủ để có được một phản ứng từ các cuộc gọi API trước (Realtime). Chạy rất nhanh: NodeJ được xây dựng dựa vào nền tảng V8 Javascript Engine nên việc thực thi chương trình rất nhanh. Đơn luồng nhưng khả năng mở rộng cao: Node.js sử dụng một mô hình luồng duy nhất với sự kiện lặp. cơ chế tổ chức sự kiện giúp các máy chủ để đáp ứng một cách không ngăn chặn và làm cho máy chủ cao khả năng mở rộng như trái ngược với các máy chủ truyền thống mà tạo đề hạn chế để xử lý yêu cầu.js sử dụng một chương trình đơn luồng và các chương trình tương tự có thể cung cấp dịch vụ cho một số lượng lớn hơn nhiều so với yêu cầu máy chủ truyền thống như Apache HTTP Server.
Sinh viên thực hiện: Trần Y Tiến Người hướng dẫn: TS. Nguyễn Tấn Thuận 6 Xây dựng website tìm kiếm nhà trọ trên toàn quốc Không đệm: NodeJS không đệm bất kì một dữ liệu nào và các ứng dụng này chủ yếu là đầu ra dữ liệu. Tổng quan về hệ quản trị cơ sở dữ liệu MySQL Hệ quản trị cơ sở dữ liệu MySQL được hiểu như là chương trình dùng để quản lý hệ thống cơ sở dữ liệu, trong đó, cơ sở dữ liệu là một hệ thống lưu trữ thông tin được sắp xếp rõ ràng, phân lớp ngăn nắp. Nó giúp bạn có thể truy cập dữ liệu một cách thuận lợi và nhanh chóng nhất.
Vì hỗ trợ đa số các ngôn ngữ lập trình nên MySQL chính là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất trên thế giới. Hiện MySQL đang được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.
Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet. MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ. Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, MacOS, FreeBSD, NetBSD, Solaris, SunOS, … MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL). Sinh viên thực hiện: Trần Y Tiến Người hướng dẫn: TS.
Nguyễn Tấn Thuận 7 Xây dựng website tìm kiếm nhà trọ trên toàn quốc CHƯƠNG II. PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2. Khảo sát hệ thống 2. Khảo sát thực tế Mỗi năm có đến hàng trăm sinh viên đổ về các trường đại học, trong khi đó số lượng phòng ở ký túc xá của nhà trường có giới hạn.
Do đó nhu cầu thuê trọ của sinh viên tăng rất cao nhưng đa phần các bạn sinh viên thường đối mặt với trường hợp thuê phải những căn trọ kém chất lượng với mức giá cao. Vì vậy, em chọn đề tài này để nghiên cứu nhằm đưa ra những giải pháp tối ưu đáp ứng nhu cầu thuê phòng trọ của các bạn sinh viên Đại học Sư phạm Kỹ thuật Đà Nẵng nói riêng và cả nước nói chung. Khảo sát người dùng Nhu cầu tìm trọ ngày càng cao khiến cho tình trạng lừa đảo của các môi giới ngày càng tăng làm cho nhiều người mất rất nhiều thời gian, công sức tiền bạc cho việc tìm kiếm một chỗ ở phù hợp với nhu cầu bản thân. Đặc tả yêu cầu phần mềm 2.
Xác định các tác nhân Đề tài gồm ba tác nhân chính Khách vãng lai. Người thuê trọ (Renter) Chủ trọ (Host). Người quản lý (Admin). Các yêu cầu chức năng Khách vãng lai.
Đăng ký thành viên, đăng nhập hệ thống. Xem danh sách các nhà trọ, chi tiết phòng trọ. Lọc phòng theo khoảng giá. Lọc phòng theo khu vực.
Lọc theo diện tích. Lọc theo thời gian đăng tin. Renter (gồm các chức năng của khách vãng lai) Sinh viên thực hiện: Trần Y Tiến Người hướng dẫn: TS. Nguyễn Tấn Thuận 8 Xây dựng website tìm kiếm nhà trọ trên toàn quốc Xem đường đi ngắn nhất từ vị trí của mình đến phòng trọ.
Nhắn tin với Host Quản lý thông tin cá nhân. Theo dõi hủy theo dõi host. Nhận thông báo từ những người theo dõi.