CHƯƠNG 1: TỔNG QUAN 1. Lý do chọn đề tài Hiện nay, với sự bùng nổ và phát triển mạnh mẽ của mạng lưới internet và công nghệ thông tin thì xuất hiện nhiều phần mềm,công cụ ứng dụng hỗ trợ giúp con người có thể làm việc một cách chuyên nghiệp, giải được nhiều bài toán đau đầu mà chỉ có máy móc mới thực hiện được một cách chính xác. Con người từ đó cũng có sự thích ứng và phụ thuộc nhiều vào công nghệ, thay đổi thói quen sinh hoạt để có thể tiếp cận và tận dụng được nên tin học hiện đại, giúp cho công việc trở nên thuận lợi, ít bất cập. Vì vậy nhóm em quyết định chọn đề tài này để cho mọi người có thể đặt vé xe đi chơi hay về quê một cách nhanh chóng, thuận lợi.
Mục tiêu Mục tiêu của đồ án là có thể áp dụng các kiến thức đã học để có thể xây dựng lên một nền tảng web giúp cho khách hàng có thể đặt vé một cách thuận lợi cũng như quản lý thông tin nhà xe của chủ xe một cách hợp lý. Công nghệ sử dụng Trong đề tài này nhóm em đã tìm hiểu và tìm ra và áp dụng những công nghệ sau: - Front-end: Ứng dụng web xây dựng bởi Angular. - Back-end: Nền tảng Java SpringBoot. - Database: sử dụng Mysql.
- Một số công nghệ khác như: HTML, CSS và JavaScript. 1 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2. Lịch sử Java được khởi đầu bởi James Gosling và đồng nghiệp, ban đầu được gọi là Oak.Java được phát hành vào năm 1994. Sau khi Oracle mua lại của công ty Sun Microsystems năm 2009 – 2010.
Oracle đã mô tả họ là “người quản lý công nghệ Java với cam kết không ngừng để bồi dưỡng một cộng đồng tham gia và minh bạch”. Giới thiệu về Java và SpringBoot Java là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP). Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy. Cú pháp Java được vay mượn nhiều từ C và C++ nhưng có cú pháp hướng đối tượng đơn giản và ít tính năng xử lý cấp thấp hơn.
Do đó việc viết một chương trình bằng Java dễ dàng hơn, đỡ tốn công sửa lỗi hơn. Như các bạn cũng đã biết Spring framework có cho ra đời 1 nền tảng làm web đó là Spring mvc. Tuy nhiên trong quá trình làm việc với spring mvc, nhà cung cấp họ thấy spring mvc cấu hình quá nhiều và có rất nhiều thư viện dùng thường xuyên tuy nhiên mỗi khi tạo project spring mvc mới chúng ta phải tải lại những thư viện đó vì vậy rất là mất công và mất thời gian. Từ những khó khăn đó, họ cũng nãy ra ý tưởng xây dựng 1 công nghệ để giảm thiểu cấu hình và tích hợp sẵn những thư viện hay dùng để mỗi khi tạo project mới không phải cấu hình nhiều và tải lại những thư viện dùng nhiều.
Từ đó spring boot được nhà phát triển spring framework cho ra đời. Spring boot thuộc nhóm module của spring framework, cung cấp tính năng RAD (Rapid Application Development) Spring boot được sử dụng để tạo ra ứng dụng độc lập dựa trên spring mà bạn có thể chạy ngay sau khi cấu hình lại spring. Lý do chọn Java Spring boot - Java được thiết kế để biên dịch code thành bytecode và bytecode sẽ chạy trên môi trường thực thi. Nên chương trình Java có thể chạy trên nhiều thiết bị, nhiều hệ điều hành khác nhau.
- Quá trình cấp phát, giải phóng bộ nhớ thực hiện tự động. Không sử dụng con trỏ hoặc phép toán con trỏ. 2 - Do Java phải biên dịch qua máy ảo Java (JVM) nên sẽ được bảo mật cao hơn khi mọi đối tượng phải qua JVM mới đến hệ điều hành. - Java hỗ trợ lập trình cho hệ thống phân tán như client-server, RMI… bằng Java Web, UDP, TCP.
- Tạo các ứng dụng độc lập có thể được bắt đầu bằng cách sử dụng java-jar - Nhúng trực tiếp Tomcat, Jetty hoặc Undertow. Không cần triển khai các tệp WAR. - Cung cấp starter POMs được đề xuất để đơn giản hóa cấu hình Maven. Tự động cấu hình Spring bất cứ khi nào có thể.
- Không tự sinh mã và không yêu cầu XML. Lịch sử AngularJS được phát triển từ năm 2009 bởi Misko Hevery cùng 1 người bạn khác là Adam Abrons. Nó được xem là một dự án riêng cho đến khi Misko Hevery tham gia vào dự án Google Feedback dưới tư cách lập trình viên bán thời gian. Lịch sử phát hành: Angular Version Date Description AngularJS 20/10/2010 Phiên bản đầu tiên Angular 2 14/09/2016 Version 2 Angular 4 23/03/2017 Version 4 Angular 5 11/11/2017 Version 5 Angular 6 03/05/2018 Version 6 Angular 7 18/10/2018 Version 7 Angular 8 25/08/2019 Version 8 Angular 9 13/11/2019 Version 9 Angular 10 24/06/2020 Version 10 Bảng 1:Lịch sử phiên bản Angular 2.
Giới thiệu về Angular 3 Hình 1: Angular - Angular là một javascript framework do google phát triển để xây dựng các Single Page Application (SPA) bằng JavaScript, HTML và TypeScript. - Code được viết bằng TypeScript biên dịch thành JavaScript và hiển thị tương tự trong trình duyệt. Component: Component là phần chính cho các ứng dụng Angular. Mỗi thành phần bao gồm: - HTML template khai báo những gì hiển thị trên trang.
- Typescript class xác định các hành vi. - CSS xác định cách thành phần được sử dụng trong template. Template: - Trong Angular, một template là một chunk của HTML. Bên trong template có thể sử dụng nhiều cú pháp đặt biệt để tận dụng nhiều tính năng của Angular.
- Mỗi Angular template trong ứng dụng là một section của HTML điều đó có thể bao gồm là một phần của page mà trình duyệt hiển thị. - Một Angular HTML template hiển thị chế độ xem hoặc giao diện người dùng trong browser giống như HTML thông thường nhưng có nhiều chức năng hơn. - Cho phép kiểm soát UX/UI bằng cách phối hợp dữ liệu giữa các lớp và template. Directives: Built-in attribute directives lắng nghe và sửa đổi hành vi của các elements, attributes, properties và components của HTML khác.
Nhiều NgModules như RouterModule và FormsModule xác định các thuộc tính của riêng chúng. Các attribute directives khác như là: 4 - NgClass – thêm và xóa bộ các lớp CSS. - NgStyles – thêm và xóa bộ các kiểu HTML. - NgModel – thêm ràng buộc dữ liệu hai chiều đến HTML form element.
Built-in structural directives có trách nhiệm về bố cục HTML. Định hình hoặc định hình lại DOM’s structure, thường bằng cách thêm, xóa và thao tác các host elements mà được gán vào.[2] Một số built-in structural directives: - NgIf – điều kiện tạo hoặc hủy bỏ subviews từ template. - NgFor – lặp lại các node duyệt các item trong list. - NgSwitch – một tập hợp các lệnh chuyển đổi giữa các chế độ xem thay thế.
Dependency injection: Dependency là những services hoặc objects mà một class cần để thực hiện những function của nó. Dependency injection là một design pattern trong một class yêu cầu dependency từ một nguồn bên ngoài tốt hơn là tự tạo. Ưu điểm - Khả năng ràng buộc dữ liệu ở hai chiều: code ở cả JavaScript và HTML đều được đồng bộ hóa, giúp tiết kiệm thời gian lập trình. - Mở rộng, phát triển tính năng của các file HTML nhờ sự hiện diện của các chỉ thị.
Người dùng chỉ cần thêm tiền tố ng- trước thuộc tính HTML để có thể kích hoạt chỉ thị. - Hỗ trợ thiết kế ứng dụng bằng các đoạn code ngắn gọn nhờ các template mà cấu trúc Code – Angular. - Hỗ trợ việc thử nghiệm, tích hợp. - Là công cụ của tương lai bởi hệ thống chức năng tuyệt vời.
Cơ sở của người dùng được phát triển liên tục, đi kèm với đó là sự cập nhật thường xuyên tài liệu chuyên sâu. - Tương thích với nhiều thiết bị, bao gồm cả di động lẫn để bàn. Nhược điểm - Bảo mật kém, có khả năng bảo mật thấp. Phải có tính năng bảo mật và xác thực phía server sẽ giúp ứng dụng trở nên an toàn hơn.
5 - Nếu người sử dụng ứng dụng của bạn vô hiệu hóa JavaScript thì họ chỉ nhìn được trang cơ bản, không thấy gì thêm. Tại sao lại sử dụng Angular - Là một frameworks nên Angular mang đến một kiến trúc rõ ràng. - Extensive binding giúp quá trình hiển thị dữ liệu, điều khiển DOM, thực thi các event một cách trơn tru và dễ dàng. - Hỗ trợ đầy đủ các tính năng điều hướng có thể truyền dữ liệu giữa các route.
Giới thiệu về MySql MySQL là chương trình dùng để quản lý hệ thống cơ sở dữ liệu (CSDL), trong đó CSDL 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 những thông tin mà mình lưu trữ. Có thể truy cập dữ liệu một cách thuận lợi, nhanh chóng. MySQL hỗ trợ đa số các ngôn như lập trình.
Tại sao cần sử dụng MySql - Khả năng mở rộng và tính linh hoạt. - Hiệu năng cao. - Tính sẵn sàng cao. - Hỗ trợ giao dịch mạnh mẽ.
- Điểm mạnh của Web và Data Warehouse. - Bảo vệ dữ liệu mạnh mẽ. - Phát triển ứng dụng toàn diện. - Quản lý dễ dàng.
- Mã nguồn mở tự do và hỗ trợ 24/7. - Chi phí sở hữu thấp nhất. 6 CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 3. Khảo sát hiện trạng Với cuộc sống phát triển về kinh tế lẫn chất lượng hiện nay, thì hiện trạng ồ ạt người dân địa phương ở các tỉnh vùng miền đổ xô vào các thành phố lớn để tìm kiếm công việc và công tác, và cứ mỗi khi có dịp lễ, tết, ngày nghỉ thì mọi người lại về quê để đoàn tụ gia đình, với những nhu cầu và mang số lượng lớn như vậy thì việc các nhà xe phải sử dụng các công cụ ứng dụng để giúp giải quyết nhu cầu của người dân, trang web đặt vé xe giúp cho khách hàng có thể an tâm, và có có thể đặt vé bất cứ nơi đâu có mạng và máy tính chứ không cần phải tới nhà xe hay gọi điện thoại nữa, và việc đặt vé mang tính chất tự chủ, tùy theo nhu cầu hay lựa chọn cho phù hợp cho mỗi khách hàng.
Việc ra đời của trang web đặt vé xe trực tuyến là việc vô cùng hữu ích. Trang web hoamaicar.com Trang web hoamaicar là một trang web cho phép người dùng, khách hàng đặt vé xe thông qua biểu mẫu. Hình 2: Giao diện hoamaicai.com Ưu điểm: - Đặt vé xe có thể đặt được nhiều khung giờ trải dài trong một ngày … - Thiết kế đơn giản, tóm lược. - Có tương đối các chức năng cơ bản.