KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
LẬP TRÌNH WEB SỬ DỤNG RUBY ON RAILS VÀ REACT
Công ty thực tập: Công ty Cohota
Thực tập sinh : Nguyễn Vân Phượng Anh
Trang 2TP Hồ Chí Minh, tháng 12 năm 2020
LỜI MỞ ĐẦU
Ngành Công nghệ thông tin nói chung và ngành Công nghệ phần mềm nói riêng vẫnluôn là một trong những nhân tố thiết yếu và đóng vai trò quan trọng nhất trong sự phát triểnchung của cả xã hội
Việc tạo ra công cụ hỗ trợ con người trong việc mô phỏng các thông tin cần thiết, hạnchế những sai sót giúp tiết kiệm thời gian, chi phí và sức lực
Phát triển ứng dụng web mang nhiều tính thực tế ứng dụng và phù hợp với xu thế hiệntại và nhu cầu thị trường Vì lý do này, em quyết định chọn lập trình web và thiết kế làm địnhhướng cho việc học tập của mình.
Sau ba năm học tập trên trường với mong muốn có thêm kinh nghiệm thực tế trongmột môi trường chuyên nghiệp, em quyết định chọn Cohota - một môi trường startup lýtưởng, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này.
Em xin cảm ơn anh Kha và anh Hoàng đã cho nhóm em 1 crash course về Ruby on Railscũng như Reactjs, hướng dẫn từng bước và tận tình gỡ rối những khó khăn trong công việc đểthực hiện được 1 dự án gần như hoàn chỉnh và áp dụng được vào thực tế Đặc biệt là, em cảm
Trang 3ơn anh Thái Chương đã dìu dắt chúng em với những buổi seminar trau dồi về kỹ năng thuyếttrình, làm việc nhóm, em đã học được rất nhiều điều không chỉ về công nghệ mà còn là kỹnăng mềm và tư duy logic.
Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điềukiện em làm bài báo cáo này.
Nguyễn Vân Phượng AnhTPHCM, ngày 30 tháng 12 năm 2020
NHẬN XÉT CỦA KHOA
Trang 4MỤC LỤC
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 3
Trang 51 Giới thiệu công ty Cohota
Sáng lập bởi anh Thái Chương, Cohota viết tắt từ “Cổng học Tập” là một công tystartup trong lĩnh vực Edutech, cung cấp giải pháp nền tảng quản lý học tập và đàotạo cho mọi cấp độ, cung cấp giải pháp LMS (Learning Management System) chocác khối doanh nghiệp giáo dục tất cả cấp bậc Với thâm niên >2 năm, Cohota nhậnđược sự tin tưởng và đánh giá cao của đối tác giáo dục.
Với tầm nhìn và những dự án mang tính xã hội, Cohota trở thành đơn vị triển khaimột số chương trình huấn luyện xây dựng năng lực ở các trường học thông minh vàtrường Đại Học
2 Sản phẩm của công ty
Cohota cung cấp giải pháp nền tảng quản lý học tập và đào tạo cho mọi cấp độ,cung cấp giải pháp LMS (Learning Management System) cho các khối doanh nghiệpgiáo dục tất cả cấp bậc (hệ thống quản lý khóa học MOOC, lớp học ảo, ứng dụnghọc tập cho giáo viên và học viên Catbus…) LMS mang tính ứng dụng cao trongthời dịch Covid -19 trong việc quản lý dạy học, chất lượng và học viên, là cầu nốithay thế cho hoạt động học tập truyền thống.
Nền tảng Cohota ngoài khía cạnh quản lý học tập, nâng cao chất lượng của hoạtđộng dạy học kết hợp nhằm thúc đẩy hiệu quả giáo dục, đào tạo con người trong thờiđại mới, còn là nơi thể hiện tinh thần đam mê công nghệ của các kỹ sư trẻ với Cloud,Blockchain, Big data và AI để phục vụ hơn 10.000 giáo viên và các chương trìnhgiáo dục đổi mới.
Ngoài ra công ty còn thực hiện nhiều dự án xã hội và giáo dục ứng dụng côngnghệ web, Cohota đã hợp tác với nhiều đơn vị cả trong và ngoài nước như ITP, trungtâm dữ liệu ĐHQG, Inacol & TBLC.
Trang 6Chương 2: Nội dung thực tập
Đợt thực tập ứng dụng mô hình làm việc Scrum và sinh viên thực tập được đào tạo cơbản về lập trình web sử dụng Ruby on Rails và React, đồng thời rèn luyện những kỹ năng mềmnhư làm việc nhóm theo Scrum, thuyết trình, giao tiếp, sử dụng công cụ quản lý công việc nhưJira Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môi trườngstartup năng động.
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Thời gian : 1 ngày
Nội dung : Giới thiệu về công ty và kỹ năng cần thiết được đánh giá:
Được nghe người phụ trách giới thiệu về công ty, quá trình thành lập và phát triênquy trình làm việc từ cao xuống thấp, cách thức tổ chức của công ty
Ngoài ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công tynhư thời gian đi làm, các quy định cần phải tuân thủ Những kỹ năng làm việc như:
- Kỹ năng chuyên môn: Mức độ hoàn thành công việc.- Khả năng làm việc theo nhóm
- Kỹ năng giao tiếp
- Khả năng hòa nhập với môi trường doanh nghiệp
Thời gian : 1 ngày
Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc.
Trong thời gian này, supervisor đã hướng dẫn thực tập sinh tìm hiểu về các côngcụ sẽ giúp ích cho trong công việc: Visual Studio Code, Figma, Jira, Cohota LMS.
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.Kết quả : Có kiến thức về những công cụ trên.
2.2.Tìm hiểu về Ruby on Rails
Thời gian : 1 tuần
Nội dung : Được training về căn bản của lập trình Ruby thông qua mini projects.
Kiến thức lập trình căn bản Ruby:
Trang 7- Methods và classes
- Inheritance, Initializing instances
- Arrays và blocks, block return values, Hashes- Heap (object references, clone object) Falsy/Truthy- References, mixins, comparable và enumerable - Web apps, saving và loading data
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty.- Làm các bài thực hành, kiểm tra về kiến thức đã học.
Kết quả :
- Hiểu biết về ngôn ngữ Ruby.
- Bài tập cuối khóa: 1 project nhỏ show và CRUD thông tin và lưu trữ thông tin.
2.3.Tìm hiểu về Reactjs
Thời gian : 1 tuần
Nội dung: Kiến thức cơ bản về React để kết hợp với Ruby on Rails.
- JSX
- Rendering elements- Components và props- State và Lifecycle- Event handling
- Conditional rendering- Redux store và redux saga
Thực hiện :
- Tham gia đầy đủ các buổi training.
- Làm các bài tập thực hành như tạo searchbar đơn giản gọi api của unsplash, làmwebsite lấy thông tin học viên, làm lại UI của 1 trang web mẫu sử dụng React vàInstructure library.
- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm.
Trang 8Nội dung : Cách thức tổ chức và làm việc theo mô hình Scrum
- Định nghĩa về Scrum:
Scrum là một phương pháp Agile dùng cho phát triển sản phẩm, đặc biệt là pháttriển phần mềm Scrum là một khung quản lý dự án được áp dụng rất rộng rãi, từnhững dự án đơn giản với một nhóm phát triển nhỏ cho đến những dự án có yêucầu rất phức tạp với hàng trăm người tham gia, và kể cả những dự án đòi hỏikhung thời gian cố định
- Tổ chức trong Scrum:
Trong Scrum, công việc được thực hiện bởi Nhóm Scrum thông qua từng phânđoạn lặp liên tiếp nhau được gọi là Sprint Để hiểu được Scrum thì cần hiểunguyên lý của Scrum, các Vai trò, Tạo tác, Sự kiện và sự vận hành của một vòngđời Scrum.
- Tuyên ngôn Agile:
▪ Cá nhân và sự tương tác hơn là quy trình và công cụ;▪ Phần mềm chạy tốt hơn là tài liệu đầy đủ;
▪ Cộng tác với khách hàng hơn là đàm phán hợp đồng;▪ Phản hồi với các thay đổi hơn là bám sát kế hoạch.- Sự kiện trong Scrum:
▪ Sprint
▪ Lập kế hoạch sprint▪ Scrum hàng ngày▪ Sprint retrospect▪ Sprint review
Thực hiện :
- Tham gia đầy đủ các buổi thực hành.
- Đảm bảo hoàn thành tiến độ công việc theo vai trò trong sprint.- Thực hiện retrospect đánh giá.
Kết quả:
Trang 9- Được trải nghiệm quy trình Scrum và quản lý tiến độ công việc nhóm.
3 Thực hiện project
Trong 2 tháng đan xen giữa những buổi seminar kỹ năng mềm, training kiến thức mới vàáp dụng vào mini-projects, team đã sẵn sàng làm một project thực tế yêu cầu căn bản từnhững kiến thức đã học, làm việc theo mô hình Scrum.
Chi tiết project sẽ được nói ở phần sau.
4 Lịch làm việc
Nhận xét của ngườihướng dẫn
- Huấn luyện hộinhập, tìm hiểu vềcông ty và các dựán, kỹ năng thuyếttrình, làm việcnhóm
Anh Thái Chương
- Huấn luyện các kiếnthức kỹ thuật cầnthiết, thực hành kỹnăng thuyết trình vàlàm việc nhóm
Anh Kha
- Chia nhóm 2-3người để thực hiệncác tác nhiệm cụthể
- Hướng dẫn quytrình quản lý vàScrum
Anh Hoàng
- Workshop UX/UI- Workshop về ứng
dụng công nghệdạy và học.
Anh Thái Chương
- Phân tích nghiệp vụvà quản lý Backlog- Lập 1 kế hoạch
sprint để thực hiện
Anh Chương vàanh Hoàng.
Trang 10- Hoàn thành sprint vàretrospective
Anh Chương vàanh Hoàng.
Automation testingvới Selenium
Opensource, NGO,doanh nghiệp xã hộivà khởi nghiệp.
Anh Chương
- Hoàn thành cácmodule, tài liệu hóa.- Thủ tục bàn giao- Tổng kết chương
Anh Chương vàanh Hoàng.
Chương 3: Chi tiết về project
1 Giới thiệu về AZLearning
AZLearning là trang web cho giáo viên trải nghiệm quy trình tạo bài kiểm tra và họcviên làm bài kiểm tra.
1.1.Mục đích
AZLearning là website cho giáo viên tạo bài kiểm tra nhanh chóng, quản lý danhsách bài kiểm tra và export link/QR code để sinh viên tham gia làm bài kiểm tra.Flow hoạt động của website sẽ cho giáo viên trải nghiệm tạo thử bài kiểm tramà không cần đăng ký tài khoản, sau đó để lưu giáo viên sẽ đăng kí và thông tinđược tích hợp trên hệ thống LMS của Cohota
Mục tiêu của website ưu tiên trải nghiệm người dùng cho những giáo viênkhông quen thuộc với luông sử dụng bài bản của một LMS toàn diện.
1.2.Chức năng
Trang 11Giới thiệu
Màn hình landing page giới thiệu về AZLearning và hướng dẫn tạo bài kiểm tra:
Trang 13Tạo bài kiểm tra và quản lý bài kiểm tra:
Đặt tên và cài đặt thuộc tính cơ bản cho bài kiểm tra và thực hiện tạo câu hỏiCó các loại câu hỏi như:
- Trắc nghiệm- True/ false
- Matching questions- Tự luận
- Multiple answer- Fill in blank
Màn hình tạo đề kiểm tra
Trang 14Màn hình tạo câu hỏi matching question
Trang 15Màn hình tạo câu hỏi trắc nghiệm
Trang 16Màn hình quản lý danh sách đề kiểm tra
Và sự giúp đỡ tận tình của anh Kha, anh Hoàng và anh Chương.
3 Kế hoạch
- Thiết kế giao diện UI cho các chức năng bằng Figma.
- Viết xử lý backend cho chức năng tạo các loại câu hỏi mới (matching, fill in blank,true/false).
- Hiện thực front-end cho các màn hình chức năng.
Trang 17Kết quả :
- Một số tính năng có sẵn đã được cải thiện lại.
- Sprint review lên hoạt động nhóm trong sprint vừa qua.- Điều chỉnh lại giao diện so với bản gốc của công ty.- Đã hoàn thành công việc như role đã giao.
TÀI LIỆU THAM KHẢO
TỔNG KẾT
Trong vòng 2 tháng ngắn ngủi, nhóm đã hoàn thiện thêm 1 phần vào website tạo bàikiểm tra online và thay đổi về mặt front-end visual, ngoài ra còn có một số mini-projects nhómem đã áp dụng được từ kiến thức đã học qua suốt quá trình thực tập như form thu thập thông tinsinh viên sử dụng Ruby On Rails
Chân thành cảm ơn sự giúp đỡ của các anh Kha và anh Hoàng, sự nỗ lực của nhóm thựctập thực hiện được điều này.