Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.67 MB, 58 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>BỘ GIÁO DỤC VÀ ĐÀO TẠOHọc viện an ninh nhân dân</b>
<b>BÁO CÁO BÀI TẬP LỚN</b>
<b>MÔN: LẬP TRÌNH ỨNG DỤNG DI ĐỘNGĐề tài: Ứng dụng tìm kiếm việc làm </b>
<b> Giảng viên hướng dẫn : Bùi Hữu Phúc</b>
<b>Lăng Việt Hưng </b>
<b>Đặng Nguyễn Công Hiếu</b>
<b>BỘ GIÁO DỤC VÀ ĐÀO TẠOHọc viện an ninh nhân dân</b>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><b>BÁO CÁO BÀI TẬP LỚN</b>
<b>MƠN: LẬP TRÌNH ỨNG DỤNG DI ĐỘNGĐề tài: Ứng dụng tìm kiếm việc làm </b>
<b> Giảng viên hướng dẫn : Bùi Hữu Phúc</b>
<b>Lăng Việt Hưng </b>
<b>Đặng Nguyễn Công Hiếu</b>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><b>LỜI CẢM ƠN</b>
Đầu tiên, chúng em xin gửi lời cảm ơn chân thành đến Học viện an ninh nhân dân và Khoa An ninh thông tin đã đưa môn học Lập trình trên thiết bị di động vào trương trình giảng dạy. Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến giảng viên bộ môn –Thầy Bùi Hữu Phúc đã dạy dỗ, truyền đạt những kiến thức quý báu cho chúng em trong suốt thời gian học tập vừa qua. Trong thời gian tham gia lớp học học Lập trình trên thiết bị di động của thầy, chúng em đã có thêm cho mình nhiều kiến thức bổ ích, tinh thần học tập hiệu quả, nghiêm túc. Đây chắc chắn sẽ là những kiến thức quý báu, là hành trang để em có thể vững bước sau này. Mơn học Lập trình trên thiết bị di động là môn học thú vị, vơ cùng bổ ích và có tính thực tế cao. Đảm bảo cung cấp đủ kiến thức, gắn liền với nhu cầu thực tiễn của Học viên. Tuy nhiên, do vốn kiến thức còn nhiều hạn chế và khả năng tiếp thu thực tế còn nhiều bỡ ngỡ. Mặc dù chúng em đã cố gắng hết sức nhưng chắc chắn bài tập lớn khó có thể tránh khỏi những thiếu sót và nhiều chỗ cịn chưa chính xác, kính mong thầy xem xét và góp ý để bài tập lớn của chúng em được hoàn thiện hơn. Chúng em xin chân thành cảm ơn!
Kính chúc thầy sức khỏe, hạnh phúc thành công trên con đường sự nghiệp giảng dạy.
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b>MỤC LỤC</b>
<small>MỤC LỤC...2</small>
<small>DANH MỤC CÁC BẢNG...4</small>
<small>CHƯƠNG 1. MỞ ĐẦU...6</small>
<b><small>1. Tính cấp thiết của đề tài...6</small></b>
<b><small>2. Tình hình nghiên cứu liên quan đến đề tài...6</small></b>
<small>2.3.Tại sao chọn Kotlin?...17</small>
<b><small>3. Hệ quản trị cơ sở dữ liệu (Firebase)...18</small></b>
<small>3.1.Khái niệm...18</small>
<small>3.2.Ưu điểm nổi bật của Firebase...19</small>
<small>3.3.Tại sao chọn Firebase?...20</small>
<b><small>4. Mơi trường lập trình Android Studio...21</small></b>
<small>4.1.Khái niệm:...21</small>
<small>4.2.Ưu điểm...22</small>
<small>4.3.Lý do sử dụng Androi Studio...22</small>
<small>CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ...24</small>
<b><small>1. Actors Và Use Case...24</small></b>
<small>1.1. Các Use Case Diagram...24</small>
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5"><small>2.3.UC03: Cập nhật công ty...34</small>
<small>2.4.UC04: Đăng tin tuyển dụng...37</small>
<small>2.5. UC05: Thông báo...40</small>
<small>2.6.UC06: Cập nhật thông tin cá nhân...43</small>
<small>2.7.UC07: Ứng tuyển việc làm...47</small>
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><b>CHƯƠNG 1. MỞ ĐẦU1.Tính cấp thiết của đề tài</b>
Trong thời đại công nghệ thông tin hiện nay, việc tìm kiếm việc làm trở nên đơn giản và thuận tiện hơn bao giờ hết. Với ứng dụng tìm kiếm việc làm, bạn có thể tìm kiếm và ứng tuyển cho các cơng việc một cách nhanh chóng và dễ dàng hơn bao giờ hết.
Ứng dụng tuyển dụng việc làm là một công cụ hữu ích cho các ứng viên có nhu cầu tìm kiếm việc làm và nhà tuyển dụng cần tuyển nhân sự. Với đầy đủ các chức năng cần thiết, ứng dụng này giúp cho các ứng viên có thể tìm kiếm thơng tin về các vị trí việc làm phù hợp với kỹ năng, kinh nghiệm của mình và nộp hồ sơ ứng tuyển một cách dễ dàng. Đồng thời, nhà tuyển dụng cũng có thể đăng thông tin tuyển dụng và sàng lọc hồ sơ ứng viên thơng qua ứng dụng này. Ngồi ra, ứng dụng cịn cung cấp các tính năng khác như tạo và lưu trữ hồ sơ ứng viên, cập nhật thông tin tuyển dụng mới nhất, tư vấn nghề nghiệp và phát triển kỹ năng cho ứng viên. Tất cả những tính năng này đều giúp cho quá trình tìm kiếm việc làm của các ứng viên và nhà tuyển dụng trở nên dễ dàng và thuận tiện hơn bao giờ hết.
<b>2.Tình hình nghiên cứu liên quan đến đề tài</b>
Tình hình nghiên cứu liên quan đến ứng dụng tìm kiếm việc làm trên thế giới và trong nước đang được quan tâm rất nhiều trong những năm gần đây. Với sự phát triển của công nghệ thơng tin, các ứng dụng tìm kiếm việc làm trực tuyến đã trở thành một công cụ quan trọng để giúp người lao động tìm kiếm việc làm một cách hiệu quả và nhanh chóng.
Trên thế giới, nghiên cứu đã chỉ ra rằng sự phát triển của các ứng dụng tìm kiếm việc làm trực tuyến đã góp phần giảm thiểu tình trạng thất nghiệp và tăng cường khả năng kết nối giữa người lao động và nhà tuyển dụng. Ngoài ra, các nghiên cứu cũng cho thấy rằng các ứng dụng tìm kiếm việc làm trực tuyến cũng giúp tăng tính minh bạch và cơng bằng trong q trình tuyển dụng. Một số ứng dụng nổi tiếng trên thế giới như: ứng dụng LinkedIn, ứng dụng MyWork, ứng dụng Indeed
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">Trong nước, mặc dù các ứng dụng tìm kiếm việc làm trực tuyến cũng đang được sử dụng ngày càng phổ biến, tuy nhiên, nghiên cứu vẫn cho thấy rằng tình trạng thất nghiệp vẫn cịn tồn tại và khả năng kết nối giữa người lao động và nhà tuyển dụng vẫn chưa được tối ưu. Ngoài ra, một số nghiên cứu cũng cho thấy rằng các ứng dụng tìm kiếm việc làm trực tuyến cần được cải tiến để đáp ứng được nhu cầu của người lao động và nhà tuyển dụng tốt hơn. Sau đây là một số ứng dụng được nhiều người tin dùng để tìm việc tại Việt Nam như Vietnamworks, Viec.co, Jobstreet VN, Muaban.net…
Do đó, việc nghiên cứu và phát triển các ứng dụng tìm kiếm việc làm trực tuyến là vô cùng cần thiết trong bối cảnh hiện nay, để giúp tối ưu hóa quá trình tuyển dụng, giảm thiểu tình trạng thất nghiệp và tăng cường khả năng kết nối giữa người lao động và nhà tuyển dụng, đóng góp tích cực vào sự phát triển kinh tế xã hội của đất nước.
<b>3.Mục đích</b>
Giúp người dùng có thể tìm kiếm việc làm một cách nhanh chóng và dễ dàng thông qua một nền tảng trực tuyến. Ứng dụng sẽ cung cấp thông tin về các công việc đang có sẵn từ các doanh nghiệp, tổ chức và cơng ty khác nhau trong nhiều lĩnh vực khác nhau, giúp người dùng dễ dàng tìm kiếm và ứng tuyển vào các vị trí việc làm phù hợp với nhu cầu và kỹ năng của mình.
Ngồi ra, ứng dụng cũng sẽ cung cấp các cơng cụ và tính năng hỗ trợ người dùng trong quá trình tìm kiếm việc làm, bao gồm việc tạo hồ sơ, tìm kiếm và lưu lại các cơng việc u thích, cập nhật thông tin về các sự kiện tuyển dụng và tư vấn về cách tìm kiếm việc làm hiệu quả. Ứng dụng cũng sẽ kết nối các nhà tuyển dụng với người dùng thông qua các công cụ liên lạc trực tuyến, giúp cho việc tìm kiếm việc làm trở nên thuận tiện hơn và giảm thiểu sự cố gắng và thời gian tìm kiếm việc làm của người dùng.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><b>4.Nhiệm vụ</b>
Dự án này là phát triển một ứng dụng tuyển dụng việc làm cho cả người tìm việc và nhà tuyển dụng. Ứng dụng sẽ được phát triển trên nền tảng Android Studio và sử dụng ngơn ngữ Kotlin để lập trình. Để lưu trữ dữ liệu, ứng dụng sẽ sử dụng cơ sở dữ liệu Firebase của Google.
Các chức năng của ứng dụng bao gồm:
Cho phép người dùng đăng nhập và tạo hồ sơ cá nhân của mình để tìm kiếm việc
Cung cấp thông tin chi tiết về các công việc và các công ty đang tuyển dụng để giúp người dùng chọn lựa việc làm phù hợp với kỹ năng và mong muốn của mình. Cung cấp hệ thống gửi thơng báo tới người dùng khi có việc làm phù hợp với hồ sơ của họ được đăng tải trên ứng dụng.
Cho phép nhà tuyển dụng đăng tải thông tin về các công việc đang tuyển dụng và quản lý các ứng viên đã nộp đơn.
Cung cấp tính năng chat để nhà tuyển dụng và ứng viên có thể trao đổi thơng tin về cơng việc và quá trình ứng tuyển.
Mục tiêu của dự án là phát triển một ứng dụng tuyển dụng việc làm hiệu quả, giúp giải quyết vấn đề thất nghiệp và giúp nhà tuyển dụng tìm kiếm nhân sự phù hợp. Ứng dụng sẽ được thiết kế để phục vụ cho mọi đối tượng, từ sinh viên đến nhân viên văn phịng và những người có nhu cầu tìm kiếm việc làm.
Tìm hiểu và phát triển ứng dụng tìm việc làm. Áp dụng các kiến thức về lập trình trên Android Studio và sử dụng cơ sở dữ liệu Firebase để xây dựng một ứng dụng
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">tìm việc làm chuyên nghiệp và dễ sử dụng. Áp dụng các kỹ năng phân tích thiết kế hệ thống thông tin để đảm bảo rằng ứng dụng có khả năng cung cấp các thơng tin về cơng việc và tìm kiếm việc làm một cách nhanh chóng và hiệu quả cho người dùng.
<b>5.Cấu Trúc</b>
Cấu trúc đề tài gồm có 4 phần lần lượt là: Mở đầu, Cơ sở lý thuyết, Phân tích thiết kế, Kết luận và kiến nghị.
Mở đầu: Ở phần mở đầu chúng em giới thiệu và trình bày sơ lược về lý do cũng như mục tiêu để hình thành và thực hiện đề tài cũng như các chức năng tiêu biểu cho người dùng.
Cơ sở lý thuyết: Ở đây chúng xem trình bày về các khái niệm và phương pháp giải quyết vấn đề được dùng trong ứng dụng cũng như các công nghệ, hệ thống và các bên được liên kết với ứng dụng được chúng em sự dụng.
Phân tích thiết kế: Phần này chúng nói về các UML như: Use case, ERD, Class Diagram chung của đề tài và các Activity Diagram, Sequence Diagram của từng chức năng của ứng dụng.
Kết luận và kiến nghị: Chúng em nêu những kết luận chung về quá trình thực hiện đề tài, khẳng định những kết quả đạt được, cũng như hạn chế đang mắc phải và hướng phát triển của ứng dụng trong tương lai.
<b>6.Đối tượng và phạm vi nghiên cứu</b>
6.1 Đối tượng sử dụng
Ứng dụng tìm kiếm việc làm phục vụ cho các đối tượng:
Người tìm việc: Đây là đối tượng chính của ứng dụng tìm kiếm việc làm. Các ứng viên có thể sử dụng để tìm kiếm các công việc phù hợp với kỹ năng và kinh
nghiệm của mình.
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">Nhà tuyển dụng: Ứng dụng tìm kiếm việc làm cũng có thể hỗ trợ các nhà tuyển dụng trong việc tìm kiếm ứng viên phù hợp cho các vị trí cần tuyển dụng. Các nhà tuyển dụng có thể đăng thơng tin tuyển dụng lên để thu hút các ứng viên.
Các trung tâm đào tạo và tổ chức giáo dục: Ứng dụng tìm kiếm việc làm cũng có thể hỗ trợ các trung tâm đào tạo và tổ chức giáo dục trong việc cung cấp thông tin về các công việc phù hợp với chương trình đào tạo của họ.
Các chuyên gia tư vấn nghề nghiệp: Ứng dụng tìm kiếm việc làm cũng có thể hỗ trợ các chuyên gia tư vấn nghề nghiệp trong việc cung cấp thông tin về các công việc phù hợp với khả năng và sở trường của các ứng viên.
6.2 Phạm vi nghiên cứu
Nghiên cứu về mục tiêu của ứng dụng tìm kiếm việc làm, bao gồm các chức năng cơ bản như tìm kiếm việc làm theo từ khóa, địa điểm, ngành nghề, kinh nghiệm, mức lương, thông tin nhà tuyển dụng và các tính năng nâng cao khác.
Đối tượng nghiên cứu chủ yếu là những người tìm kiếm việc làm bao gồm các nhóm người dùng như sinh viên, người đang tìm việc, người muốn thay đổi công việc, người lao động tự do, nhà tuyển dụng và các nhóm khác.
Nghiên cứu về các yếu tố ảnh hưởng đến sự lựa chọn ứng dụng tìm kiếm việc làm bao gồm tính tiện dụng, tính linh hoạt, tính bảo mật, tính thẩm mỹ, độ tin cậy và các yếu tố khác.
Đánh giá hiệu quả của ứng dụng tìm kiếm việc làm dựa trên các chỉ số như số lượng người dùng, số lượng công việc đăng tuyển, tỉ lệ thành công của việc tìm kiếm việc làm, đánh giá từ người dùng và các chỉ số khác.
Nghiên cứu về các xu hướng và thách thức của thị trường tìm kiếm việc làm bao gồm các công nghệ mới, thay đổi về hình thức tuyển dụng, cạnh tranh giữa các ứng dụng tìm kiếm việc làm và các thách thức khác.
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13"><b>7.Ý nghĩa và vai trò</b>
7.1. Ý nghĩa
Ứng dụng tìm kiếm việc làm có ý nghĩa rất quan trọng trong việc giúp những người đang tìm kiếm việc làm tìm được cơng việc phù hợp với nhu cầu, kỹ năng và mục tiêu của mình. Đặc biệt, với sự phát triển của công nghệ và ứng dụng thơng minh, các app tìm kiếm việc làm trở nên ngày càng tiện lợi và đa dạng, giúp cho người dùng có thể tìm kiếm việc làm một cách nhanh chóng, tiện lợi và hiệu quả.
Cụ thể, app tìm kiếm việc làm cho phép người dùng:
Tìm kiếm cơng việc theo từ khóa, địa điểm, lĩnh vực, mức lương, kinh nghiệm, trình độ học vấn và các tiêu chí khác.
Xem thơng tin chi tiết về cơng việc, bao gồm mô tả công việc, yêu cầu công việc, quyền lợi và chế độ phúc lợi của nhà tuyển dụng.
Nộp đơn xin việc trực tuyến thông qua app, gửi CV và thư xin việc một cách nhanh chóng và thuận tiện.
Nhận thơng báo về các cơng việc mới nhất, đáp ứng với các tiêu chí tìm kiếm của người dùng.
Theo dõi tiến trình xử lý hồ sơ xin việc, tương tác với nhà tuyển dụng qua app để cập nhật thông tin về kết quả phỏng vấn và lịch hẹn phỏng vấn.
Với những tính năng trên, app tìm kiếm việc làm giúp người dùng tiết kiệm thời gian và cơng sức trong việc tìm kiếm việc làm, đồng thời giúp cho nhà tuyển dụng có thể tiếp cận với một lượng lớn ứng viên có kỹ năng phù hợp với u cầu cơng việc của họ.
7.2. Vai trị
Ứng dụng tìm kiếm việc làm đóng vai trị quan trọng trong việc giúp những người đang tìm kiếm việc làm tìm được các cơ hội việc làm phù hợp với nhu cầu của họ. Các vai trị chính của ứng dụng tìm kiếm việc làm bao gồm:
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">Cung cấp thơng tin về việc làm: Ứng dụng tìm kiếm việc làm giúp người dùng có thể tìm thấy thơng tin về các công việc đang tuyển dụng, thông tin về nhà tuyển dụng và các yêu cầu tuyển dụng.
Tối ưu hóa q trình tìm kiếm việc làm: Ứng dụng tìm kiếm việc làm giúp người dùng tìm kiếm việc làm nhanh chóng và hiệu quả hơn bằng cách sử dụng các cơng cụ tìm kiếm thơng minh và lọc các kết quả tìm kiếm theo nhu cầu và yêu cầu của người dùng.
Giúp người dùng nộp đơn xin việc: Ứng dụng tìm kiếm việc làm cung cấp các tính năng nộp đơn xin việc trực tuyến, giúp người dùng tiết kiệm thời gian và tiện lợi hơn khi nộp đơn xin việc.
Cung cấp các cơng cụ hỗ trợ cho tìm việc: Ứng dụng tìm kiếm việc làm cung cấp các cơng cụ hỗ trợ như CV builder, kỹ năng tìm kiếm việc làm và các tài nguyên khác để giúp người dùng tìm kiếm việc làm hiệu quả hơn.
Cập nhật thơng tin tuyển dụng mới nhất: Ứng dụng tìm kiếm việc làm cập nhật thông tin về các công việc mới nhất và các thông tin về ngành nghề và tiến trình tuyển dụng, giúp người dùng cập nhật những thơng tin quan trọng để tìm kiếm việc làm hiệu quả hơn.
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15"><b>CHƯƠNG 2. CƠ SỞ LÝ THUYẾT1.Hệ điều hành Android</b>
1.1.Khái niệm:
Android là một hệ điều hành dựa trên nền tảng Linux, được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thơng minh và máy tính bảng. Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính từ Google và sau này được chính Google mua lại vào năm 2005. Chính mã nguồn mở của Android cùng với tính khơng ràng buộc nhiều đã cho phép các nhà phát triển thiết bị di động và các lập trình viên được điều chỉnh và phân phối Android một cách tự do. Ngồi ra, Android cịn có một cộng đồng lập trình viên đơng đảo chuyên viết các ứng dụng để mở rộng chức năng của thiết bị. Nhờ yếu tố mở, dễ dàng tinh chỉnh cùng sự phát triển nhanh chóng đã khiến hệ điều hành này dần trở nên phổ biến, kết quả là mặc dù được thiết kế để chạy trên điện thoại và máy tính bảng nhưng giờ đây Android đã xuất hiện trên các smart TV, máy chơi game và một số thiết bị điện tử khác.
Android là hệ điều hành mã nguồn mở cùng với việc phát hành mã nguồn mở theo giấy phép Apache của Google. Apache là là một giấy phép khơng có nhiều ràng buộc cùng với mã nguồn mở đã cho phép các nhà phát triển thiết bị di,các nhà mạng và các lập trình viên nhanh chóng tiếp cận điểu chỉnh và phân phối Android một cách tự do. Một số lượng lớn lập trình viên chuyên viết các ứng dụng mở rộng chức năng của các thiết bị, bằng ngơn ngữ lập trình Java có sửa đổi. Android liên tục được phát triển, mỗi bản cập nhật từ Google là mỗi lần Android được tối ưu hóa hoạt động tốt hơn, nhanh và ổn định hơn, hỗ trợ thêm công nghệ mới.
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">1.2.Ưu điểm:
Số lượng người dùng: Android là hệ điều hành di động phổ biến nhất trên thế giới, với hơn 2,5 tỷ thiết bị được sử dụng. Điều này đảm bảo rằng ứng dụng của bạn sẽ có khả năng tiếp cận được với một lượng lớn người dùng.
Tính linh hoạt: Android cung cấp cho nhà phát triển nhiều lựa chọn để xây dựng ứng dụng, từ đó tạo ra sự linh hoạt cao trong phát triển ứng dụng.
Người lập trình có thể sử dụng nhiều ngơn ngữ lập trình khác nhau như Java, Kotlin, C++, Python, và Rust để phát triển ứng dụng trên Android.
Dễ dàng phát triển và triển khai ứng dụng: Android Studio là mơi trường phát triển tích hợp (IDE) cho phép nhà phát triển xây dựng và triển khai ứng dụng trên nền tảng Android một cách dễ dàng và thuận tiện.
Thị trường ứng dụng đa dạng: Google Play Store là kho ứng dụng lớn nhất trên thế giới, cung cấp cho người dùng các ứng dụng từ nhiều lĩnh vực khác nhau. Điều này giúp cho nhà phát triển có thể tiếp cận với nhiều người dùng khác nhau và tăng khả năng tìm kiếm của ứng dụng.
Tính bảo mật cao: Android được thiết kế để đảm bảo tính bảo mật cao, với nhiều tính năng bảo mật như phát hiện mã độc, mã hóa dữ liệu, xác thực người dùng và kiểm soát quyền truy cập ứng dụng.
Hỗ trợ đa thiết bị: Android có thể hoạt động trên nhiều loại thiết bị khác nhau, từ điện thoại thông minh đến máy tính bảng và các thiết bị thơng minh khác. Điều này giúp cho ứng dụng có thể chạy trên nhiều loại thiết bị khác nhau, tăng khả năng tiếp cận với người dùng.
1.3.Tại sao chọn lập trình trên hệ điều hành Androi trên di động mà không phải trên Webside.
Chúng em đã lựa chọn hệ điều hành Android để xây dựng ứng dụng tìm kiếm việc làm với những lý do sau đây:
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">Sự phổ biến và đa dạng của hệ điều hành Android: Android là hệ điều hành phổ biến nhất trên thị trường điện thoại di động với một số lượng lớn người dùng. Việc lựa chọn Android cho ứng dụng tìm kiếm việc làm đảm bảo rằng chúng em có thể tiếp cận và phục vụ một đối tượng người dùng rộng lớn.
Mở và linh hoạt: Hệ điều hành Android là một nền tảng mở, cho phép chúng em tùy chỉnh và phát triển ứng dụng theo ý muốn. Chúng em có thể tận dụng các tính năng của Android như quyền truy cập vào các thành phần hệ thống, tương tác với các ứng dụng khác và tích hợp các dịch vụ bên thứ ba để cung cấp trải nghiệm tốt nhất cho người dùng.
Dễ dàng triển khai và cập nhật: Xây dựng ứng dụng trên nền tảng Android cho phép chúng em triển khai và cập nhật nhanh chóng. Google Play Store cung cấp một cơ sở hạ tầng mạnh mẽ để phân phối và cập nhật ứng dụng Android. Chúng em có thể đẩy các bản cập nhật và phiên bản mới của ứng dụng một cách dễ dàng và nhanh chóng đến người dùng.
Tích hợp với các cơng nghệ và dịch vụ Google: Android có tích hợp sâu sắc với các dịch vụ và công nghệ của Google như Google Maps, Firebase, Google Sign-In và nhiều hơn nữa. Điều này cho phép chúng em tận dụng các công nghệ và dịch vụ mạnh mẽ của Google để cung cấp những tính năng và trải nghiệm tốt nhất cho người dùng.
Mặc dù hệ điều hành iOS và ứng dụng web có ưu điểm riêng của họ, tuy nhiên, lựa chọn Android cho ứng dụng tìm kiếm việc làm là phù hợp với mục tiêu và đối tượng người dùng của chúng em.
<b>2.Ngơn ngữ lập trình (Kotlin)</b>
2.1.Khái niệm:
Kotlin là một ngơn ngữ lập trình hiện đại, đa nền tảng, hướng đối tượng, được phát triển bởi JetBrains. Kotlin được thiết kế để chạy trên Java Virtual
Machine (JVM) và cũng có thể biên dịch thành mã máy để chạy trên các thiết bị di động, máy tính và các thiết bị IoT khác. Kotlin được coi là một ngôn ngữ lập trình thay thế cho Java trong việc phát triển ứng dụng Android, vì nó có nhiều tính năng
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">tiện ích và dễ đọc hơn Java. Kotlin cũng cung cấp tính năng an tồn hơn trong việc phát hiện các lỗi khi lập trình.
2.2.Ưu điểm:
Kotlin có thể khắc phục được các yếu điểm của Java như:
code ít giúp lập trình viên dễ đọc, dễ viết và dễ làm việc cùng. Những người mới bắt đầu đều có thể tiếp thu dễ dàng các kiến thức đặc thù của loại ngôn ngữ này. Việc tối giản được số lượng code đã giúp cho Kotlin mang lại những trải nghiệm thú vị hơn cho người dùng so với các loại ngôn ngữ khác như Java.
Kotlin không bị lỗi NullPointerException: Với những lập trình viên thì bạn có thể thấy rõ NullPointerException là 1 trong những lỗi thường xuyên xuất hiện trong các dự án được viết bằng ngơn ngữ lập trình Java. Lỗi NullPointerException sẽ xuất hiện ngay khi bạn gán giá trị null đến với một đối tượng nào đó, tuy nhiên khi truy xuất thì đối tượng này lại bị xuất hiện lỗi. Khi chạy trên Android, nếu như bạn quên cập nhật đối tượng cho Java thì bạn sẽ nhận được log crash (dừng đột ngột) đã được báo cáo về hệ thống. Những lỗi NullPointerException.Kotlin đều được thiết kế để có thể giảm thiểu cũng như loại bỏ được hầu hết các nguồn tham chiếu Null dựa vào cơ chế null-safety. Chính vì vậy, theo các chun gia thì việc sử dụng ngơn ngữ lập trình Kotlin sẽ trở nên an toàn hơn Java rất nhiều. Hầu hết các lập trình viên đều sẽ rất chú trọng đến những lỗi xảy ra ở code, vậy nên những code các ngắn thì càng ít lỗi hơn. Chính vì thế, nên code trong Kotlin đều được thiết kế ngắn gọn hơn so với code được viết bằng Java mà kết quả kiểm tra đều cho ra giống nhau. Để dễ hiểu hơn thì bạn có thể hình dung như sau: Nếu bạn định nghĩa một class trong Java cần phải sử dụng 7 đến 8 dịng thì khi dùng Kotlin dịng code đó sẽ được giảm xuống cịn 2 đến 3 dịng hoặc thậm chí là 1 dịng mà kết quả sau cùng cho ra vẫn tương tự nhau.
Kotlin có khả năng tương tác cao: Kotlin được xem là một trong những ngơn ngữ lập trình có thể chạy trên máy ảo tương tự như Java. Tuy nhiên, khả năng tương tác cao giúp cho Kotlin có thể tương thích 100% với Java nên 1 dự án có thể sử dụng
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">cả Java và Kotlin. Hiện nay, các developer Android đều có khả năng sử dụng Java class library ngay khi dùng Kotlin để có thể thực hiện viết code và ngược lại. Nhờ vậy, bạn có thể sử dụng ngơn ngữ này để có thể phát triển cũng như mở rộng cho việc phát triển các dự án Java bằng cũ mà khơng cần phải bắt lại. có thể sử dụng Java class library khi dùng Kotlin để viết code và ngược lại. Điều này có nghĩa , bạn có thể sử dụng Kotlin để bạn mở rộng và phát triển các Với những lập trình viên đã quen làm việc với Java khi chuyển sang hợp tác cùng Kotlin thì sẽ khơng cịn cảm thấy bỡ ngỡ hay xa lạ bởi cú pháp của nó bây giờ đều rất quen thuộc. Nhờ vậy,k các kỹ năng bạn đã có trong việc code Java đều có thể áp dụng được với Kotlin.
Kotlin được hỗ trợ ưu tiên trong Android Studio và IDE: Hiện nay, các developer Android đều có thể dễ dàng tận dụng các IDE được tích hợp từ Android Studio 3.0. Những phiên bản Android Studio thấp hơn cần phải thực hiện cài thêm plugin và nó khiến cho cấu hình Kotlin trong dự án trở nên đơn giản hơn. Hiện tại, các IDE hỗ trợ cho Java đều sẽ có thể hỗ trợ cho cả Kotlin. Chính vì thế, hầu hết các
Developer đều có thể tận dụng IDE trong số đó cả cả Android Studio. Kotlin cùng với tool làm việc thân thiện sẽ hỗ trợ cho bạn lựa chọn Java IDE làm việc hoặc thực hiện làm việc cùng với command line.
2.3.Tại sao chọn Kotlin?
Việc chọn ngôn ngữ Kotlin để viết ứng dụng tìm kiếm việc làm có nhiều lợi ích.
Kotlin là một ngơn ngữ lập trình mới, hiện đại và linh hoạt được thiết kế để hoạt động tốt trên nền tảng Android. Kotlin hỗ trợ rất nhiều tính năng mới, giúp cho việc viết code trở nên dễ dàng và thuận tiện hơn.
Kotlin là ngơn ngữ chính thức được Google lựa chọn để hỗ trợ cho Android, vì vậy nó được tích hợp sẵn trong Android Studio - mơi trường phát triển tích hợp cho Android. Việc sử dụng Kotlin cho ứng dụng tìm kiếm việc làm sẽ giúp cho việc phát triển và bảo trì ứng dụng trở nên đơn giản hơn.
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">Kotlin có khả năng tương thích ngược với Java, có nghĩa là code được viết bằng Java có thể được chuyển đổi sang Kotlin và ngược lại mà không cần phải thực hiện nhiều thay đổi. Điều này giúp cho việc chuyển đổi từ Java sang Kotlin được thực hiện dễ dàng và khơng gây khó khăn cho các lập trình viên.
Kotlin có tính năng an tồn hơn so với Java về mặt kiểm soát kiểu dữ liệu. Với Kotlin, các lập trình viên có thể tránh được các lỗi phát sinh do kiểu dữ liệu, giúp cho ứng dụng tìm kiếm việc làm được phát triển với chất lượng cao hơn.
<b>3.Hệ quản trị cơ sở dữ liệu (Firebase)</b>
3.1.Khái niệm
Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) là một phần mềm được sử dụng để quản lý và tổ chức dữ liệu trong một hệ thống máy tính. Nó cung cấp các cơng cụ cho phép người dùng tạo, sửa đổi, xóa và truy xuất dữ liệu từ cơ sở dữ liệu. Mục đích chính của DBMS là đảm bảo tính tồn vẹn, an ninh, hiệu quả và linh hoạt của dữ liệu trong toàn bộ hệ thống. Tất cả các hệ quản trị cơ sở dữ liệu (DBMS) đều có cùng một chức năng, đó là quản lý và lưu trữ dữ liệu. Tuy nhiên, mỗi hệ quản trị cơ sở dữ liệu đều có những đặc điểm, ưu điểm và hạn chế riêng, phù hợp với một số ứng dụng cụ thể. Nhóm chúng em đã chọn Firebase cho việc lưu trữ dữ liệu và xây dựng ứng dụng tìm kiếm việc làm. Firebase là một nền tảng đám mây do Google phát triển, cung cấp nhiều dịch vụ cho phát triển ứng dụng web và di động. Trong đó, Firebase cũng cung cấp một cơ sở dữ liệu thời gian thực (real-time database) được lưu trữ trên đám mây, cho phép các ứng dụng sử dụng nó để lưu trữ và đồng bộ dữ liệu trực tiếp giữa các thiết bị và người dùng. Cơ sở dữ liệu Firebase là một cơ sở dữ liệu NoSQL, sử dụng mơ hình dữ liệu JSON để lưu trữ và truy xuất dữ liệu. Firebase cũng cung cấp các tính năng bảo mật và quản lý truy cập cho cơ sở dữ liệu, giúp người dùng dễ dàng quản lý và bảo vệ dữ liệu của mình. Các chức năng chính của Firebase bao gồm:
Cơ sở dữ liệu thời gian thực (Realtime Database): Firebase cung cấp cơ sở dữ liệu thời gian thực cho phép lưu trữ và đồng bộ dữ liệu giữa các thiết bị người dùng.
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">Lưu trữ (Storage): Firebase cung cấp một hệ thống lưu trữ đám mây cho phép lưu trữ và truy xuất các tệp tin, hình ảnh và video.
Xác thực (Authentication): Firebase cung cấp tính năng xác thực người dùng để đăng nhập và bảo vệ các ứng dụng trước các cuộc tấn công.
Thống kê (Analytics): Firebase cung cấp các dịch vụ thống kê cho phép theo dõi sự tương tác của người dùng với ứng dụng, giúp cho nhà phát triển hiểu rõ hơn về người dùng và cải thiện trải nghiệm người dùng.
Push Notification: Firebase cung cấp dịch vụ push notification cho phép nhà phát triển gửi thơng báo tới người dùng, giúp tăng tính tương tác và tạo ra trải nghiệm tốt hơn cho người dùng.
AdMob: Firebase cung cấp tích hợp với AdMob, cho phép nhà phát triển hiển thị quảng cáo trong ứng dụng của họ.
Machine Learning: Firebase cung cấp tích hợp với Machine Learning cho phép nhà phát triển phát triển các tính năng thơng minh trong ứng dụng của mình.
Cloud Functions: Firebase cung cấp dịch vụ Cloud Functions cho phép nhà phát triển viết mã backend trên máy chủ đám mây của Firebase.
3.2.Ưu điểm nổi bật của Firebase
Firebase là một nền tảng phát triển ứng dụng di động và web của Google, với những ưu điểm nổi bật sau:
Quản lý dữ liệu thời gian thực (Real-time database): Firebase cung cấp một cơ sở dữ liệu thời gian thực, cho phép đồng bộ dữ liệu giữa các thiết bị ngay lập tức. Điều này rất hữu ích trong việc xây dựng các tính năng cập nhật trực tiếp và trò chuyện trong ứng dụng.
Xác thực người dùng (Authentication): Firebase cung cấp các công cụ mạnh mẽ để xác thực người dùng, bao gồm đăng ký, đăng nhập và quản lý tài khoản. Nó hỗ trợ
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">nhiều phương thức xác thực như email/password, Google, Facebook và các nhà cung cấp xác thực khác.
Lưu trữ tệp tin (Storage): Firebase cung cấp dịch vụ lưu trữ đám mây để lưu trữ và quản lý các tệp tin như hình ảnh, video và tệp tin tài liệu. Việc sử dụng lưu trữ đám mây giúp giảm tải cho máy chủ của ứng dụng và tăng tính khả dụng của dữ liệu. Phân tích và theo dõi (Analytics): Firebase cung cấp các cơng cụ phân tích và theo dõi hiệu suất ứng dụng, giúp nhà phát triển hiểu rõ hơn về hành vi người dùng, tương tác và tài nguyên tiêu thụ. Thông qua việc thu thập dữ liệu và phân tích, nhà phát triển có thể tối ưu hóa ứng dụng và cải thiện trải nghiệm người dùng.
Thông báo đẩy (Push notifications): Firebase hỗ trợ gửi thông báo đẩy tới các thiết bị di động, cho phép nhà phát triển gửi thông báo tới người dùng ngay cả khi ứng dụng đang khơng hoạt động. Điều này giúp tăng tính tương tác và tiếp cận với người dùng.
Tích hợp dễ dàng: Firebase được tích hợp mạnh mẽ với các công nghệ phát triển ứng dụng phổ biến như Android, iOS, web và các ngơn ngữ lập trình như Kotlin, Swift, JavaScript, v.v. Điều này giúp nhà phát triển dễ dàng tích hợp Firebase vào dự án hiện có và sử dụng các tính năng một cách thuận tiện.
Tổng quan, Firebase mang lại nhiều lợi ích và tiện ích cho việc xây dựng ứng dụng di động và web, từ việc quản lý dữ liệu thời gian thực đến xác thực người dùng, lưu trữ tệp tin, phân tích và theo dõi, thơng báo đẩy và tích hợp dễ dàng
3.3.Tại sao chọn Firebase?
Firebase là một nền tảng dịch vụ đám mây của Google cung cấp nhiều tính năng hữu ích cho việc phát triển ứng dụng di động. Dưới đây là một số ưu điểm của Firebase trong việc phát triển ứng dụng tìm kiếm việc làm:
Real-time Database: Firebase cung cấp cơ sở dữ liệu thời gian thực cho phép các ứng dụng liên kết đến cùng một cơ sở dữ liệu và đồng bộ hóa dữ liệu một cách nhanh chóng, giúp cải thiện trải nghiệm người dùng.
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">Đăng nhập và xác thực người dùng: Firebase cung cấp các công cụ đăng nhập và xác thực người dùng dễ sử dụng giúp tiết kiệm thời gian phát triển. Các tính năng này bao gồm đăng nhập qua tài khoản Google, Facebook, Twitter, đăng ký, quên mật khẩu, đặt lại mật khẩu, xác thực email và số điện thoại.
Lưu trữ và chia sẻ tập tin: Firebase cung cấp tính năng lưu trữ và chia sẻ tập tin trong đám mây, giúp giảm thiểu việc lưu trữ dữ liệu trên máy chủ riêng. Tính năng này giúp cho việc tải xuống và tải lên các tập tin như hình ảnh, video trở nên dễ dàng hơn.
Tích hợp thư điện tử: Firebase cung cấp tích hợp cho phép gửi thư điện tử để xác thực, kích hoạt tài khoản người dùng và gửi thơng báo cho người dùng.
Tính năng phân tích và quảng cáo: Firebase cung cấp các cơng cụ phân tích và quảng cáo giúp bạn theo dõi và phân tích hành vi người dùng, giúp bạn hiểu rõ hơn về đối tượng người dùng của mình và cải thiện chất lượng sản phẩm.
Tính năng thử nghiệm và triển khai: Firebase cung cấp các công cụ để thử nghiệm và triển khai ứng dụng trên các nền tảng khác nhau và theo dõi hiệu suất của ứng dụng trên thị trường.
Đáng chú ý, còn là một dịch vụ rất đa năng và tính bảo mật cực kỳ tốt. Firebase hỗ trợ cả hai nền tảng Android và IOS.
Vì những ưu điểm trên, Firebase là một lựa chọn tốt để sử dụng trong việc phát triển ứng dụng tìm kiếm việc làm. Nó giúp tiết kiệm thời gian, tiết kiệm chi phí, giảm thiểu cơng việc quản lý hệ thống và cải thiện trải nghiệm người dùng.
Firebase cịn hỗ trợ tích hợp với các cơng cụ phát triển ứng dụng khác như Android Studio, Unity, React Native, Xamarin, giúp dễ dàng tích hợp và phát triển ứng dụng trên nhiều nền tảng khác nhau. Ngoài ra, Firebase cịn cập nhật thường xun các tính năng mới, bảo mật cao và hỗ trợ khách hàng tốt, giúp đảm bảo sự ổn định và hiệu quả của ứng dụng.
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24"><b>4.Mơi trường lập trình Android Studio</b>
4.1.Khái niệm:
Android Studio là mơi trường phát triển tích hợp (IDE) chính thức dành cho phát triển nền tảng Android. Nó được ra mắt vào ngày 16 tháng 5 năm 2013 tại hội nghị Google I/O. Android Studio được phát hành miễn phí theo giấy phép Apache
<b>Licence 2.0. Android Studio ở giai đoạn truy cập xem trước sớm bắt đầu từ phiên </b>
bản 0.1 vào tháng 5.2013, sau đó bước vào giai đoạn beta từ phiên bản 0.8 được phát hành vào tháng 6 năm 2014. Phiên bản ổn định đầu tiên được ra mắt vào
<b>tháng 12 năm 2014, bắt đầu từ phiên bản 1.0. Dựa trên phần mềm IntelliJ IDEA </b>
của JetBrains, Android Studio được thiết kế đặc biệt để phát triển ứng dụng Android. Nó hỗ trợ các hệ điều hành Windows, Mac OS X và Linux, và là IDE chính thức của Google để phát triển ứng dụng Android gốc để thay thế cho Android Development Tools (ADT) dựa trên Eclipse.
4.2.Ưu điểm
Môt số ưu điểm của Android Studio khi lập trình ứng dụng tìm kiếm việc làm là:
Hỗ trợ đầy đủ cho ngơn ngữ lập trình Kotlin, giúp cho việc phát triển ứng dụng nhanh chóng và hiệu quả hơn.
Cung cấp giao diện trực quan, dễ sử dụng và có tính tương thích cao với các cơng cụ khác.
Cung cấp một bộ công cụ mạnh mẽ để có thể xây dựng ứng dụng tìm kiếm việc làm, bao gồm cả các công cụ cho phân tích dữ liệu và xử lý hình ảnh.
Hỗ trợ các tính năng như Live Layout, Live Templates và Instant Run, giúp phát triển ứng dụng một cách nhanh chóng và thuận tiện.
Có cộng đồng phát triển lớn, cung cấp các tài liệu học tập, tài nguyên và các thư viện mã nguồn mở, giúp cho các lập trình viên dễ dàng tìm kiếm giải pháp cho các vấn đề khác nhau.
Được hỗ trợ bởi Google, giúp cho việc phát triển ứng dụng được cập nhật và bảo mật tốt hơn.
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">4.3.Lý do sử dụng Androi Studio
Trong quá trình phát triển ứng dụng tìm kiếm việc làm, chúng em đã lựa chọn Android Studio làm mơi trường phát triển chính để xây dựng ứng dụng. Lựa chọn này được đưa ra dựa trên các lý do sau:
Hỗ trợ đầy đủ cho phát triển ứng dụng Android: Android Studio là môi trường phát triển tích hợp (IDE) chính thức và được hỗ trợ bởi Google. Nó cung cấp các cơng cụ và tài nguyên đáng tin cậy cho việc phát triển ứng dụng Android, bao gồm trình biên dịch, trình gỡ lỗi, quản lý dự án và giao diện người dùng thân thiện. Điều này giúp chúng em tiết kiệm thời gian và năng lực phát triển, đồng thời tăng khả năng hiệu quả và chất lượng của ứng dụng.
Tương thích tốt với ngơn ngữ Kotlin: Android Studio hỗ trợ đặc biệt cho việc phát triển ứng dụng Android bằng ngôn ngữ Kotlin. Kotlin là ngôn ngữ lập trình hiện đại, có cú pháp đơn giản và dễ hiểu, đồng thời hỗ trợ các tính năng tiên tiến như an tồn kiểu dữ liệu và lập trình hướng chức năng. Việc sử dụng Kotlin giúp chúng em viết mã nguồn dễ dàng, tăng tính bảo mật và hiệu suất của ứng dụng.
Cộng đồng phát triển lớn: Android Studio được sử dụng rộng rãi bởi cộng đồng phát triển Android, điều này đồng nghĩa với việc có sẵn nhiều tài liệu, hướng dẫn và các thư viện hỗ trợ phong phú. Chúng em có thể dễ dàng tìm kiếm và áp dụng các giải pháp, giúp giảm thời gian và công sức phát triển ứng dụng.
Trên cơ sở những lý do trên, chúng em quyết định sử dụng Android Studio để xây dựng ứng dụng tìm kiếm việc làm. Sự kết hợp giữa Android Studio và ngôn ngữ Kotlin giúp chúng em tận dụng tối đa tiềm năng của nền tảng Android và phát triển ứng dụng chất lượng cao với hiệu suất tốt.
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26"><b>CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ1.Actors Và Use Case</b>
1.1. Các Use Case Diagram
<i>Hình 3.1.1.1: Use case mô tả ứng dụng </i>
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">1.2. Mô Tả Actors
<i>Bảng 3.2.2.1 </i>
<b>STT</b>
ứng dụng đăng tin
1.3. Mô Tả Use Cases
hệ thống.
nhật và giớI thiệu cơng ty
tìm ứng viên phù hợp
cty bật tắt chế độ đăng tin.
Quản lý thơng tin cá nhân
ứng tuyển vào cty
<i>Bảng 3.2.3.1</i>
<b>2.2.Chức năng chính</b>
Ứng dụng tìm kiếm việc làm là một ứng dụng di động được phát triển bằng ngôn ngữ Kotlin trên nền tảng Android Studio. Ứng dụng cung cấp một giao diện người dùng hiện đại và thân thiện, giúp người dùng tìm kiếm và khám phá các cơ hội việc làm phù hợp với nhu cầu của họ.
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">Chức năng chính của ứng dụng bao gồm:
<b>Chức năng</b>
Đăng nhập/Đăng xuất Quản lý thông tin cá nhân Cập nhật công ty
Đăng tin tuyển dụng Quản lý cơng ty
Thơng báo khi có ai ứng tuyển Xem hồ sơ người ứng tuyển Cập nhật thông tin cá nhân.
Người dùng có thể đăng nhập vào ứng dụng bằng tài khoản đã đăng ký hoặc sử dụng các tài khoản mạng xã hội như Google.
Ứng dụng cung cấp giao diện đăng nhập bảo mật với các trường nhập thông tin như tên đăng nhập và mật khẩu.
Người dùng có thể chọn chức năng "Lưu tài khoản" để tiện lợi cho lần đăng nhập sau.
Dưới đây là giao diện và mô tả cách người dùng và hệ thống tương tác với nhau để thực hiện chức năng đăng nhập:
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29"><i>0.iHình 3.2.1.1 </i>
<b>Use Case Description</b>
<b>Use case name:</b> Đăng Nhập
<b>Use case ID:</b> UC01
<b>Actor(s):</b> Nhà tuyển dụng, ứng viên
<b>Description:</b> Nhà tuyển dụng, ứng viên cần phải đăng nhập để sử dụng chức năng của ứng dụng.
<b>Trigger:</b> Nhà tuyển dụng, ứng viên thực hiện đăng nhập, nhấn vào
</div>