Tải bản đầy đủ (.pdf) (19 trang)

Đề Tài Website Tuyển Dụng Cho Ngành Giáo Dục.pdf

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 (2.32 MB, 19 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

ĐỒ ÁN MƠN HỌCPROJECT III

Phạm Đức ường Cơng nghệ thơng tin và Truyền thơng

Chun ngành Kỹ thuật máy tính

Đề tài: Website tuyển dụng cho ngành giáo dụcGiảng viên hướng dẫn TS. Nguyễn Thị Thanh Nga

Hà Nội, 23 tháng 2 năm 2023

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

1. Đặt vấn đề - giới thiệu đề tài

● Nhu cầu tìm gia sư, tìm khóa học ngày càng tăng cao địi hỏi cómột nền tảng trung gian giúp kết nối giữa gia sư và các nhà tuyểndụng. Trang web “TopEd" ra đời với sứ mệnh trên

● TopEd cung cấp các cơng cụ tiện ích giúp các đơn vị tuyển dụngcó thể quản lý các lớp của mình một cách hiệu quả: tích hợpfacebook messager, facebook post. Đồng thời cũng cung cấpnhững cung cấp những công cụ giúp cho gia sư có thể nhanhchóng tìm được lớp học phù hợp với mong muốn, trình độ củamình.

2. Thiết kế hệ thốnga. Thiết kế tổng quan

i. userIJobStatus{

id: string;title: string;}

jobStatus: IJobStatus[];}

IUser{_id?:string;avatar?:string| null;name?:string| null;birthdate?:Date;

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

email?:string| null;phoneNumber?:string[];address?:string[];companyName?:string;contact?:string[];workspace?:IWorkspace;labels?:ILabel[];}

ii. jobIJob{

b. Biểu đồ hoạt độngi. Đăng nhập

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

ii. Tạo lớp

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

iii. Cập nhật trạng thái lớp

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

iv. Tìm lớp

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

v. Gia sư ứng uyển

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

vi. Tạo trạng thái mới

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

vii. Di chuyển lớp học giữa các trạng thái

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

c. Công nghệ sử dụngi. Backend

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

1. NestJs:NestJS là một NodeJS framework dùng đểphát triển server-side applications hiệu quả và có thểmở rộng. NestJS là sự kết hợp bởi OOP(ObjectOriented Programming), FP(FunctionalProgramming), FRP(Functional Reactive

Programming). NestJS sử dụng TypeScript để pháttriển nhưng nó cũng hỗ trợ cả Javascript. Vì vậy bạnkhơng cần phải lo lắng việc mình khơng thể làm tốtNestJS vì khơng biết TypeScript. Nest được lấy cảmhứng từ kiến trúc Agular nên với các bạn đã làm việcvới Agular thì chắc hẳn sẽ khơng cịn xa lạ gì và cóthể dễ dàng tiếp cận. Tin vui với các lập trình viênu thích Express hay Fastify là Nest cho phép tíchhợp sử dụng Express và Fastify như một

middleware. Nó được đóng gói trong 2 package củanpm làplatform-expressvàplatform-fastifyQuantrọng hơn, nó buộc các nhà phát triển sử dụng mộtkiến trúc cụ thể bằng cách giới thiệu các module,provider và controller, đảm bảo ứng dụng highlyscalable, testable và dễ dàng maintaince. Nest rấtkhắt khe và chặt chẽ trong việc xây dựng cấu trúcproject. Vì vậy hãy tn thủ theo nó

2. Docker:

● Docker là nền tảng phần mềm cho phép bạndựng, kiểm thử và triển khai ứng dụng mộtcách nhanh chóng. Docker đóng gói phầnmềm vào các đơn vị tiêu chuẩn hóa được gọilàcontainercó mọi thứ mà phần mềm cần đểchạy, trong đó có thư viện, cơng cụ hệ thống,mã và thời gian chạy. Bằng cách sử dụngDocker, bạn có thể nhanh chóng triển khai vàthay đổi quy mô ứng dụng vào bất kỳ môitrường nào và biết chắc rằng mã của bạn sẽchạy được.

● Docker hoạt động bằng cách cung cấpphương thức tiêu chuẩn để chạy mã của bạn.Docker là hệ điều hành dành cho container.Cũng tương tự như cáchmáy ảoảo hóa (loạibỏ nhu cầu quản lý trực tiếp) phần cứng máychủ, các container sẽ ảo hóa hệ điều hành của

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

máy chủ. Docker được cài đặt trên từng máychủ và cung cấp các lệnh đơn giản mà bạn cóthể sử dụng để dựng, khởi động hoặc dừngcontainer.

ii. Frontend1. NextJs:

● NextJslà một framework dựa trên React chophép bạn tối ưu hoá hiệu năng, hỗ trợ SEO vàtrải nghiệm người dùng thông qua

pre-rendering: Server Side Rendering (SSR)và Static Site Generation (SSG). Ở phần nàymình sẽ chia sẻ với các bạn những kiến thứccơ bản về Next.js và khi nào chúng ta nêndùng nó trong dự án.

● Tại sao dùng NextJs: Ưu điểm chính củaNext.js là hỗ trợ SSR tích hợp để tăng hiệusuất và SEO. Server Side Rendering (SSR)hoạt động bằng cách thay đổi luồng yêu cầu(altering the request flow) của ứng dụng Reactđể tất cả các thành phần ngoại trừ máy kháchgửi thông tin của họ đến máy chủ.

● Với tất cả thơng tin trên máy chủ, nó có thểhiển thị trước (pre-render) HTML của trang.Máy khách có thể gửi một yêu cầu đến máychủ và nhận toàn bộ trang HTML thay vì yêucầu từng thành phần riêng lẻ với client-siderendering.

2. SEO:

● SEO là từ viết tắt của Search EngineOptimization (tối ưu hóa cơng cụ tìm kiếm), làmột quy trình nâng cao thứ hạng của websitetrên các cơng cụ tìm kiếm giúp người dùng cóthể tìm thấy trang web dễ dàng hơn trên bảngkết quả tìm kiếm.

3. Firebase:

● Firebase là platform do Google cung cấp,nhằm hỗ trợ việc tạo ra các web application,mobile application với chất lượng cao.● Với việc sử dụng Firebase, developer có thể

tập trung vào việc phát triển application mà

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

không cần lo về việc sản phẩm của mình sẽhoạt động và được quản lý thể nào ở phíaBackend.

● Firebase Authentication:Firebase

Authentication là chức năng dùng để xác thựcngười dùng bằng Password, số điện thoạihoặc tài khoản Google, Facebook hay Twitter,v.v. Việc xác thực người dùng là một chứcnăng quan trọng trong phát triển ứng dụng.Tuy nhiên, việc đối ứng với nhiều phươngpháp xác thực khác nhau sẽ tốn nhiều thờigian và công sức. Firebase Authentication giúpthực hiện việc chia sẻ ID giữa các ứng dụng,giúp người dùng dễ dàng tiếp cận sản phẩmhơn. Vì thế, nó là một chức năng rất q.● Firebase Realtime Database: là một cơ sở dữ

liệu NoSQL được lưu trữ đám mây cho phépbạn lưu trữ và đồng bộ dữ liệu. Dữ liệu đượclưu trữ dưới dạng JSON và được đồng bộ hóatheo thời gian thực cho mọi máy kết nối.3. Xây dựng triển khai

a. Backendi. Chức năng

sách cácuser

thông tinuser

thông tin job

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

7 delete /user/:id/job/:id xóa job

sách các job

b. Frontendi. Chức năng

Hiển thị danh sách các lớp học cần tuyển gia sư, tạolớp, …

c. Mã nguồn, các màn chính

Trang chủ (1)

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

Dành cho gia sư(1)

Dành cho gia sư(2)

Tìm gia sư (1)

Tìm gia sư (2)

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

Tìm gia sư (3)

Tìm gia sư (4)

Tìm gia sư (5)

Đăng nhập(1)

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

b. Tăng tốc độ: Cần tối ưu hóa các câu lệnh để ứng dụng chạynhanh hơn nhằm nâng cao trải nghiệm người dùng.c. Tính năng mới:

● Nhắn tin:

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

● Kết nối với facebook post để có thể đăng bài tuyển dụnglên facebook một cách nhanh chóng

</div>

×