1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề tài crm email customer touchpoint

52 7 0

Đ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 đề CRM Email Customer Touchpoint
Người hướng dẫn ThS. Nguyễn Văn Chức
Trường học Trường Đại Học Kinh Tế – Đại Học Đà Nẵng
Chuyên ngành Hệ thống thông tin quản lí
Thể loại báo cáo thực tập nghề nghiệp
Thành phố Đà Nẵng
Định dạng
Số trang 52
Dung lượng 5,14 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Em xin gửi lời cảm ơn đến anh/chị tại phòng Hành chính – Đào tạo, anh/chị mentors trong DG8-Ext TMA Solutions Bình Định đã nhiệt tình giúp đỡ, tạo điều kiện và hỗ trợ em hoàn thành khóa

Trang 1

BÁO CÁO THỰC TẬP NGHỀ NGHIỆP

Đề tài: CRM Email Customer Touchpoint

Ngành : Hệ thống thông tin quản lí Chuyên ngành : Quản trị hệ thống thông tin Đơn vị thực tập : TMA Solutions Bình Định

Vị trí thực tập : Java Back-end Intern Giảng viên hướng dẫn : ThS Nguyễn Văn Chức

TRƯỜNG ĐẠI HỌC KINH TẾ – ĐẠI HỌC ĐÀ NẴNG

KHOA THỐNG KÊ – TIN HỌC

Trang 2

1

MỤC LỤC

NHẬN XÉT CỦA ĐƠN VỊ THỰC TẬP 2

LỜI CẢM ƠN……….4

LỜI CAM ĐOAN 5

LỜI MỞ ĐẦU……….6

I Giới thiệu TMA Solutions Bình Định và Java Back-end Developer 7

II Cơ sở lí thuyết 10

III.Phân tích và thiết kế hệ thống 16

1 Sơ đồ Use Case của hệ thống 16

2 Thiết kế hệ thống 16

2.1 Liệt kê API 16

2.2 Database 17

IV Triển khai đề tài và kết quả đạt được 18

1 Triển khai xây dựng dự án 18

1.1 Cài đặt môi trường 18

1.2 Các công nghệ được sử dụng trong dự án 18

1.3 Tạo project Spring Boot với Spring Initializr 18

1.4 Xây dựng template 19

1.5 Thực hiện viết code 19

2 Kết quả đạt được 43

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 51

Trang 3

2

NHẬN XÉT CỦA ĐƠN VỊ THỰC TẬP

Trang 4

3

Trang 5

4

LỜI CẢM ƠN

Để hoàn thành được kì thực tập nghề nghiệp cũng như báo cáo này, lời đầu tiên em xin được gửi đến quý thầy cô giáo khoa Thống kê – Tin học, trường Đại học Kinh tế – Đại học Đà Nẵng lời cảm ơn sâu sắc

Đặc biệt, em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Văn Chức – giảng viên trực tiếp hướng dẫn em trong kì thực tập vữa qua Thầy đã giúp đỡ và động viên em để em có thể hoàn thiện báo cáo này

Em xin gửi lời cảm ơn đến anh/chị tại phòng Hành chính – Đào tạo, anh/chị mentors trong DG8-Ext TMA Solutions Bình Định đã nhiệt tình giúp đỡ, tạo điều kiện và hỗ trợ em hoàn thành khóa thực tập Batch13BD cũng như là làm quen với môi trường làm việc, cải thiện

và phát triển các kĩ năng cần có của một Java Back-end Developer

Vì kì thực tập còn bị hạn chế về mặt thời gian, khả năng và kiến thức của bản thân em còn nhiều thiếu xót Vậy nên, báo cáo này khó tránh khỏi sai xót, em rất mong nhận được ý kiến nhận xét và đóng góp để bản thân hoàn thiện hơn nữa ở kì thực tập tốt nghiệp

Em xin chân thành cảm ơn!

Trang 6

5

LỜI CAM ĐOAN

Em xin cam đoan báo cáo đề tài “CRM Email Customer Touch Point” là thành quả nghiên cứu trong thời gian thực tập tại TMA Solutions Bình Định dưới sự hướng dẫn nhiệt tình và sự hỗ trợ đến từ anh/chị mentors trong DG8-Ext và giảng viên hướng dẫn – thầy Nguyễn Văn Chức

Nội dung báo cáo này là kết quả mà em đã nỗ lực tìm hiểu, nghiên cứu, học tập trong suốt quá trình thực tập tại công ty, đồng thời học hỏi từ các nguồn tài liệu mà công ty cung cấp Em xin cam đoan và chịu hoàn toàn trách nhiệm nếu có vấn đề xảy ra

Họ và tên sinh viên

Tạ Thị Trang

Trang 7

6

LỜI MỞ ĐẦU

1 Mục tiêu của đề tài

- Customer touch point là cửa sổ tương tác giữa người mua cá nhân và doanh nghiệp Điều này bao gồm bất kì trao đổi nào, dù là trực tiếp hay thông qua các phương tiện kỹ thuật số Email là một customer phổ biến - là kênh hỗ trợ khách hàng chính cho hầu hết các công ty B2B, B2C hoặc Thương mại điện tử 62% khách hàng nói rằng họ thích

hỗ trợ qua email hơn để giao tiếp với các thương hiệu Email ảnh hưởng đến mọi thứ,

từ tỷ lệ mua hàng lặp lại đến giá trị lâu dài đến cách ai đó nói về thương hiệu của bạn một cách riêng tư và công khai Bạn có thể tận dụng sức mạnh và phạm vi tiếp cận của email để thúc đẩy sự tương tác và mang lại trải nghiệm tốt hơn cho khách hàng

- Với các nền tảng phát triển nhanh chóng, các doanh nghiệp liên tục gặp khó khăn trong khi thống nhất các khách hàng tiềm năng Do vậy, mục tiêu của đề tài này chính là dựa trên tính năng quản lí khách hàng của CRM giúp doanh nghiệp có thể quản lí các customer touch point thông qua một nền tảng duy nhất

2 Đối tượng và phạm vi nghiên cứu

Đề tài này được thực hiện với Spring Boot được phát triển từ ngôn ngữ lập trình Java trong

hệ sinh thái Spring framework Các công nghệ khác được sử dụng: PostgreSQL, Swagger

3, Git/Github Từ đó xây dựng lên các API cơ bản của một trang web

3 Kết cấu của đề tài

Đề tài được tổ chức gồm các phần:

• Mở đầu

• Chương 1: Giới thiệu TMA Solutions Bình Định và Java Back-end Developer

• Chương 2: Cơ sở lí thuyết

• Chương 3: Phân tích và thiết kế hệ thống

• Chương 4: Triển khai đề tài và kết quả đạt được

• Kết luận và hướng phát triển

Trang 8

7

I Giới thiệu TMA Solutions Bình Định và Java Back-end Developer

1 TMA Solutions Bình Định

Được thành lập năm 1997, TMA là tập đoàn công nghệ hàng đầu Việt Nam với

4000 kỹ sư và khách hàng là những tập đoàn công nghệ cao hàng đầu thế giới từ 30 quốc gia TMA hiện có 7 chi nhánh tại Việt Nam (6 tại Tp.HCM và 1 ở Tp Quy Nhơn) cùng 6 chi nhánh ở nước ngoài (Mỹ, Úc, Canada, Đức, Nhật, Singapore)

Tháng 6 năm 2018, TMA đã mở chi nhánh tại Bình Định Sau 5 năm, TMA Bình Định đã phát triển nhanh chóng với hơn 600 kỹ sư, trong đó có nhiều kỹ sư đang làm việc tại TP.HCM đã trở về làm việc tại quê hương

Tháng 8 năm 2018, TMA đã khởi công xây dựng Công viên Sáng tạo TMA Bình Định (TMA Innovation Park – TIP) trên 10 hecta tại Thung lũng Sáng tạo Quy Nhơn (Quy Nhon Innovation Park – QNIVY) với vốn đầu tư hàng trăm tỷ đồng

Là trung tâm phần mềm đầu tiên tại Thung lũng Sáng tạo Quy Nhơn, Công viên Sáng tạo TMA mang sứ mệnh trở thành trung tâm phát triển phần mềm và công nghệ cao hàng đầu tại miền Trung, góp phần quan trọng đưa Thung lũng sáng tạo Quy Nhơn trở thành một điểm đến của công nghệ 4.0 tại Việt Nam Công viên Sáng tạo TMA bao gồm Trung tâm Phát triển Phần Mềm, Xưởng Phần mềm, Trung tâm R&D, Trung tâm Khoa học Dữ liệu, Học viện Công Nghệ…với tổng diện tích sử dụng hơn 15,000m2

Với mối quan hệ mật thiết và các chương trình hợp tác chiến lược cùng nhiều Đại học lớn trong khu vực miền Trung – Tây Nguyên như ĐH Quy Nhơn, ĐH Tây Nguyên, ĐH Phú Yên, ĐH Phạm Văn Đồng… Công viên Sáng tạo TMA với môi trường làm việc hiện đại, đạt tiêu chuẩn quốc tế có quy mô hơn 3000 kỹ sư sẽ không chỉ là nơi dành cho sinh viên Miền Trung đến lập nghiệp mà còn là nơi nhân tài miền Trung trên

cả nước hội tụ Thúc đẩy phát triển công nghệ cao, khoa học kỹ thuật – giáo dục và kinh

tế xã hội tại Bình Định và các tỉnh miền Trung

Với sự phát triển vững mạnh 25 năm qua, TMA tự hào nhận được sự tin tưởng của khách hàng là những tập đoàn lớn đến từ 30 quốc gia trên thế giới TMA nhiều năm liền vinh dự được bình chọn trong top doanh nghiệp CNTT Việt Nam, liên tục được

Trang 9

8

vinh danh trong top 10 doanh nghiệp xuất khẩu phần mềm, Top 10 doanh nghiệp Fintech, Top 10 doanh nghiệp AI – IoT…

Đặt yếu tố con người lên hàng đầu, TMA với môi trường làm việc chuyên nghiệp

và thân thiện, luôn nỗ lực tạo ra đời sống văn hóa phong phú, sôi động, để nhân viên TMA luôn cảm thấy thoải mái, xem công ty không chỉ là nơi làm việc, mà còn là nơi

có các hoạt động vui chơi, giải trí đầy thú vị, hấp dẫn

Cùng với đó, TMA còn có rất nhiều phúc lợi hấp dẫn như:

• Lương thưởng cạnh tranh

• Nhiều cơ hội thăng tiến

• Bảo hiểm chăm sóc sức khỏe nhân viên toàn diện với mức bảo hiểm cao

• Hệ thống đào tạo nội bộ với hàng trăm khóa học mỗi năm

• Hàng trăm cơ hội công tác nước ngoài mỗi năm

2 Java Back-end Developer

2.1 Java Back-end Developer làm gì?

Lập trình Java Backend là quá trình sử dụng ngôn ngữ lập trình Java để xây dựng phần mềm đảm nhiệm các chức năng xử lý logic, xử lý dữ liệu và quản lý tài nguyên của một ứng dụng hoặc trang web Java là một trong những ngôn ngữ lập trình phổ biến được sử dụng trong lập trình Backend

Các ứng dụng Java Backend có thể được xây dựng trên các nền tảng như Spring Framework, JavaServer Pages (JSP), Java Servlet và Enterprise JavaBeans (EJBs) Java cung cấp nhiều tính năng và thư viện hỗ trợ phát triển các ứng dụng Web Backend đáp ứng được các yêu cầu về hiệu suất, bảo mật và quản lý tài nguyên

2.2 Những kiến thức và kĩ năng mà một Java Back-end Developer cần có

Trang 10

9

- Kiểm soát phiên bản code 2.2.2 Kĩ năng chuyên sâu về code

- Web frameworks

- Công cụ kiểm thử Java

- Java Enterprise Edition

- DevOps

- Các nguyên tắc của SOLID

- Big Data

2.3 Lộ trình nghề nghiệp của Java Developer

- Junior: Đây là giai đoạn đầu với những vị trí cơ bản Thời kì Junior có thể có kéo dài lên đến thời gian 4 năm với những nhiệm vụ chính là code, đánh giá code, gỡ lỗi và làm các tài liệu kỹ thuật

- Senior: Giai đoạn tiếp theo sau Junior là Senior, khi kinh nghiệm và kiến thức được tích lũy đủ nhiều, nhân viên sẽ được nâng lên vị trí lập trình viên cao cấp, cụ thể hơn là mức độ Senior Ở vị trí senior trách nhiệm của lập trình viên sẽ lớn hơn, đôi khi sẽ kiêm luôn việc hướng dẫn khách hàng sử dụng theo hình thức đào tạo giúp họ hiểu về phần mềm

- Architect: Để đạt được vị trí này, một lập trình viên Java cần phải sở hữu khoảng 10 năm kinh nghiệm làm việc Ở vị trí Architect, nhiệm

vụ liên kết khách hàng của phần mềm và phân tích yêu cầu của họ, từ

đó xây dựng kiến trúc tổng thể hệ thống và chịu trách nhiệm về nó là những gì mà một Architect phải làm Đây là một giai đoạn không hề

dễ dàng

- Manager: Trách nhiệm của một manager là vô cùng lớn Không chỉ quản lý về chuyên môn, manager có trách nhiệm trong việc quản lý tài chính của phòng, cụ thể là ngân sách, quản lý nhân sự, phân phối phần mềm, và làm việc với các cấp quản lý cao hơn

Trang 11

- Platform: Bất cứ môi trường phần cứng hoặc phần mềm nào mà trong

đó có một chương trình chạy, thì được hiểu như là một Platform Với môi trường runtime riêng cho mình (JRE) và API, Java được gọi là Platform

- Ngôn ngữ lập trình Java ban đầu được phát triển bởi Sun Microsystems

do James Gosling khởi xướng và phát hành vào năm 1995 Phiên bản mới nhất của Java Standard Edition là Java SE 8 Với sự tiến bộ của Java

và sự phổ biến rộng rãi của nó, nhiều cấu hình đã được xây dựng để phù hợp với nhiều loại nền tảng khác nhau Ví dụ: J2EE cho các ứng dụng doanh nghiệp, J2ME cho các ứng dụng di động

- Các phiên bản J2 mới đã được đổi tên thành Java SE, Java EE và Java

ME Phương châm của java là "Write Once, Run Anywhere" - viết một lần chạy nhiều nơi, nghĩa là bạn chỉ cần viết một lần trên window chẳng hạn, sau đó vẫn chương trình đó bạn có thể chạy trên Linux, Android, các thiết bị J2ME

b Một số tính năng của Java

- Hướng đối tượng - Trong Java, mọi thứ đều là một Object Java có thể

dễ dàng mở rộng và bảo trì vì nó được xây dựng dựa trên mô hình Object

- Nền tảng độc lập - Không giống nhiều ngôn ngữ lập trình khác bao gồm

cả C và C ++, khi Java được biên dịch, nó không được biên dịch thành ngôn ngữ máy nền tảng cụ thể, thay vào mã byte - nền tảng độc lập Mã byte này được thông dịch bởi máy ảo (JVM) trên nền tảng nào đó mà nó đang chạy

- Đơn giản - Java được thiết kế để dễ học Nếu bạn hiểu khái niệm cơ bản

về OOP Java, sẽ rất dễ để trở thành master về java

Trang 12

và có số lượng người dùng rất cao

- Trong đó, Spring Boot là một dự án phát triển nằm trong hệ sinh thái Spring Framework Spring Boot là một Java framework được phát triển bởi Pivital Team dựa trên Java framework mã nguồn mở để tạo ra các microservice, nhằm mục đích xây dựng các ứng dụng Spring độc lập một cách nhanh chóng và có khả năng thực thi ngay

b Lợi ích của việc sử dụng Spring Boot

- Sở hữu đầy đủ các tính năng của Spring Framework

- Tạo ứng dụng một cách độc lập, có thể chạy trên cả nền tảng Java Web

- Cho phép nhúng trực tiếp các web server như Jetty, Tomcat,… mà không cần phải triển khai các file WAR

- Cung cấp nhiều plugin

- Tối ưu hóa công đoạn cấu hình cho ứng dụng, không sinh ra code cấu hình và nó cũng không yêu cầu người dùng phải cấu hình lại bằng XML

Từ đó, giúp tiết kiệm thời gian viết code và tăng năng suất lao động

- Có thể đóng gói ứng dụng Spring dưới dạng là file JAR và có thể dễ dàng khởi động ứng dụng chỉ với một câu lệnh ngắn gọn, quen thuộc: java – jar,…

- Giảm thiểu thời gian phát triển code, tăng hiệu suất phát triển chung của

Trang 13

12

- JPA là viết tắt của Java Persistence API, nó là một đặc tả Java cho việc ánh xạ giữa các đối tượng Java với cơ sở dữ liệu quan hệ sử dụng công nghệ phổ biến là ORM (Object Relational Mapping)

- JPA cung cấp đầy đủ các công cụ cho phép chúng ta có thể thao tác với

cơ sở dữ liệu một cách đơn giản và nhanh chóng JPA có thể dùng để persist một đối tượng Java (POJO – Plain Old Java Object) vào trong cơ

sở dữ liệu hoặc lấy dữ liệu từ cơ sở dữ liệu và ánh xạ (mapping) ra các đối tượng Java một cách đơn giản

b Lợi ích của việc sử dụng Spring Data JPA

- Đơn giản hóa công nghệ cho tầng persistence (tầng dữ liệu)

- Không phụ thuộc vào các framework ORM

- Có nhiều nhà cung cấp hỗ trợ cài đặt JPA

- Dữ liệu có thể được lưu trữ thông qua việc ORM

4 Spring Security

-Spring Security là một trong những core feature quan trọng của Spring Framework, nó giúp chúng ta phân quyền và xác thực người dùng trước khi cho phép họ truy cập vào các tài nguyên của chúng ta

Hình 1 Luồng xử lí người dùng đăng kí tài khoản mới, đăng nhập và xác thực

Trang 14

có nhiều người dùng đồng thời

b Lợi ích của việc sử dụng PostgreSQL

- Dễ sử dụng

- Cho phép chạy các trang web, ứng dụng web động với LAMP

- Lưu nhật ký đã viết trước đó để sử dụng như một cơ sở dữ liệu với khả năng sửa lỗi tốt

- Có sẵn mã nguồn miễn phí theo giấy phép nguồn mở, cho phép chỉnh sửa và triển khai tùy theo nhu cầu

Trang 15

14

- Có khả năng đối tượng hóa dữ liệu

- Được hỗ trợ bởi một cộng đồng đông đảo và nhiều kinh nghiệm

- Giảm thiểu việc bảo trì hệ thống

và được truyền tải qua HTTP

- API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML

- REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc

dữ liệu, một kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử lý dữ liệu

- RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng web để quản lý các resource RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau

- Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method (như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để quản các resource RESTful không quy định logic code ứng dụng và không giới hạn bởi ngôn ngữ lập trình ứng dụng, bất kỳ ngôn ngữ hoặc framework nào cũng có thể sử dụng để thiết

kế một RESTful API

b Status code

Trang 16

201 Created – Trả về khi một Resouce vừa được tạo thành công

204 No Content – Trả về khi Resource xoá thành công

304 Not Modified – Client có thể sử dụng dữ liệu cache

400 Bad Request – Request không hợp lệ

401 Unauthorized – Request cần có auth

403 Forbidden – bị từ chối không cho phép

404 Not Found – Không tìm thấy resource từ URI

405 Method Not Allowed – Phương thức không cho phép với user hiện tại

410 Gone – Resource không còn tồn tại, Version cũ đã không còn hỗ trợ

415 Unsupported Media Type – Không hỗ trợ kiểu Resource này

422 Unprocessable Entity – Dữ liệu không được xác thực

429 Too Many Requests – Request bị từ chối do bị giới hạn

- Chính vì thế, ta cần phải có 1 công cụ hỗ trợ việc tạo document APIs giúp thuận tiện cho việc cung cấp về cách sử dụng tài nguyên thông qua APIs 1 cách hiệu quả Hôm nay chúng ta sẽ tìm hiểu về 1 công cụ khá nổi tiếng dùng để viết document APIs: Swagger

Trang 17

16

III Phân tích và thiết kế hệ thống

1 Sơ đồ Use Case của hệ thống

Hình 3 Sơ đồ Use case của hệ thống CRM Email Customer Touch Point

2 Thiết kế hệ thống

2.1 Liệt kê API

# HTTP Method Endpoint Descriptions

4 DELETE /user/{id} Delete a user by ID

5 POST /user/create Create a new user

7 GET /customer/paging Paging customer

8 GET /customer/{id} Retrieve a user by ID

Trang 18

17

9 PUT /customer/{id} Update a user by ID

10 DELETE /customer/{id} Delete a user by ID

11 POST /customer/add Add a new user

12 GET /customer/all List all customers

13 POST /template/upload Upload a file

14 GET /template/download Download a file

15 GET /template/paging Paging template

16 POST /email/send Send a simple email to

customer

2.2 Database

2.2.1 User

Tên thuộc tính Kiểu dữ liệu Diễn giải

2.2.2 Roles

Tên thuộc tính Kiểu dữ liệu Diễn giải

2.2.3 userRole

Tên thuộc tính Kiểu dữ liệu Diễn giải

user_id (PK, FK) UUID Mã định danh user role_id (PK, FK) Integer Mã định danh role 2.2.4 Customer

Tên thuộc tính Kiểu dữ liệu Diễn giải

customer

Trang 19

18

2.2.5 Attachment Tên thuộc tính Kiểu dữ liệu Diễn giải

template

physical_path String Địa chỉ lưu trên

server

IV Triển khai đề tài và kết quả đạt được

1 Triển khai xây dựng dự án

1.1 Cài đặt môi trường

- IntelliJ IDEA community 2023.2

- Git & GitHub

1.3 Tạo project Spring Boot với Spring Initializr

Trang 20

19

1.4 Xây dựng template

1.5 Thực hiện viết code

Trang 21

20

Mã nguồn dự án: thcong98/CRM at feature/send-email (github.com)

1.5.1 User Management User Entity

Trang 22

21

Trang 23

22 Erole

Role Entity

Trang 24

23 Role Repository

Trang 25

24 User Repository

User Service

Trang 26

25 User Service Implementation

Ngày đăng: 12/12/2023, 19:43

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w