Tải bản đầy đủ (.doc) (33 trang)

NGHIÊN cứu, xây DỰNG PHẦN mền QUẢN lý NHÂN sự TRÊN ANDROID báo cáo THỰC tập DOANH NGHIỆP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.25 MB, 33 trang )

Báo Cáo Thực Tập

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
--------------------------------

NGHIÊN CỨU, XÂY DỰNG PHẦN MỀN QUẢN LÝ
NHÂN SỰ TRÊN ANDROID

BÁO CÁO THỰC TẬP DOANH NGHIỆP
GVHD: VÕ ĐỖ THẮNG
SVTH : LỘC VĂN TIẾN
MSSV: 10520298
LỚP: KTMT2010

Thành phố Hồ Chí Minh – Năm 2014

SVTH: Lộc Văn Tiến

Trang 1


Báo Cáo Thực Tập

LỜI CẢM ƠN
Sau khoảng ba tháng thực tập tại ATHENA em đã hoàn thành Báo cáo thực tập, vẫn
đang là những sinh viên chưa tốt nghiệp nên em khơng có điều kiện tiếp xúc nhiều với
thực tiễn, vẫn chưa có nhiều kinh nghiệm làm việc thực tiễn nhưng trong thời gian tiếp
cận thực tế đã giúp em hiểu sâu hơn về kiến thức đã học ở trường và đồng thời bổ sung
thêm những kiến thức mà em chưa được học, đó là hành trang vơ cùng q báu cho em
khi rời ghế nhà trường cũng như công việc tương lai.


Để hoàn thành đợt thực tập này, em đã nhận được sự giúp đỡ tận tình của Trung
tâm ATHENA, cùng nhiều người khác. Nhờ đó, em đã tiếp thu được nhiều kiến thức và
kinh nghiệm thực tế. Em xin gủi lời cảm ơn chân thành đến :
 Trung tâm ATHENA đã tạo điều kiện cho em thực tập.
 Thầy Võ Đỗ Thắng đã trực tiếp hướng dẫn em trong q trình thực tập.
 Tồn thể nhân viên trong ATHENA đã ln nhiệt tình giúp đỡ, cũng như tạo một
mơi mơi trường làm việc rất thân thiện.
Trong q trình thực tập chắc chắn không tránh khỏi những sai lầm, thiếu sót rất
mong các Thầy bỏ qua. Kính mong Trung tâm ATHENA và thầy cơ đóng góp ý kiến để
sau khi tốt nghiệp em có thể hồn thiện bản thân và trở thành người có năng lực hơn.
Xin chân thành cảm ơn!
Sinh viên thực hiện
Lộc Văn Tiến

SVTH: Lộc Văn Tiến

Trang 2


Báo Cáo Thực Tập

ĐÁNH GIÁ KẾT QUẢ THỰC TẬP CỦA GVHD
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................

..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
TP. HCM, ngày … tháng … năm ……….
Giảng viên hướng dẫn
(Ký và ghi rõ họ tên)

PHỤ LỤC
SVTH: Lộc Văn Tiến

Trang 3


Báo Cáo Thực Tập
LỜI CẢM ƠN................................................................................................................... 2
Sau khoảng ba tháng thực tập tại ATHENA em đã hoàn thành Báo cáo thực tập,
vẫn đang là những sinh viên chưa tốt nghiệp nên em khơng có điều kiện tiếp xúc
nhiều với thực tiễn, vẫn chưa có nhiều kinh nghiệm làm việc thực tiễn nhưng trong
thời gian tiếp cận thực tế đã giúp em hiểu sâu hơn về kiến thức đã học ở trường và

đồng thời bổ sung thêm những kiến thức mà em chưa được học, đó là hành trang vơ
cùng q báu cho em khi rời ghế nhà trường cũng như công việc tương lai...............2
ĐÁNH GIÁ KẾT QUẢ THỰC TẬP CỦA GVHD........................................................3
PHỤ LỤC.......................................................................................................................... 3
I.LỊCH LÀM VIỆC TẠI NƠI THỰC TẬP....................................................................5
II. GIỚI THIỆU TRUNG TÂM ATHENA....................................................................5
III.NỘI DUNG NHIỆM VỤ CHÍNH ĐƯỢC GIAO TẠI ATHENA............................6
IV.NỘI DUNG CÁC CÔNG VIỆC VÀ KẾT QUẢ ĐẠT ĐƯỢC.................................7
CHƯƠNG I:

KHẢO SÁT HỆ THỐNG........................................................................................................7

CHƯƠNG II: PHÂN TÍCH VÀ THIẾT KẾ MƠ HÌNH CƠ SỞ DỮ LIỆU..............................................................8
CHƯƠNG III: XÂY DỰNG CƠ SỞ DỮ LIỆU................................................................................................13
CHƯƠNG IV: GIỚI THIỆU PHƯƠNG THỨC KẾT NỐI VỚI DATABASE........................................................17

CHƯƠNG V: KIẾN TRÚC HỆ THỐNG VÀ DEMO CHƯƠNG TRÌNH................25
I.Kiến trúc hệ thống chương trình trên Android:....................................................................................25
II.Demo Chương Trình............................................................................................................................27
KẾT QUẢ ĐẠT ĐƯỢC QUA THỰC TẬP ....................................................................................................32
1.Những kiến thức lý thuyết đã được củng cố:......................................................................................32
2.Những kỹ năng thực hành đã được học thêm:....................................................................................32
3.Những kinh nghiệm thực tiễn đã tích lũy được:..................................................................................33

V. TÀI LIỆU THAM KHẢO.........................................................................................33

SVTH: Lộc Văn Tiến

Trang 4



Báo Cáo Thực Tập

I.

LỊCH LÀM VIỆC TẠI NƠI THỰC TẬP

1. Đơn vị thực tập : TRUNG TÂM ĐÀO TẠO QUẢN TRỊ MẠNG & AN NINH
MẠNG QUỐC TẾ ATHENA
2. Người hướng dẫn: Thầy Võ Đỗ Thắng (Giám Đốc Trung Tâm ATHENA)
3. Sinh viên: Lộc Văn Tiến

MSSV: 10520298

Khoa: KTMT2010

Lịch thực tập:
- Thứ 3 hàng tuần từ 10h00 am - 14h00 pm
- Thứ 4 và thứ 5 hàng tuần từ 17h00 pm – 20h00 pm

II.

GIỚI THIỆU TRUNG TÂM ATHENA

Trung Tâm Đào Tạo Quản Trị Mạng & An Ninh Mạng Quốc Tế ATHENA được
thành lập từ năm 2004, là một tổ chức qui tụ nhiều trí thức trẻ Việt Nam đầy năng động,
nhiệt huyết và kinh nghiệm trong lãnh vực CNTT, với tâm huyết góp phần vào cơng cuộc
thúc đẩy tiến trình đưa cơng nghệ thơng tin là ngành kinh tế mũi nhọn, góp phần phát
triển nước nhà.
Lĩnh vực hoạt động chính:

Trung tâm ATHENA đã và đang tập trung chủ yếu vào đào tạo chuyên sâu quản
trị mạng, an ninh mạng, thương mại điện tử theo các tiêu chuẩn quốc tế của các hãng nổi
tiếng như Microsoft, Cisco, Oracle, Linux LPI , CEH,... Song song đó, trung tâm
ATHENA cịn có những chương trình đào tạo cao cấp dành riêng theo đơn đặt hàng của
các đơn vị như Bộ Quốc Phịng, Bộ Cơng An , ngân hàng, doanh nghiệp, các cơ quan
chính phủ, tổ chức tài chính..
+

Sau gần 10 năm hoạt động,nhiều học viên tốt nghiệp trung tâm ATHENA đã là

chuyên gia đảm nhận công tác quản lý hệ thống mạng, an ninh mạng cho nhiều bộ ngành
như Cục Công Nghệ Thông Tin - Bộ Quốc Phịng , Bộ Cơng An, Sở Thơng Tin Truyền
Thơng

các

tỉnh,

bưu

điện

các

tỉnh,.,....

+ Ngồi chương trình đào tạo, Trung tâm ATHENA cịn có nhiều chương trình hợp tác
và trao đổi cơng nghệ với nhiều đại học lớn như đại học Bách Khoa Thành Phố Hồ Chí
SVTH: Lộc Văn Tiến


Trang 5


Báo Cáo Thực Tập
Minh, Học Viện An Ninh Nhân Dân( Thủ Đức), Học Viện Bưu Chính Viễn Thơng, Hiệp
hội an tồn thơng tin (VNISA), Viện Kỹ Thuật Qn Sự ,......
Đội ngũ giảng viên :
+ Tất cả các giảng viên trung tâm ATHENA có đều tốt nghiệp từ các trường đại học hàng
đầu trong nước .... Tất cả giảng viên ATHENA đều phải có các chứng chỉ quốc tế như
MCSA, MCSE, CCNA, CCNP, Security+, CEH,có bằng sư phạm Quốc tế (Microsoft
Certified Trainer).Đây là các chứng chỉ chuyên môn bắt buộc để đủ điều kiện tham gia
giảng dạy tại trung tâm ATHENA
+ Bên cạnh đó,Các giảng viên ATHENA thường đi tu nghiệp và cập nhật kiến thức công
nghệ mới từ các nước tiên tiến như Mỹ , Pháp, Hà Lan, Singapore,... và truyền đạt các
cơng nghệ mới này trong các chương trình đào tạo tại trung tâm ATHENA.
Dịch vụ hỗ trợ:
+ Đảm bảo việc làm cho học viên tốt nghiệp khoá dài hạn
+ Giới thiệu việc làm cho mọi học viên
+ Thực tập có lương cho học viên khá giỏi
+ Ngồi giờ học chính thức, học viên được thực hành thêm miễn phí, khơng giới hạn thời
gian.
+ Hỗ trợ kỹ thuật khơng thời hạn trong tất cả các lĩnh vực liên quan đến máy tính, mạng
máy tính, bảo mật mạng
+ Hỗ trợ thi Chứng chỉ Quốc tế.

III.

NỘI DUNG NHIỆM VỤ CHÍNH ĐƯỢC GIAO TẠI
ATHENA


1. Nghiên cứu mơ hình ERD, thiết kế Database cho hệ thống quản lý nhân sự.
2. Nghiên cứu, cài đặt Android,cài đặt máy ảo giả lập, các công cụ hỗ trợ xây
dựng hệ thống quản lý nhân sự.
3. Xây dựng hệ thống, nghiên cứu và sử dụng thuật toán JSON kết nối database
 Sử dụng phpMyAdmin để tạo cơ sở dữ liệu cho chương trình.
SVTH: Lộc Văn Tiến

Trang 6


Báo Cáo Thực Tập
 Phương thức json kết nối database
 Web sercive
4. Tạo report – báo cáo kết quả làm được hàng tuần

IV.

NỘI DUNG CÁC CÔNG VIỆC VÀ KẾT QUẢ ĐẠT ĐƯỢC
CHƯƠNG I:

KHẢO SÁT HỆ THỐNG

1. Tổng quan về hệ thống quản lý
Quản lý là cách biểu hiện một ý chí muốn biến đổi và thuần phục một tổng thể các
hiện tượng. Đó là việc tạo ra các sự kiện, thay vì để cho các sự kiện xảy ra bộc phát. Đây
không phải là sự lắp ráp các nhiệm vụ rời rạc mà là hoạt động phân biệt rõ ràng với các
chức năng khác của tổ chức.
2. Chức năng và nhiệm vụ của hệ thống quản lý nhân sự
Hệ thống quản lý nhân sự có chức năng thường xun thơng báo cho ban lãnh đạo về
các mặt công tác: tổ chức lao động, tiền lương... cho nhân viên, hệ thống này được đặt

dưới sự chỉ đạo trực tiếp của giám đốc.
Với chức năng như vậy, hệ thống quản lý nhân sự có nhiệm vụ ln cập nhật hồ sơ
cán bộ công nhân viên theo quy định, thường xuyên bổ xung những thơng tin thay đổi
trong q trình cơng tác của cán bộ công nhân viên, việc theo dõi và quản lý lao động để
thanh toán lương cũng là nhiệm vụ quan trọng của hệ thống.
Ngồi ra, cơng tác thống kê báo cáo tình hình theo yêu cầu của ban giám đốc cũng là
nhiệm vụ không thể thiếu trong hệ thống quản lý cán bộ .
3. Yêu cầu của hệ thống và những khó khăn
Trước một khối lượng lớn nhân viên cũng như các yêu cầu đặt ra thì việc quản lý
theo phương pháp thủ công sẽ không thể đáp ứng được, do đó gặp rất nhiều khó khăn. Nó
địi hỏi phải có nhiều nhân lực, nhiều thời gian và cơng sức, mỗi nhân sự của cơ quan thì
SVTH: Lộc Văn Tiến

Trang 7


Báo Cáo Thực Tập
có một hồ sơ cho nên việc lưu trữ, tìm kiếm, bổ sung, sửa đổi để đáp ứng yêu cầu không
phải là dễ dàng.
Từ những nhược điểm trên ta thấy cần thiết phải có một hệ thống tin học hoá cho
việc quản lý nhân sự cũng như các hệ thống quản lý khác.
4. Những yêu cầu đặt ra đối với hệ thống
Cùng với sự phát triển của xã hội, công tác tổ chức quản lý cũng cần được đầu tư và
phát triển để có thể đáp ứng tốt đuợc yêu cầu cũng như giúp cấp lãnh đạo thực hiện tốt
các chủ trương chính sách đối với cán bộ công nhân viên chức.
Trước hết để quản lý được một khối lượng nhân viên của một cơ quan, phải tổ chức
tốt hệ thống lưu trữ hồ sơ để có thể đáp ứng được những yêu cầu: tiết kiệm tài ngun, dễ
tìm kiếm, dễ bổ xung sửa đổi. Ngồi ra hệ thống mới phải có khả năng phát hiện lỗi và xử
lý kiểm tra tính đúng đắn của dữ liệu ngay từ khi cập nhật.


CHƯƠNG II: PHÂN TÍCH VÀ THIẾT KẾ MƠ HÌNH CƠ SỞ DỮ LIỆU
1. Các chức năng cơ bản của hệ thống
Qua q trình nghiên cứu, nhóm đã xây dựng được một hệ cơ sở dữ liệu quản lý nhân
sự cơ bản đáp ứng được một số yêu cầu của các doanh nghiệp như sau:
- Quản lý thông tin nhân sự bao gồm đầy đủ, chi tiết về nhân sự trong doanh nghiệp
- Theo dõi, cập nhật thường xun thơng tin nhân sự, phịng ban, tổ đội trong doanh
nghiệp
- Tính lương cho nhân viên theo cơng thức có sẵn hoặc cơng thức do người sử dụng
tự cập nhật vào, các chế độ đãi ngộ tương ứng.
- Quản lý các thông tin liên quan tới việc tuyển dụng nhân sự mới trong doanh
nghiệp
- Trả hồ sơ cho nhân viên khi chấm dứt hợp đồng lao động.

SVTH: Lộc Văn Tiến

Trang 8


Báo Cáo Thực Tập

QUẢN LÝ NHÂN SỰ

Biểu đồ phân cấp chức năng của hệ quản lý nhân sự
2. Xây dựng mơ hình ERD về hệ thống quản lý nhân sự
Các thực thể và thuộc tính tương ứng:
a.NHANVIEN (MaNV, HoTen, GioiTinh, NgaySinh, DanToc, QueQuan, SoDienThoai,
MaPB, MaCV, MaTDHV, BACLUONG)
b.PHONGBAN (MaPB, TenPhongBan, SoDienThoai)
c.CHUCVU (MaCV, TenCV)
d.TDHV (MaTDHV, TenTrinhDo)

e.LUONG (BacLuong, LuongCoban, HesoLuong, HesoPhucap)
f.TGCT(MaNV, MaCV, NgayNhamChuc)
g.THONGBAO(MaTB, ThongBao, MaPB, ThoiGian)
SVTH: Lộc Văn Tiến

Trang 9


Báo Cáo Thực Tập

Mơ hình ERD trong quản lý nhân sự
3. Xây dựng mơ hình cơ sở dữ liệu
Thiết kế các file dữ liệu
3.1.1 Bảng NHAN VIEN lưu trữ thông tin về các nhân viên của công ty đang
trong hiệu lực của hợp đồng
STT

Tên trường

Kiểu

Độ rộng

Giải thích

1

MaNV

Text


10

Mã nhân viên

2

HoTen

Text

30

Họ và tên nhân viên

3

NgaySinh

Date/Time

10

Ngày sinh

4

QueQuan

Text


20

Quê quán

5

GioiTinh

Text

5

Giới tính

SVTH: Lộc Văn Tiến

Trang 10


Báo Cáo Thực Tập
6

DanToc

Text

20

Dân tộc


7

SoDienthoai

Number

20

Số điện thoại liên lạc

8

MaPB

Text

15

Mã phòng ban

9

MaCV

Text

15

Mã chức vụ


10

MaTDVH

Text

15

Mã trình độ văn hóa

11

BacLuong

Number

10

Bậc lương

3.1.2 Bảng PHONG BAN lưu trữ các thông tin về nhiệm vụ của các phòng ban
trong tổ chức doanh nghiệp
Stt Tên trường

Kiểu Độ rộng Giải thích

1

MaPB


Text

10

Mã phịng ban

2

TenPB

Text

30

Tên phịng ban

3

SoDienthoaiP

Text

20

Số điện thoại phịng ban

B

3.1.3 Bảng CHUC VU quản lý các chức danh hiện có của kết cấu tổ chức trong

doanh nghiệp
Stt Tên trường Kiểu Độ rộng Giải thích
1

MaCV

Text

10

Mã chức vụ

2

TenCV

Text

20

Tên chức vụ

SVTH: Lộc Văn Tiến

Trang 11


Báo Cáo Thực Tập

3.1.4 Bảng TDHV (trình độ học vấn) quản lý các trình độ chun mơn đã đạt

được của nhân viên cho tới thời điểm hiện tại
Stt Tên trường Kiểu Độ rộng Giải thích
1

MaTDHV

Text

10

Mã trình độ học vấn

2

TenTrinhD

Text

20

Tên trình độ học vấn

o

3.1.5
nghiệp

Bảng LUONG lưu trữ thông tin về hệ số lương và các phụ cấp của doanh
Stt Tên trường


Kiểu

Độ rộng Giải thích

1

Numbe

10

Bậc lương

20

Lương cơ bản

10

Hệ số lương

10

Hệ số phụ cấp

BacLuong

r
2

Numbe


n
3

LuongCoba

r

HesoLuong

Numbe
r

4

HesoPhucap

Numbe
r

3.1.6 Bảng TGCT (thời gian công tác) dùng để lưu trữ thời gian bắt đầu đảm
nhiệm chức vụ của mỗi nhân viên
Stt Tên trường
SVTH: Lộc Văn Tiến

Kiểu
Trang 12

Độ rộng Giải thích



Báo Cáo Thực Tập
1

Text

10

Mã nhân viên

2

MaCV

Text

10

Mã chức vụ

3

3.1.7

MaNV

NgayNhamChuc Date/Time 20

Ngày nhậm chức


Bảng THONGBAO dùng để thơng báo cho các phịng ban.

Stt Tên trường

Kiểu

Độ rộng Giải thích

1

MaTB

Text

15

Mã thơng báo

2

ThongBao

Text

300

Thơng báo

3


MaPB

Text

10

Mã phịng ban

4

NgayThongBa

Date/Time 20

o

Ngày nhận thông
báo

CHƯƠNG III: XÂY DỰNG CƠ SỞ DỮ LIỆU
1. Hệ cơ sở dữ liệu
Cơ sở dữ liệu là một kho chứ thơng tin, có nhiều loại cơ sở dữ liệu, trong đó phổ biến
nhất hiện nay chính là cơ sở dữ liệu quan hệ.
Một cơ sở dữ liệu quan hệ:
- Chứa dữ liệu trong các bảng, được cấu tạo bởi các dòng (mẫu tin) và các cột
(trường)
- Cho phép lấy về (truy vấn) các tập hợp dữ liệu con từ các bảng.
- Cho phép nối các bảng lại với nhau cho mục đích truy cập các mẫu tin liên quan
với nhau chứa trong các bảng khác nhau.
Bộ máy cơ sở dữ liệu: Chức năng cơ bản của một cơ sở dữ liệu được cung cấp bởi

một bộ máy cơ sở dữ liệu, là hệ thống quản lý cách thức chứa và trả về dữ liệu.
Bảng và trường: Các cơ sở dữ liệu được cấu tạo từ các bảng dùng thể hiện các phân
nhóm dữ liệu. Bảng chứa các mẫu tin là các mẫu dữ liệu riêng rẽ bên trong phân nhóm dữ
SVTH: Lộc Văn Tiến
Trang 13


Báo Cáo Thực Tập
liệu. Mẫu tin chứa các trường, mỗi trường thể hiện một bộ phận dữ liệu trong một mẫu
tin.
RecordSet: Khi tạo bảng cần nắm được cách thao tác với các bảng. Thao tác với các
bảng liên quan đến việc nhập và lấy về dữ liệu từ các bảng khác cũng như việc kiểm tra
và sữa đổi cấu trúc bảng. Thao tác dữ liệu trong một bảng ta dùng Recordset. RecordSet
là một cấu trúc dữ liệu thể hiện một tập hợp con các mẫu tin lấy về từ cơ sở dữ liệu.
Khóa chính: Một trường được chỉ ra là khóa chính của bảng phục vụ cho việc xác
định duy nhất các thuộc tính
Khóa ngoại: Là khóa trong bảng liên quan chứa bản sao của khóa chính của bản chính
Mối quan hệ: là một cách định nghĩa chính thức hai bảng liên hệ với nhau như thế nào.
Khi định nghĩa một mối quan hệ, tức đã thông báo với bộ máy CSDL rằng hai trường
trong hai bảng liên quan được nối với nhau. Hai trường liên quan với nhau trong một mối
quan hệ là khóa chính và khóa ngoại.
Ngồi việc ghép các mẫu tin liên quan trong những bảng riêng biệt, mối quan hệ cịn
tận dụng thế mạnh của tính tồn vẹn tham chiếu, một thuộc tính của bộ máy CSDL duy trì
các dữ liệu trong một CSDL nhiều bảng ln ln nhất qn. Khi tính tồn vẹn tham
chiếu tồn tại trong một CSDL, bộ máy CSDL sẽ ngăn cản khi xóa một mẫu tin khi có các
mẫu tin khác tham chiếu đến nó trong CSDL.

2. Sử dụng phpMyAdmin để tạo cơ sở dữ liệu cho chương trình
2.1 Giới thiệu về phpMyAdmin
phpMyAdmin là một cơng cụ nguồn mở miễn phí được viết bằng PHP dự định để

xử lý quản trị của MySQL thơng qua một trình duyệt web. Nó có thể thực hiện nhiều tác
vụ như tạo, sửa đổi hoặc xóa bỏ cơ sở dữ liệu, bảng, các trường hoặc bản ghi; thực hiện
báo cáo SQL; hoặc quản lý người dùng và cấp phép.
Các tính năng được cung cấp bởi chương trình bao gồm:
• Giao diện web
SVTH: Lộc Văn Tiến

Trang 14


Báo Cáo Thực Tập
• Quản lý cơ sở dữ liệu MySQL
• Nhập dữ liệu từ CSV và SQL
• Xuất dữ liệu sang các định dạng khác nhau: CSV, SQL, XML, PDF (thông
qua thư viện TCPDF), ISO/IEC 26300 - OpenDocument văn bản và bảng






tính, Word, Excel,LaTeX và các định dạng khác
Quản lý nhiều máy chủ
Tạo PDF đồ họa của bố trí cơ sở dữ liệu
Tạo các truy vấn phức tạp bằng cách sử dụng Query-by-example (QBE)
Tìm kiếm tổng quan trong cơ sở dữ liệu hoặc một tập hợp con của nó
Chuyển đổi dữ liệu được lưu trữ thành các định dạng bằng cách sử dụng
một tập hợp các chức năng được xác định trước, như hiển thị dữ

liệu BLOB như hình ảnh hoặc tải về liên kết

• Giám sát các truy vấn (quy trình)

2.2 Thiết kế các mơ đun dữ liệu
2.2.1 Bảng NHAN VIEN

SVTH: Lộc Văn Tiến

Trang 15


Báo Cáo Thực Tập
2.2.2 Bảng PHONG BAN

2.2.3 Bảng LUONG

2.2.4 Bảng CHUC VU

2.2.5 Bảng TDH

2.2.6 Bảng TGCT

2.2.7 Bảng THONGBAO

SVTH: Lộc Văn Tiến

Trang 16


Báo Cáo Thực Tập


CHƯƠNG IV: GIỚI THIỆU PHƯƠNG THỨC KẾT NỐI VỚI DATABASE
Về ứng dụng, đây là ứng dụng quản lý, nên tính bảo mật cũng phải địi hỏi cao hơn
các ứng dụng khác. Database của ứng dụng không thể nằm trên điện thoại được vì dung
lượng database quá lơn, và dễ dàng bị xem trộm nếu điện thoại đó sử dụng các phần mềm
duyệt file chuyên dụng. Do đó, database của ứng dụng sẽ nằm ở server độ bảo mật sẽ cao
hơn. Tất nhiên nếu như vậy thì doanh nghiệp sẽ tốn thêm phần chi phí cho việc thuê máy
chủ và nhân việc điều hành quản lý, nhưng bù lại, bảo mật sẽ cao hơn.
Mơi trường server của nhóm xây dựng sẽ là server ảo, nhóm sử dụng phần mềm
xamp 1.8 , đây là phần mềm giả lập seb server. Về phần cái đặt và config thì nhóm khơng
đê cập tới, vì khi config kết nối, nhóm sử dụng hồn tồn config mặc định trong q trình
cái đặt xamp.

Khi kết nối cần 1 trung gian để gửi nhận dữ liệu, qua tìm hiểu nhóm biết được json
là 1 chuẩn định dạng dữ liệu gửi nhận giữa các ngôn ngữ khác nhau.
SVTH: Lộc Văn Tiến

Trang 17


Báo Cáo Thực Tập
I.

CLIENT:

Đâu tiên ở client android nhóm xây dựng 1 class JSONParser có chức năng định
nghĩa json, nhận dữ liệu từ trên web service về và định dạng dữ liệu nhận, ở đây dữ liệu
nhận về sẽ là 1 mảng 1 chiều dữ liệu.
public class JSONParser {
static InputStream is = null;
static JSONObject jObj = null;

static String json = "";
public JSONParser() {
}
public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();

}

try {
BufferedReader reader = new BufferedReader(new
InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
SVTH: Lộc Văn Tiến
Trang 18



Báo Cáo Thực Tập
sb.append(line + "\n");

}

is.close();
json = sb.toString();
Log.e("JSON", json);
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
return jObj;
}
}
Kế đến là class UserFunctions class này thực hiện các yêu cầu của người dùng
tương tác với database . Class này bản chất là sử dụng jsonParser và xây dựng các phương
thức của đối tượng được định nghĩa bởi class jsonParser này: ở đây nhóm giới thiệu 1 yêu
cầu của phần client là phương thức đăng ký: Client sẽ gửi các tag là dạng String lên server
cụ thể đây là gửi tag login, và gửi các chuỗi là các biến cần thiết, tất cả được đưa vào 1
list params. Sau đó gửi lên server server nhận tag. Thực hiện yêu cầu gửi về lại là 1 json.
Và phương thức này nhận json đã gửi về sau đó trả ra giá trị là json vửa nhận được đó.
Json đấy là tất cả nhưng gì mình cần.
public class UserFunctions {
private JSONParser jsonParser;
private static String loginURL = "http://192.168.0.111/android_login_api/";

private static String registerURL = "http://192.168.0.111/android_login_api/";
private static String login_tag = "login";
public UserFunctions(){
jsonParser = new JSONParser();
SVTH: Lộc Văn Tiến

Trang 19


Báo Cáo Thực Tập
}
public JSONObject loginUser(String email, String password){
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("tag", login_tag));
params.add(new BasicNameValuePair("email", email));
params.add(new BasicNameValuePair("password", password));
JSONObject json = jsonParser.getJSONFromUrl(loginURL, params);
return json;
}
}
Sau khi cài đặt xamp. Trong thư mục localhost của phần mềm cụ thể ở đây là
htdocs C:\xampp\htdocs nhóm tạo folder là android_login_api. Như vậy ta được dạng địa
chỉ như sau:

C:\xampp\htdocs\android_login_api

ở client cần có link kết nối. link kết nối ở đây là ip localhost tức là ip của máy tính
trong cùng 1 đường mạng với điện thoại client được kết nối. Máy tính đóng vai trị là
server.


Ở đây nhóm sử dụng router wifi làm đường mạng kết nối chung cho máy tính
sever và điện thoại client. Ip của máy tính là 192.168.0.111 đo đó link kết nối tới sever là
http://192.168.0.111/android_login_api/
II.

WEB SERVICE:

Trong thư mục android_login_api ta cần thêm các file như sau:

SVTH: Lộc Văn Tiến

Trang 20


Báo Cáo Thực Tập
Index.php là 1 chương trình viết bằng mã php. Khi người dùng kết nối tới link :
http://192.168.0.111/android_login_api/ thì index.php sẽ được gọi ra. Chương trình này
có chức năng nhận các lệnh gửi từ client, phân tích và xử lý các yêu cầu, đóng gọi lại các
dữ liệu vào json. Sau đó gửi về ngược lại client. Và đương nhiên để lấy được dữ liệu từ
database ta cần phải có tài khoản, pass login vào MySQL vì xamm sử dụng MySQL làm
hệ quản trị cơ sơ dữ liệu. Phần config kết nối em sẽ trình bày sau.
if (isset($_POST['tag']) && $_POST['tag'] != '') {
// get tag
$tag = $_POST['tag'];
// include db handler
require_once 'include/DB_Functions.php';
$db = new DB_Functions();
// response Array
$response = array("tag" => $tag, "success" => 0, "error" => 0);

// check for tag type
if ($tag == 'login') {
// Request type is check Login
$email = $_POST['email'];
$password = $_POST['password'];
// check for user
$user = $db->getUserByEmailAndPassword($email, $password);
if ($user != false) {
// user found
// echo json with success = 1
$response["success"] = 1;
$response["uid"] = $user["unique_id"];
$response["user"]["name"] = $user["name"];
$response["user"]["email"] = $user["email"];
$response["user"]["created_at"] = $user["created_at"];
SVTH: Lộc Văn Tiến

Trang 21


Báo Cáo Thực Tập
$response["user"]["updated_at"] = $user["updated_at"];
echo json_encode($response);
} else {
// user not found
// echo json with error = 1
$response["error"] = 1;
$response["error_msg"] = "Incorrect email or password!";
echo json_encode($response);
}}

else {
echo "Invalid Request";
}
} else {
echo "Access Denied"; } ?>
Trong thư mục include chứ các class php thực hiện cho việc kết nối database và
hàm truy xuất dữ liệu từ php:
Hàm kết nối: tên file config.php
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "staff-manager");
?>
Tên file DB_Connect.php
class DB_Connect {
// constructor
function __construct() {
}
// destructor
SVTH: Lộc Văn Tiến

Trang 22


Báo Cáo Thực Tập
function __destruct() {
// $this->close();
}

// Connecting to database
public function connect() {
require_once 'include/config.php';
// connecting to mysql
$con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
// selecting database
mysql_select_db(DB_DATABASE);
// return database handler
return $con;
}
// Closing database connection
public function close() {
mysql_close();
}

}

?>
Đây là 2 class kết nối với database khởi tạo và hủy databse.
Kế đến là class DB_funtion
Class này có chức năng là truy xuất dữ liệu từ database
class DB_Functions {
private $db;
//put your code here
// constructor
function __construct() {
require_once 'DB_Connect.php';
// connecting to database
$this->db = new DB_Connect();

SVTH: Lộc Văn Tiến

Trang 23


Báo Cáo Thực Tập
$this->db->connect();
}
// destructor
function __destruct() {
}
public function getUserByEmailAndPassword($email, $password) {
$result = mysql_query("SELECT * FROM users WHERE email = '$email'") or
die(mysql_error());
// check for result
$no_of_rows = mysql_num_rows($result);
if ($no_of_rows > 0) {
$result = mysql_fetch_array($result);
$salt = $result['salt'];
$encrypted_password = $result['encrypted_password'];
$hash = $this->checkhashSSHA($salt, $password);
// check for password equality
if ($encrypted_password == $hash) {
// user authentication details are correct
return $result;
}
} else {
// user not found
return false;
}

}
public function hashSSHA($password) {
$salt = sha1(rand());
$salt = substr($salt, 0, 10);
$encrypted = base64_encode(sha1($password . $salt, true) . $salt);
$hash = array("salt" => $salt, "encrypted" => $encrypted);
SVTH: Lộc Văn Tiến

Trang 24


Báo Cáo Thực Tập
return $hash;
}
/**
* Decrypting password
* @param salt, password
* returns hash string
*/
public function checkhashSSHA($salt, $password) {
$hash = base64_encode(sha1($password . $salt, true) . $salt);
return $hash;
}

}

?>

CHƯƠNG V: KIẾN TRÚC HỆ THỐNG VÀ DEMO CHƯƠNG TRÌNH
I.


Kiến trúc hệ thống chương trình trên Android:

Nhóm thiết kế hệ thống chương trình trên Android bao gồm 2 packet:
Package com.example.Staff_Manager chứa các class chính của chương trình. Các
class này có nhiệm vụ khởi tạo các layout, các button,textview trong layout đó, chạy và
thực hiện các tương tác của người dùng với layout tương ứng, các thao tác được layout
ghi nhận và xử lý thông qua các phương thức của của các class trong package :
public class LoginActivity extends Activity : class khởi chạy layout login.xml,
layout xử lý phần đăng nhập của người dùng.
public class GetpasswordActivity extends Activity: class khởi chạy layout
getpassword.xml, là layout giúp nhân viên đang ký tài khoản đăng nhập, hoặc lấy lại mật
khẩu đang nhập đã quên. Để thực hiện nhân viên cần có các thơng tin sau:
+ma_nv: mã nhân viên
+ten_nv: tên nhân viên
+regcode: đoạn mã an ninh của mỗi nhân viên, mã này được cung
cấp khi nhân viên làm hồ sơ aply vào công ti. Mã này chỉ cung cấp 1
lần cho nhân viên, đang là mã xác nhận bảo mật cho nhân viên.
SVTH: Lộc Văn Tiến
Trang 25


×