Giới thiêu công ty thực tập
Giới thiệu công ty GSOFT
GSOFT là một công ty phần mềm công nghệ, được thành lập bởi những cá nhân tâm huyết, có năng lực và kinh nghiệm chuyên môn cao Công ty hướng tới mục tiêu trở thành một trong những công ty phần mềm hàng đầu tại Việt Nam và mở rộng ra thị trường quốc tế.
GSOFT chuyên cung cấp giải pháp phần mềm quản lý cho doanh nghiệp lớn, ngân hàng, trường đại học và bệnh viện Chúng tôi phát triển các giải pháp kết nối cộng đồng trên nền tảng internet, xây dựng hệ thống website và các dịch vụ liên quan Ngoài ra, GSOFT còn cung cấp các hệ thống phục vụ thương mại điện tử và chính phủ điện tử.
GSOFT tập trung vào việc nghiên cứu và ứng dụng công nghệ tiên tiến vào thực tiễn, với mục tiêu nâng cao chất lượng cuộc sống cho cộng đồng.
Sản phẩm của công ty
Ngoài giải pháp outsourcing, công ty còn cung cấp các phần mềm quản trị hiệu quả Nổi bật trong số đó là hệ thống phần mềm quản trị đầu tư mua sắm và quản lý tài sản gAMSPro, bao gồm các phân hệ lớn như quản lý hàng hóa, quản lý nhà cung ứng, quản lý kế hoạch mua sắm, quản lý tài sản, quản lý mua sắm và quản lý bất động sản.
Nội dung thực tập
JoyWork là dự án prototype của công ty, nhằm kết nối nhà tuyển dụng với người tìm việc Dự án giúp sinh viên nắm vững kiến trúc tổng quan của Domain Driven Design, React và Angular, đồng thời rèn luyện kỹ năng mềm như làm việc nhóm, thuyết trình và giao tiếp Tại đây, sinh viên có cơ hội học tập, khám phá và làm việc trong môi trường phát triển phần mềm chuyên nghiệp.
Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Công ty chúng tôi được thành lập với mục tiêu phát triển bền vững và cung cấp dịch vụ chất lượng cao Đội ngũ HR đã giới thiệu về quá trình hình thành và phát triển của công ty, nhấn mạnh vào quy trình làm việc từ cấp cao đến cấp thấp Cách thức tổ chức của công ty được thiết kế khoa học, đảm bảo tính hiệu quả và sự phối hợp nhịp nhàng giữa các bộ phận.
Thực tập sinh sẽ được hướng dẫn về quy trình làm việc tại công ty, bao gồm thời gian làm việc, các quy định cần tuân thủ và cách sử dụng email trong môi trường công sở.
GSOFT là một công ty nổi bật với quá trình thành lập và phát triển ấn tượng Bài viết cung cấp cái nhìn sâu sắc về lịch sử và sự tiến bộ của công ty Ngoài ra, người đọc sẽ được trang bị thêm kỹ năng quan trọng trong việc sử dụng email hiệu quả trong công việc, đồng thời nâng cao khả năng làm việc có kế hoạch, kỷ luật và trách nhiệm.
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 thực tập, mentor đã hướng dẫn thực tập sinh cách sử dụng các công cụ hỗ trợ cho công việc phát triển, bao gồm Git và Azure DevOps để quản lý cấu hình dự án, cùng với VSCode - một trình soạn thảo văn bản phổ biến, tiện lợi cho lập trình viên trong nhiều môi trường phát triển khác nhau.
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ụ miễn phí, giúp dễ dàng kết hợp các công cụ với nhau.
Tìm hiểu ngôn ngữ Typescript và thư viện ReactJs
Nội dung : Được training về ngôn ngữ Typescript và thư viện ReactJs, những kiến thức quan trọng cho việc phát triển front end ứng dụng web
- Lập trình hướng đối tượng
Lập trình hướng đối tượng bao gồm các kiến thức cơ bản như khái niệm và các đặc tính quan trọng như tính kế thừa, tính đóng gói, tính ảo hóa và tính đa hình Thực tập sinh sẽ được hướng dẫn chi tiết về cách thiết kế lớp cho các model sử dụng trong hệ thống.
- Các thành phần website (HTML/CSS/JS):
Trình duyệt chạy ứng dụng web trên phía front-end thông qua việc sử dụng các ngôn ngữ cơ bản như HTML, CSS và JavaScript HTML cung cấp cấu trúc cho trang web, CSS đảm nhận vai trò định dạng và tạo kiểu dáng, trong khi JavaScript cho phép tương tác và xử lý logic Khi người dùng truy cập một trang web, trình duyệt tải xuống các tệp này, phân tích cú pháp và hiển thị nội dung một cách mượt mà, tạo nên trải nghiệm người dùng hấp dẫn.
Thực tập sinh sẽ được đào tạo cách sử dụng thư viện ReactJs để phát triển các thành phần giao diện người dùng cho website Họ sẽ học cách ReactJs hỗ trợ việc lập trình các thành phần cơ bản này một cách hiệu quả.
Typescript là một ngôn ngữ lập trình mạnh mẽ, cung cấp cú pháp cơ bản như điều khiển luồng và vòng lặp Nó hỗ trợ các tính chất quan trọng như interface, kiểu union và ép kiểu, giúp quản lý mã nguồn hiệu quả Sự khác biệt giữa Typescript và Javascript là điểm mấu chốt, cho phép ứng dụng Typescript trong các dự án phát triển quy mô lớn với đội ngũ lập trình viê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.
- Nâng cao kỹ năng lập trình với ngôn ngữ Typescript và thư viện ReactJs.
- Có được những kiến thức quan trọng cho việc lập trình front-end sau này.
- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúng chuẩn, dễ đọc, dễ hiểu.
Tìm hiểu NET Core và ABP Framework
Nội dung : Được training về NET Core và framework, những kiến thức quan trọng cho việc phát triển backend ứng dụng web
- Lập trình hướng đối tượng
Lập trình hướng đối tượng (OOP) bao gồm các khái niệm cơ bản như tính kế thừa, tính đóng gói, tính ảo hóa và tính đa hình Thực tập sinh sẽ được hướng dẫn chi tiết về cách thiết kế lớp cho các model sử dụng trong hệ thống, giúp nâng cao kỹ năng lập trình và hiểu biết về OOP.
- Tổng quan giao tiếp giữa các tầng trong backend
- Thực tập sinh sẽ tìm hiểu các thành phần chính của backend như:
The Web API Controller is responsible for receiving requests from clients and automatically handling the corresponding routes It also plays a crucial role in sending responses back to the client Additionally, the Controller calls the Application Service to process these requests effectively.
Dịch vụ ứng dụng (Application Services) bao gồm các nghiệp vụ và phần xử lý tương ứng với từng route tính năng, thường sử dụng DTOs để truyền dữ liệu Dịch vụ này thường kết hợp với Repository tương ứng với một hoặc nhiều Entity liên quan để thao tác với cơ sở dữ liệu Việc sử dụng Repository được thực hiện thông qua Interface do Domain Services cung cấp.
The Domain Layer encompasses Repository Interfaces, Entities, and Domain Services Entities are the classes used to define the entities or tables within a database Repository Interfaces outline the methods for database interactions, which are then implemented by Repositories in ORM layers Domain Services refer to the services related to the Entities that are readily available.
Entity Framework Core is an Object-Relational Mapping (ORM) framework that facilitates database mapping and includes DataContext for managing repositories These repositories utilize the DataContext to implement methods for interacting with the database effectively.
The ABP Framework is a NET Core framework that comes with essential built-in features such as Authorization, Multi-Tenancy, Roles, and Permissions It follows the Domain-Driven Design architecture and is structured into various layers.
+ Presentation Layer: cung cấp giao diện tương tác với người dùng + Application Layer: liên kết giữa Presentation và Domain Layer
+ Domain Layer: xử lý các logic nghiệp vụ.
+ Infrastructure Layer: chứa các logic sử dụng các thư viện khác để hỗ trợ như xuất file, nhập file, gửi mail…
- 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.
- Nâng cao kỹ năng lập trình với NET Core và kiến trúc backend
- Có được những kiến thức quan trọng cho việc lập trình backend sau này.
- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúng chuẩn, dễ đọc, dễ hiểu.
Thao tác trên database với SQL Server
Chi tiết về project
Giới thiệu về dự án và tính năng đã thực hiện:
JoyWork là một ứng dụng web được phát triển bằng NET Zero và TypeScript (ReactJS) cho phía khách hàng, cùng với Angular cho phần quản trị Dự án này giúp kết nối nhà tuyển dụng và người tìm việc, đơn giản hóa quá trình tìm kiếm việc làm và ứng viên Ứng dụng ở phía khách hàng bao gồm ba miền chính.
- Client-Nhà tuyển dụng: dùng cho nhà tuyển dụng, hỗ trợ tìm kiếm ứng viên, quản lý thông tin tài khoản.
- Client-Người tìm việc: dùng cho người tìm việc, hỗ trợ tìm kiếm việc làm, quản lý thông tin cá nhân.
- Admin: quản trị quyền hệ thống, quản lý các danh mục dùng chung, quản lý các nghiệp vụ.
Các chức năng và domain chính:
The application is designed for client-side use, featuring a robust routing mechanism that incorporates roles and permissions Additionally, it employs server-side rendering to enhance SEO performance effectively.
Admin: Ứng dụng được sử dụng ở phía admin để cài đặt các phân quyền, duyệt tài khoản, quản lý các danh mục, quản lý các nghiệp vụ.
Chức năng đã thực hiện
Tích hợp Server-side và Abp Library vào React
JoyWork là một dự án tìm kiếm việc làm, vì vậy việc áp dụng SEO là rất cần thiết để kết nối website với người dùng Tuy nhiên, React, là thư viện dùng để phát triển ứng dụng một trang (SPA), gặp nhiều khó khăn trong việc tối ưu hóa SEO Do đó, việc chuyển JoyWork từ React SPA sang Server Side Rendering (SSR) là điều bắt buộc để cải thiện hiệu suất SEO.
Tích hợp được Express và NodeJS để Server Side Rendering React sẽ sử dụng renderToString() và hydrate() để trả về HTML tĩnh cho server được host bởi Express
Tích hợp MobX vào React để quản lý state
Tích hợp MobX vào quản lý State trong React giúp đơn giản hóa việc truyền State và Props giữa các component Thay vì phải thông qua nhiều lớp khác nhau, giờ đây State và Props được lưu trữ trong các Store, được quản lý bởi Global Store, mang lại sự tiện lợi và hiệu quả cho việc phát triển ứng dụng.
Xây dựng được kiến trúc hoàn chỉnh: Các component trong View sẽ truy cập tới cácStore
Chức năng xây dựng request/response:
Utilize Axios to create a service that can send requests and receive responses from the backend, featuring dynamic query strings, the ability to add custom properties to the request headers, and the capability to intercept error responses from the backend.
Có thể Authenticate/Authorize dùng JWT token chèn vào header của request, có thể chặn các lỗi nghiệp vụ từ dưới backend và thông báo cho người dùng.
Chức năng xử lý Form:
Chức năng xử lý Form giúp lưu trữ các trạng thái của Form (Form State), xác thực các trường dữ liệu trong Form (Form validation) và khi submit Form
Cài đặt thư viện React-FinalForm và thư viện xác thực revalidate để xử lý Form như:
Xử lý form đăng nhập
Xử lý form đăng ký
Xử lý form chỉnh sửa thông tin người dùng
Xử lý form chỉnh sửa thông tin tìm việc
Xử lý form chỉnh sửa thông tin học vấn
Chức năng xử lý Form:
Chức năng xử lý Form giúp lưu trữ các trạng thái của Form (Form State), xác thực các trường dữ liệu trong Form (Form validation) và khi submit Form
Cài đặt thư viện React-FinalForm và thư viện xác thực revalidate để xử lý Form như:
- Và sự giúp đỡ tận tình của đội ngũ phát triển P.DA3 thuộc Gsoft
- Hoàn thành các thành phần giao diện cơ bản cho JoyWork.
- Tích hợp thư viện Abp Angular của NET Zero vào React.
- Layout với Header, Footer, thành Navbar, các control phù hợp với Mobile User.
- Chức năng đăng ký/đăng nhập
- Thực hiện toàn bộ các chức năng được
Giai đoạn Sprint tiếp theo:
- Hoàn thành UI cho chức năng.
- Xây dựng React Server Side Rendering
- Tích hợp các thư viện Mobx, Revalidate, FinalForm.
- Viết backend tạo các API.
- Sử dụng các API để hoàn thiện 3 form xử lý thông tin người dùng.
Kết quả : Đã hoàn thành toàn bộ những tính năng trên.
Getting Started – React (reactjs.org)
TypeScript: Typed JavaScript at Any Scale (typescriptlang.org)
For npm, webpack npm | build amazing things (npmjs.com) webpack
For MobX, FinalForm, React Router, RxJs, Razzle
React Final Form (final-form.org)
React Router: Declarative Routing for React.js
RxJS - BLACK LIVES MATTER (rxjs-dev.firebaseapp.com)