1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo thực tập intern backend

18 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo cáo thực tập Intern Backend
Tác giả Trần Trọng Hoàng
Người hướng dẫn Tai Tắt Sáng
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Công nghệ phần mềm
Thể loại báo cáo thực tập
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 18
Dung lượng 1,69 MB

Nội dung

Từ những ngày đầu bướcchân vào môi trường thực tập, em đã được trải nghiệm cảm giác mãn nguyện khi đượcđắ immersion trong các dự án thực tế, những công nghệ mới nhất và khám phá nhữngkhí

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP

INTERN BACKEND

Công ty thực tập: Atom Solution

Người phụ trách: Tai Tắt Sáng

Trang 2

LỜI MỞ ĐẦU

Trong thế giới công nghệ ngày nay, việc lựa chọn một vị trí thực tập trong lĩnh vực backend và công nghệ web không chỉ đòi hỏi sự quyết đoán mà còn là một quyết định đầy tiềm năng và hứa hẹn Với sự phát triển không ngừng của internet và ứng dụng web, vai trò của backend đã trở nên cực kỳ quan trọng trong việc xây dựng những ứng dụng mạnh mẽ và đáng tin cậy

Trong báo cáo thực tập này, em muốn chia sẻ với các bạn về quyết định của em khi lựa chọn vị trí intern backend và hành trình thực tập của em Từ những ngày đầu bước chân vào môi trường thực tập, em đã được trải nghiệm cảm giác mãn nguyện khi được

đắ immersion trong các dự án thực tế, những công nghệ mới nhất và khám phá những khía cạnh thú vị của việc phát triển phần mềm

Việc làm việc với backend không chỉ đòi hỏi kiến thức sâu về ngôn ngữ lập trình mà còn yêu cầu khả năng tư duy logic và khả năng giải quyết vấn đề Trong suốt quá trình thực tập, em đã học được cách xây dựng và tối ưu hóa các hệ thống backend, từ việc thiết kế cơ sở dữ liệu cho đến triển khai và quản lý ứng dụng web Em đã được tham gia vào việc phát triển các tính năng mới, tối ưu hiệu suất và khắc phục các lỗi, đồng thời học cách làm việc nhóm và tương tác với các thành viên khác

Qua quá trình này, em đã nhận thấy sự quan trọng của việc kiên trì và sự cống hiến trong công việc Em đã trải qua những thử thách và khó khăn, nhưng đó cũng là những cơ hội để em tiến bộ và phát triển Sự hỗ trợ và sự chỉ dẫn từ các chuyên gia trong ngành đã giúp em nắm bắt được những nguyên tắc quan trọng và phương pháp làm việc hiệu quả

Sau những năm tháng trong môi trường đại học, với mong muốn áp dụng những kiến thức đã học và có được trải nghiệm trong môi trường thực tế, em đã quyết định tham gia vào Atom Solution – một môi trường lý tưởng và chuyên nghiệp để thực hiện dự định

Với sự trưởng thành và những kiến thức mới mẻ, em tin rằng vị trí intern backend đã đóng vai trò quan trọng trong việc xây dựng nền tảng cho sự nghiệp công nghệ của

em Báo cáo thực tập này sẽ trình bày chi tiết về những gì em đã học được, những thành tựu đã đạt được và những kinh nghiệm quý giá trong quá trình thực tập

Trang 3

LỜI CẢM ƠN

Em xin trân trọng gửi lời cảm ơn công ty Atom Solution đã tạo điều kiện cho em cơ hội được thực tập tại công ty Dù trong thời gian ngắn nhưng nhờ sự chỉ dẫn nhiệt tình của anh Tai Tắt Sáng, em đã tiếp thu những kiến thức quan trọng để có thể tham gia một dự án thực tế

Chân thành cảm ơn các anh chị trong team Mango đã bỏ ra nhiều thời gian, công sức

để hướng dẫn, hướng dẫn, giúp đỡ em tận tình trong khi làm quen môi trường mới cũng như trong việc tiếp cận kiến thức công nghệ, kỹ năng lập trình và tư duy sản phẩm để có thể thực hiện tốt dự án cá nhân và dự án thực tế trong thời gian qua

Em 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áo cáo này

TP HCM, ngày 01 tháng 01 năm 2023

Trần Trọng Hoàng

Trang 4

NHẬN XÉT CỦA KHOA

Trang 5

MỤC LỤC

LỜI MỞ ĐẦU 2

LỜI CẢM ƠN 3

NHẬN XÉT CỦA KHOA 4

MỤC LỤC 5

CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 6

1.1 Giới thiệu về công ty Atom Solution 6

1.2 Sản phẩm công ty 6

1.3 Lịch làm việc khi thực tập tại công ty 7

CHƯƠNG 2: NỘI DUNG THỰC TẬP 8

2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 8

2.2 Nghiên cứu kỹ thuật 8

2.2.1 Tuần 1 8

2.2.2 Tuần 2 8

2.3 Thực hiện dự án cá nhân 8

2.3.1 Công nghệ 9

2.3.2 Mô tả dự án 10

2.3.3 Kết quả: 12

2.4 Tham gia dự án thực tế 13

CHƯƠNG 3: TỔNG KẾT 16

3.1 Điểm mạnh 16

3.2 Điểm yếu 16

3.3 Chuẩn đạt được 16

TÀI LIỆU THAM KHẢO 18

Trang 6

CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP

1.1 Giới thiệu về công ty Atom Solution

Hình 1.1 Logo công ty Atom Solution

Về tên gọi:

Tạo hình ảnh về sự tiên phong và sáng tạo: Tên gọi Atom Solution có thể tạo ra hình ảnh về việc công ty đang dẫn đầu trong lĩnh vực công nghệ và có khả năng giải quyết các vấn đề phức tạp Từ "Atom" có thể liên hệ đến việc tạo ra các giải pháp nhỏ gọn

và hiệu quả, trong khi "Solution" thể hiện cam kết của công ty trong việc cung cấp các giải pháp toàn diện cho khách hàng

Quy mô công ty:

51-200 nhân viên

1.2 Sản phẩm công ty

EDC Processor: Cung cấp một nền tảng thanh toán toàn diện cho khách hàng ATOM MDM giúp tương tác dễ dàng giữa thiết bị POS và Merchant/ Merchant Service Provider, còn ATOM Gateway có thể hỗ trợ kết nối giữa ATOMPOS và hệ thống ngân hàng

ATOM Gateway được xây dựng trên một mô hình liên kết với nhiều ngân hàng, ATOM TMS để quản lý và theo dõi giao dịch cũng như thông tin Merchant, thông tin liên quan đến cài đặt cá nhân cho mỗi Merchant , có thể chấp nhận tất cả các loại

Trang 7

E-wallet (như Momo, VNpay ), loyalty E-wallet (như Urbox, Got it ) và BNPL (Buy Now, Pay Later - Mua Ngay, Thanh Toán Sau)

VAM - Virtual Account Management: Hệ thống VAM cung cấp các API, công cụ

quản lý và báo cáo toàn diện để phục vụ quản lý Virtual Account và giao dịch thông qua Virtual Account cho các bên liên quan

Thanh toán thương mại điện tử: ATOM đang hoạt động với 5 phương thức thanh

toán bao gồm: Tiền mặt, VietQR, Ví điện tử, Cross-line POS, Cross-line Card

1.3 Lịch làm việc khi thực tập tại công ty

Em tham gia làm việc tại công ty bắt đầu từ ngày 07/08/2023 tới 31/11/2023(3 tháng), các ngày làm việc trong tuần là từ thứ 2 đến thứ 5 Công việc hằng ngày bắt đầu từ lúc 8h30 đến 17h30 Thời gian nghỉ trưa khoảng 1 tiếng Sau mỗi ngày làm việc em sẽ báo cáo tiến độ công việc trong ngày, đặt câu hỏi và nhận chia sẻ, giải đáp từ anh hướng dẫn, đặt mục tiêu cho ngày làm việc tiếp theo Mỗi tuần sẽ họp tiến độ tuần 1 lần vào sáng thứ 4, mọi người sẽ cùng họp và bàn bạc về các vấn đề đã giải quyết, tồn đọng, bài học, giải pháp và mục tiêu cho tuần tiếp theo

Trang 8

CHƯƠNG 2: NỘI DUNG THỰC TẬP

2.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, 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, 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, các phòng ban về IT, HR, … Ngoài ra, thực tập sinh còn được giới thiệu về văn hóa làm việc trong công ty như thời gian đi làm, các quy định, cách sử dụng email trong công việc, cách trả lời gmail …

Kết quả: hiểu thêm về văn hoá công ty atom solution, 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.2 Nghiên cứu kỹ thuật

2.2.1 Tuần 1

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ư gitlab - sử dụng trong việc lưu trữ mã nguồn của dự án, python - là một ngôn ngữ lập trình mạnh mẽ, dễ học và dễ đọc, docker - một nền tảng mã nguồn mở được sử dụng

để xây dựng, postgres - một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở và mạnh

mẽ, …

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ụ, biết cách kết hợp các công cụ với nhau để

làm việc

2.2.2 Tuần 2

Nội dung: Tìm hiểu, làm quen với server và hệ thống

Trong thời gian này, supervisor đã hướng dẫn em cơ bản về cách deploy các service lên một server aws, cách check log, cách debug code, …, cùng với đó là kiến trúc microservice, đây là kiến trúc mà công ty áp dụng cho các sản phẩm của mỉnh

Kết quả: Hiểu rõ hơn về quy trình deploy một sản phẩm lên cloud, hiểu được cách

thức giao tiếp, lợi ích, cũng như cách áp dụng kiến trúc microservice

2.3 Thực hiện dự án cá nhân

Sau một khoảng nửa tháng được tranning và thực hành, em đã nắm được những kiến thức cơ bản về python, gitlab, docker, postgres Trong nửa tháng tiếp theo, trainer đã

Trang 9

hướng đẫn em áp dụng những kiến thức đã học để thực hiện một dự án áp dụng

microservice bằng ngôn ngữ python, và deploy project lên server, chi tiết sẽ được mô

tả ở phần dưới

2.3.1 Công nghệ

Product bao gồm những công nghệ sau:

1 Python: Ngôn ngữ chính của dự án

2 FastAPI: một framework web Python hiệu suất cao và dễ sử dụng để xây dựng các API (Application Programming Interface) RESTful Nó được thiết kế để cung cấp tốc độ xử lý nhanh, hiệu suất cao và sự dễ dàng trong việc phát triển ứng dụng web

3 SQLAlchemy: một thư viện Python mạnh mẽ và linh hoạt giúp tương tác và làm việc với cơ sở dữ liệu quan hệ Nó cung cấp một cách tiếp cận ORM (Object-Relational Mapping) cho phép bạn làm việc với cơ sở dữ liệu bằng cách sử dụng đối tượng Python thay vì viết trực tiếp các truy vấn SQL

4 Postgres: Database được sử dụng trong project

5 Redis: hệ thống cơ sở dữ liệu mã nguồn mở và cấu trúc dữ liệu in-memory, được thiết kế để lưu trữ và truy xuất dữ liệu từ bộ nhớ chính, giúp tăng tốc độ truy vấn và xử lý, ở trong project này, redis được sử dụng để làm task queue cho worker ở service khác thực hiện task

6 Celery: Celery là một hệ thống phân tán và bất đồng bộ cho xử lý tác vụ (task processing) trong ứng dụng Python Nó cho phép bạn chia nhỏ các công việc phức tạp thành các tác vụ nhỏ hơn và thực hiện chúng một cách đồng thời và bất đồng bộ trên nhiều worker, trong project celery sẽ có nhiệm vụ send task lên redis queue

7 Alembic: là một công cụ quản lý phiên bản (version control) cho các cơ sở dữ liệu trong môi trường phát triển ứng dụng web Nó được sử dụng chủ yếu trong các dự án Python để quản lý và tự động hóa việc thay đổi cơ sở dữ liệu theo thời gian như: migration, đồng bộ hóa cơ sở dữ liệu, đảm bảo an toàn và phục hồi

Trang 10

9 Docker-compose: là một công cụ dùng để định nghĩa và quản lý các ứng dụng đa-container trong Docker Nó cho phép bạn xác định cấu hình của một ứng dụng, bao gồm các dịch vụ, mạng, và các thiết lập khác, trong một tệp tin YAML duy nhất

10 Postman: Postman là một ứng dụng phát triển API (Application Programming Interface) và kiểm thử API Nó cho phép các nhà phát triển tạo, gửi và nhận các yêu cầu HTTP và HTTPS, xem và quản lý các phản hồi từ máy chủ Postman cung cấp một giao diện người dùng đồ họa dễ sử dụng để tạo các yêu cầu API, xác minh và kiểm tra các phản hồi, và thực hiện các tác vụ liên quan đến phát triển và kiểm thử API

11 GitLab: Nơi lưu trữ source code của project

12 Server AWS: Nơi deploy project

2.3.2 Mô tả dự án

a) Giới thiệu về project:

Hệ thống tạo ticket là một ứng dụng cho phép người dùng gửi yêu cầu hoặc vấn

đề cụ thể và theo dõi trạng thái của chúng Nó lưu trữ thông tin ticket trong cơ

sở dữ liệu, cung cấp chức năng quản lý, gửi thông báo và tạo báo cáo Mục tiêu

là cung cấp một phương tiện thuận tiện để quản lý và giải quyết yêu cầu từ người dùng hoặc khách hàng Cụ thể hệ thống sẽ:

- Lưu trữ ticket: Thông tin về ticket được lưu trữ trong cơ sở dữ liệu mỗi khi

có form submit gửi từ phía khách hàng lên server Mỗi ticket được gán một

số duy nhất hoặc mã xác định để xác định và truy xuất dễ dàng

- Quản lý ticket: Hệ thống cung cấp các tính năng quản lý ticket để xử lý và theo dõi trạng thái của chúng Điều này có thể bao gồm chức năng như gán ticket cho người xử lý, thay đổi trạng thái ticket (như "mới", "đang xử lý",

"hoàn thành"), và ghi lại lịch sử xử lý

- Gửi thông báo: Hệ thống có thể gửi thông báo gmail tới các bên liên quan khi có ticket bị quá hạn thời gian chờ mà chưa được xử lý, cùng với đó sẽ gửi thông thông qua gmail cho khách hàng khi ticket ở trạng thái “hoàn thành”

Trang 11

Hình 2.1 Sơ đồ hoạt động của chứ năng

b) Mô tả kiến trúc project

Project sẽ có 2 service, 1 server api và 1 worker, server api sẽ gửi task kèm data lên redis task queue, và woker sẽ có trách nhiệm lấy task đó và thực hiện nhiệm

vụ gửi mail của mình

Trang 12

c) Source code project

2.3.3 Kết quả:

Đã hoàn thành được các tính năng trên và deploy vào một cloud server aws để thử nghiệm hệ thống, trừ việc có một giao diện để gửi form ticket, đây là service backend nên form-data thử nghiệm được gửi lên từ postman

Deploy service lên server.

Trang 13

Email thông báo ticket quá hạn xử lý được gửi về

Em đã tham gia và đảm nhận một vài công việc trong một dự án thực tế trong khoảng thời gian 1 tháng, vì dự án có tính báo mật nên em xin phép được mô tả khái quát về dự án

Quá trình thực hiện:

Trong dự án em được phân công tích hợp thanh toán online trong môi trường card test với ngân hàng Sacombank (STB)

Chức năng thanh toán này được thiết kế theo kiến trúc microservice, với mỗi service đảm nhận một trách nhiệm khác nhau:

1 Service widget: Đây là service frontend để người dùng lựa chọn phương thức thanh toán và sau đó submit đơn hàng cần thanh toán

2 Service checkout: Đây là service để lấy phương thức thanh toán từ database trả

về cho frondend

3 Service signature: Đây là service để tạo ra signature cho đơn hàng, lưu đơn hàng vào database với secret key được STB cung cấp, nếu đúng thì sẽ tạo ra được một url trả về cho client

4 Service callback: Cập nhật thông tin đơn hàng trong database, trạng thái đơn

Trang 14

Source code dự án

Các service được deploy trên server AWS.

Về cơ bản các service này phục vụ cho mục đích thanh toán, lưu trữ thông đơn hàng được thanh toán bằng hệ thống thanh toán của STB

Trang 15

Thuận lợi:

Được trainer hướng dẫn tận tình, được tiếp xúc với những tài nguyên công nghệ mới,

bổ sung được rất nhiều kỹ năng, kiến thức cả về chuyên môn lẫn trong làm việc nhóm

Khó khăn:

Vì lần đầu tham gia vào dự án thực tế nên bản thân em không tránh khỏi những sai lầm như: code không clean, phải làm quen với những công nghệ, kiến thức mới trong khoảng thời gian hữu hạn

Trang 16

CHƯƠNG 3: TỔNG KẾT

Quãng thời gian thực tập tại Atom Solution đã giúp em cải thiện bản thân rất nhiều trong quy trình làm việc thực tế, tác phong của người kỹ sư phần mềm Được làm việc tại đây, em đã học thêm được kỹ năng mềm sử dụng mail, quản lý ticket, làm việc nhóm, giao tiếp với cấp trên

Chỉ trong thời gian hạn chế, em đã hoàn thành dự án cá nhân trong quá trình training với các tính năng, yêu cầu đặt ra ban đầu

Khi tham gia vào dự án thực tế, em cũng hoàn thành tốt các tác vụ đúng hạn và đạt chất lượng tốt

3.1 Điểm mạnh

- Kiến thức vững vàng về ngôn ngữ lập trình: Em đã có kiến thức về ngôn ngữ lập trình backend như Python, hoặc Node.js Điều này giúp em dễ dàng hiểu

và triển khai các tính năng phức tạp trong dự án

- Kỹ năng phân tích và thiết kế hệ thống: Em có khả năng phân tích yêu cầu, xác định các thành phần chính và thiết kế hệ thống chặt chẽ Em có thể xác định cách tốt nhất để triển khai các tính năng mới mà không làm ảnh hưởng đến hệ thống hiện có

- Kinh nghiệm với cơ sở dữ liệu: Em đã có kinh nghiệm làm việc với các hệ quản trị cơ sở dữ liệu như PostgreSQL, MongoDB, Redis

- Kỹ năng tư duy logic và giải quyết vấn đề: Em có khả năng phân tích vấn đề một cách logic và tìm ra giải pháp hiệu quả Em có thể tìm ra lỗi và sửa chúng một cách nhanh chóng trong quá trình phát triển và kiểm thử

3.2 Điểm yếu

- Kinh nghiệm thực tế hạn chế: Em còn là sinh viên và chưa có kinh nghiệm làm việc thực tế trong lĩnh vực backend Điều này có thể khiến em gặp khó khăn trong việc áp dụng kiến thức vào công việc thực tế

- Thiếu kỹ năng làm việc nhóm: Do ít kinh nghiệm thực tế, em có thể gặp khó khăn trong việc làm việc nhóm và tương tác với các thành viên khác trong dự

án Tuy nhiên, em đang nỗ lực để cải thiện kỹ năng này

- Khả năng quản lý thời gian: Trong quá trình thực tập, em có thể gặp khó khăn trong việc quản lý thời gian và ưu tiên công việc Tuy nhiên, em đã nhận ra điều này và đang học cách tổ chức công việc một cách hiệu quả

3.3 Chuẩn đạt được

Goal Mục tiêu môn học

G1 Nắm bắt được xu hướng, tính đặc thù của công việc cũng như của doanh

Ngày đăng: 15/05/2024, 09:09

w