Trong một thời gian ngắn, với sự chỉ dẫn nhiệt tình của anh Chương, anh Hoàng và anh Kha, nhóm thực tập chúng em đã tiếp thu được những kiến thức quan trọng về phát triển web sử dụng Rub
Trang 1KHOA 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ẫn luô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ển chung 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ạn chế 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ện tạ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 định hướ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ế trong mộ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
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn đến anh Thái Chương của công ty Cohota đã tạo điều kiện cho
em có cơ hội được thực tập và học hỏi nhiều điều bổ ích
Trong một thời gian ngắn, với sự chỉ dẫn nhiệt tình của anh Chương, anh Hoàng và anh Kha, nhóm thực tập chúng em đã tiếp thu được những kiến thức quan trọng về phát triển web
sử dụng Ruby On Rails và góp phần vào thực hiện 1 dự án được áp dụng thực tế Em cảm ơn thời gian và công sức của mọi người đã bỏ ra để hướng dẫn chúng em hoàn thành đợt thực tập này
Em xin cảm ơn anh Kha và anh Hoàng đã cho nhóm em 1 crash course về Ruby on Rails cũ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ết trì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ều kiện em làm bài báo cáo này
Nguyễn Vân Phượng Anh TPHCM, 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
Chương 1: Giới thiệu công ty thực tập
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 ty startup 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à đà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ệ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 khai mộ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ệp giá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ụng học tập cho giáo viên và học viên Catbus…) LMS mang tính ứng dụng cao trong thờ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ối thay 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ình giá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ông nghệ web, Cohota đã hợp tác với nhiều đơn vị cả trong và ngoài nước như ITP, trung tâ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ềm như 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ường startup 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ên quy 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 ty như 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
Kết quả :
- Hiểu thêm về công ty ,quá trình thành lập và phát triển
- Có thêm các kiến thức về những kỹ năng yêu cầu khi đi làm
2 Nghiên cứu kỹ thuật
2.1 Các công cụ làm việc
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ông
cụ 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àm website 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
Kết quả :
- Hiểu được những khái niệm cơ bản trong React, cách sử dụng library, call api, kiến trúc redux
2.4 Quy trình làm việc Scrum
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át triể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êu cầ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ỏi khung 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ểu nguyê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
Mức độ hoàn thành
Nhận xét của người hướng dẫn
1
- Huấn luyện hội nhập, tìm hiểu về công ty và các dự
án, kỹ năng thuyết trình, làm việc nhóm
Anh Thái Chương
2
- Huấn luyện các kiến thức kỹ thuật cần thiết, thực hành kỹ năng thuyết trình và làm việc nhóm
Anh Kha
3
- Chia nhóm 2-3 người để thực hiện các tác nhiệm cụ thể
- Hướng dẫn quy trình quản lý và Scrum
Anh Hoàng
4
- Workshop UX/UI
- Workshop về ứng dụng công nghệ dạy và học
Anh Thái Chương
5
- 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
7
Automation testing với Selenium
Opensource, NGO, doanh nghiệp xã hội
và khởi nghiệp
Anh Chương
8
- Hoàn thành các module, tài liệu hóa
- Thủ tục bàn giao
- Tổng kết chương trình
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ọc viê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ý danh sá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 tra
mà 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ên khô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ỏi
Có 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
2 Thực hiện
Các thành viên của team internship:
- Nguyễn Vân Phượng Anh
- Lê Hoàng Hiệp
- Hồ Anh Khiết
- Huỳnh Phương Thức
- Trần Đức Nguyên
Và sự giúp đỡ tận tình của anh Kha, anh Hoàng và anh Chương
3 Kế hoạch
Sprint:
- 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
Ruby on Rails
https://rubyonrails.org/
ReactJS
https://reactjs.org/
Instructure UI
https://instructure.design/
Design resources
https://unsplash.com/
https://www.figma.com/
https://www.freepik.com/
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ài kiểm tra online và thay đổi về mặt front-end visual, ngoài ra còn có một số mini-projects nhóm
em đã á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 tin sinh 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ực tập thực hiện được điều này