Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được tham gia phát triển phần mềm trong một môi trường chuyên nghiệp, em quyết định chọn công ty A
Trang 1KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP Xây dựng web application quản lý nhân viên
dùng JavaEE với JSF, EJB và JPA
TP Hồ Chí Minh, tháng 8 năm 2019
Trang 2LỜI MỞ ĐẦU
Ngày nay, với lượng thông tin lớn cần quản lý, các hệ thống phần mềm đang là giải pháp được các doanh nghiệp lựa chọn Với tốc độ phát triển vô cùng mạnh mẽ, ngành kỹ thuật phần mềm đã và đang là nhân tố kích thích sự phát triển của công nghệ thông tin thế giới, cả về phần cứng và phần mềm
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ Bên cạnh những công ty phần mềm trong nước, những công ty phần mềm lớn trên thế giới (như Axon Active Vietnam) cũng gia nhập vào thị trường Việt Nam, góp phần rất lớn vào sự phát triển tích cực của ngành phần mềm
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được tham gia phát triển phần mềm trong một môi trường chuyên nghiệp, em quyết định chọn công ty Axon Active Vietnam - một môi trường lý tưởng, hiện đại, chuyên nghiệp - là nơi
sẽ giúp em thực hiện được dự định này
Trang 3LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty Axon Active Vietnam đã tạo điều kiện cho em có cơ hội được thực tập tại công ty
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của nhóm trainer, nhóm thực tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể làm được một web application Chân thành cảm ơn các anh chị trong nhóm trainer đã bỏ ra nhiều thời gian, công sức để hướng dẫn chúng em hoàn thành project này
Đặc biệt cảm ơn anh Nguyễn Quốc Huy-Education Manager đã hướng dẫn, giúp đỡ cho chúng em tận tình cả những khó khăn trong công việc, làm quen với môi trường mới, đến những khó khăn liên quan đến kiến thức chuyên môn gặp phải
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 Đình Thiện
Tp HCM, ngày 13 tháng 5 năm 2019
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
Chương 1: Giới thiêu công ty thực tập 5
1.Giới thiệu công ty Axon Active Vietnam 6
2.Sản phẩm của công ty 6
Chương 2: Nội dung thực tập 6
1.Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 7
2.Nghiên cứu kỹ thuật 7
2.1.Các công cụ làm việc 7
2.2.Kiến thức chuyên môn 7
Chương 3: Chi tiết về project 11
1.Giới thiệu về web 11
1.1.Chức năng chính 11
TÀI LIỆU THAM KHẢO 15
TỔNG KẾT 16
Chương 1: Giới thiêu công ty thực tập
Trang 61 Giới thiệu công ty Axon Active Vietnam
Axon Active Vietnam là một công ty Thụy Sỹ phát triển phần mềm với thế mạnh về Agile/Scrum Với hơn 10 năm xây dựng và phát triển phần mềm cho các doanh nghiệp trên toàn cầu, Axon Active Vietnam có một số lượng lớn portfolio của những dự án quốc
tế thành công, từ các doanh nghiệp nhỏ đến các hệ thống lớn cho các tổ chức Axon Active Vietnam luôn cố gắng xây dựng mối quan hệ chặt chẽ với khách hàng với nguồn nhân lực chất lượng cao để đưa ra các giải pháp phần mềm tối ưu với mức giá cạnh tranh
2 Sản phẩm của công ty
Axon active Vietnam qua các năm đã đưa ra các giải pháp phần mềm và xây dựng các hệ thống chất lượng cao, điển hình như:
Account Opening PostFinance: ứng dụng mobile hỗ trợ người dùng lập tài khoản ngân hàng mà không cần phải di chuyển tới ngân hàng
Lake Lucerne: là ứng dụng mobile được xây dựng cho khu vực hồ Lucerne, Thụy Sỹ,
hỗ trợ cung cấp thông tin về địa điểm người dùng đặt chân tới đây
Metabiota: là ứng dụng web được xây dựng để theo dõi và phân tích các rủi ro toàn cầu trong thời gian thực để hỗ trợ người dùng áp dụng các biện pháp kinh tế phù hợp
Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Xây dựng web application” nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về kỹ thuật xây dựng web application sử dụng Java, đồng thời
Trang 7rèn luyện những kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp Tại công ty,
em có cơ hội được học tập, khám phá và làm việc trong một môi trường phát triển phần mềm chuyên nghiệp
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Nội dung: Giới thiệu về công ty, cách tổ chức của công ty
Đượ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 (như đã nhắc đến ở trê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ủ, cách sử dụng email trong công việc…
Kết quả: Hiểu thêm về công ty Axon Active Vietnam, quá trình thành lập và phát triển.
Có thêm các kỹ năng về việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn
2 Nghiên cứu kỹ thuật
2.1 Các công cụ làm việc
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 sau này Một số phần mềm trong số đó như:
• SourceTree – công cụ giúp hỗ trợ quản lý source code của project
• Postgres – hệ quản trị cơ sở dữ liệu được dùng
• Eclipse Jee – IDE hỗ trợ lập trình JavaEE
• Trello – công cụ giúp hỗ trợ quản lý tiến độ làm việc
Thực hiện: Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả: Lập trình sử dụng các công cụ, giúp dễ dàng kết hợp các công cụ với nhau.
2.2 Kiến thức chuyên môn
Công việc Người hướng dẫn Mức độ
hoàn thành
Nhận xét của người hướng dẫn
Server & Project Structure:
• Tìm hiểu và làm quen với
Wildfly
• Tìm hiểu cấu trúc của
Education Manager:
Anh Nguyễn Quốc Huy
Trang 8Application-web server
(Maven)
• Feature based
• Layer based
Server & Project Structure:
• Tìm hiểu và làm quen với
mô hình MVC: Model,
View, Controller
Education Manager:
Anh Nguyễn Quốc Huy
Tìm hiểu và làm quen với Maven:
• Repositories
• Build profile
• Build life cycle
• Scope
Education Manager:
Anh Nguyễn Quốc Huy
Tìm hiểu về logging:
• Configuration
• Path
• Log level
• Formation/ file content
Education Manager:
Anh Nguyễn Quốc Huy
Tìm hiểu và làm quen với Java:
• Introduction
• Array
• Advanced classes &
objects
• Text processing &
Wrapper class
• Inheritance
• Method
• Classes
• Exceptions
Education Manager:
Anh Nguyễn Quốc Huy
Tìm hiểu và làm quen với
Generic & collections framework
trong Java:
• Common DAO/ Generic
services
• Collection interface
Education Manager:
Anh Nguyễn Quốc Huy
Trang 9• List
• Set
• Map
• Queue
• Concrete class
• Iterator Interface
• Iterator & ListIterator
Tìm hiểu về clean code:
• Broken window
• Naming
• Parameters
• Extracting functions
• Flag
• One task one function
• Test driven Development
(TDD)
Education Manager:
Anh Nguyễn Quốc Huy
Tìm hiểu về Java 8:
• Functional programming
• Functional interface
• Function<T, R>
• Consumer<T>
• Predicate
• Lambda Expressions
• Optional API
• Stream API
• Stream Operations
Education Manager:
Anh Nguyễn Quốc Huy
Backend - Tìm hiểu về JPA/
Hibernate:
• Entity: mapping, auto
number…
• Entity Manager
• Java Persistence Query
Language (JPQL)
• Criteria API
• NamedQuery
• NamedStoredProcedure
• Native SQL
Education Manager:
Anh Nguyễn Quốc Huy
Backend - Tìm hiểu về EJB:
• EJB Container Education Manager: Anh Nguyễn Quốc Tốt Tốt
Trang 10• Benefit: Scalable, Pooling,
Transaction Management
• Stateless Session Bean
• CDI
Huy
Frontend - Tìm hiểu về
HTML/CSS, responsive web
pages, jQuery:
• JS
• Data for “search engine”
• CSS Specificity rule
• CSS: Position
• Reset CSS
• CSS Box Model
• CSS Flexbox
• Grid layout
• Bootstrap
Education Manager:
Anh Nguyễn Quốc Huy
Frontend - Tìm hiểu về UX/UI:
• Principles
• Web convention
• Mockup tools
Education Manager:
Anh Nguyễn Quốc Huy
Frontend - Tìm hiểu JSF &
Primefaces
• JSF life cycle
• Managed Bean
• Bean scope
• Bean configuration
• Message bundle
• Event handling
• Action events
• Immediate components
• Ajax and JSF
• Validator
• Converter
• Custom component
Education Manager:
Anh Nguyễn Quốc Huy
Tìm hiểu về Design pattern:
• Builder
• Composite
• Singleton
Education Manager:
Anh Nguyễn Quốc Huy
Trang 11• Abstract Factory
Backend - Tìm hiểu về Junit
• Unit test
• Mockito
• PowerMock
• Selenium
Education Manager:
Anh Nguyễn Quốc Huy
Chương 3: Chi tiết về project
1 Giới thiệu về web
Web được xây dựng với mục tiêu quản lý nhân viên thông qua giao diện trực quan, áp dụng các công cụ và kỹ thuật đã được hướng dẫn trong suốt quá trình học tập tại công ty
Web có 3 chức năng chính là them, xóa, và sửa thông tin của nhân viên Bên cạnh đó,
Trang 12Giao diện tiếng Việt
Trang 13Giao diện tiếng Anh
1 Thực hiện
3 thành viên của team internship Atom:
- Lưu Nguyễn
- Nguyễn Đìn Thiện
- Nguyễn Minh
Và sự giúp đỡ tận tình của anh Education Manager Nguyễn Quốc Huy
2 Mô tả kỹ thuật
Project được xây dựng theo mô hình MVC
Backend:
• Áp dụng Java Persistence API với Hibernate để liên kết với hệ quản trị cơ sở
dữ liệu Postgres.
Trang 14• Áp dụng Enterprise JavaBeans để hiện thực hóa các logic nghiệp vụ
Frontend:
• Áp dụng JavaServer Face cùng với UI Framework Primeface
• Áp dụng thư viện CSS Bootstrap
Server: sử dụng server WildFly của Red Hat
Code được viết theo các tiêu chuẩn Clean code và được áp dụng các kỹ thuật để tối
ưu hiệu năng.
Trang 15TÀI LIỆU THAM KHẢO
Java Persistence API & Hibernate:
https://www.vogella.com/tutorials/JavaPersistenceAPI/article.html
https://www.theserverside.com/tutorial/Using-Hibernate-35-as-a-JPA-20-Persistence-Implementation
JavaServer Face framework:
https://www.vogella.com/tutorials/JavaServerFaces/article.html
https://www.tutorialspoint.com/jsf
UI Framework Primeface:
https://www.primefaces.org/documentation/
Bootstrap CSS:
https://getbootstrap.com/docs/4.3/about/overview/
WildFly Server:
https://docs.wildfly.org/
Trang 16TỔNG KẾT
Trong suốt quá trình thực tập tại công ty Axon Active Vietnam, nhóm đã xây dựng được
1 web application Tuy web còn hạn chế về mặt tính năng và giao diện chưa được dễ nhìn như mong đợi nhưng cấu trúc project được thiết kế tối ưu hỗ trợ việc mở rộng, nâng cấp sau này
Chân thành cảm ơn sự giúp đỡ của anh Nguyễn Quốc Huy - Education Manager, công ty Axon Active Vietnam đã cho em cơ hội được thực tập, trau dồi kinh nghiệm làm việc trong môi trường năng động