1. Trang chủ
  2. » Biểu Mẫu - Văn Bản

Đề cương báo cáo thực tập tốt nghiệp

19 13,7K 33
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

Định dạng
Số trang 19
Dung lượng 159,5 KB

Nội dung

Đề cương báo cáo thực tập tốt nghiệp

Trang 1

- LỜI CẢM ƠN:

Trang 2

Trang 3

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

1 Giới thiệu công ty: 1

2 Sơ đồ tổ chức: 2

3 Phòng ban SV tham gia thực tập: 3

NỘI DUNG THỰC TẬP: 4

4 Nhiệm vụ chính được giao thực tập: 4

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

6 Nội dung công việc thực tập 4

7 Tuần 1 4

8 Tuần 2 5

9 Tuần 3 5

10 Tuần 4 8

11 Tuần 5 8

12 Tuần 6 9

13 Tuần 7 11

14 Tuần 8 12

II KẾT QUẢ ĐẠT ĐƯỢC QUA ĐỢT THỰC TẬP 13

1 Những kiến thức lý thuyết đã được củng cố: 13

2 Những kỹ năng thực hành đã được học thêm: 13

3 Những kinh nghiệm thực tiễn đã tích lũy được: 13

III PHỤ LỤC: 14

Trang 4

II GIỚI THIỆU CÔNG TY THỰC TẬP

1 Giới thiệu công ty:

VONLINE được thành lập từ năm 2009, hoạt động trong lĩnh vực thương mại

điện tử và thanh toán trực tuyến, chuyên cung cấp các dịch vụ tin học hỗ trợ

các lĩnh vực tài chính: sàn giao dịch chứng khoán, sàn giao dịch vàng, sàn

giao dịch hàng hóa… và các dịch vụ thương mại điện tử

Các sản phẩm chính của VONLINE:

Website ZoKIK.com: là website thương mại điện tử, bán hàng qua mạng,

thanh toán trực tuyến và giao hàng tận nơi trên toàn quốc

Website do chính đội ngũ nhân viên của VONLINE phát triển và vận hành

hoạt động

Phần mềm vOnlineTrading: phần mềm đặt lệnh chứng khoán trực tuyến

cung cấp khả năng kết nối với phần mềm lõi chứng khoán (core securities)

và cung cấp dịch vụ đặt lệnh chứng khoán trực tuyến qua mạng cho nhà đầu

Khách hàng:

o Công ty Cổ phần Chứng khoán Bảo Minh (BMSC)

Phần mềm vOnlineBoard: phần mềm bảng giá chứng khoán, hàng hóa trực

tuyến, cập nhật giá theo thời gian thật (realtime)

Khách hàng:

o Ngân hàng TMCP Sài Gòn Thương Tín (Sacombank)

o Sàn giao dịch hàng hóa Sài Gòn Thương Tín (Sacom-STE)

o Công ty Cổ phần Chứng khoán Bảo Minh (BMSC)

Phần mềm vPublishing: phần mềm quản lý nghiệp vụ phát hành báo chí

Khách hàng: Báo Tuổi Trẻ

1

Trang 5

2 Sơ đồ tổ chức:

Mô tả:

- Phòng CNTT:

+ Phân tích, thiết kế chức năng của các dự án tùy theo nhu cầu của khách

hàng

+ Lập trình phần mềm, website, thiết bị di động

+ Sửa lỗi phản hồi từ nhóm testing

+ Bảo trì, bảo hành phần mềm

+ Vận hành ứng dụng tại công ty của khách hàng

- Phòng kế toán:

+ Thực hiện những công việc về nghiệp vụ chuyên môn tài chính kế toán

theo đúng quy định của Nhà nước về chuẩn mực kế toán, nguyên tắc kế

toán

+ Theo dõi, phản ánh sự vận động vốn kinh doanh của Công ty dưới mọi

hình thái và cố vấn cho Ban lãnh đạo về các vấn đề liên quan

+ Phân tích, đánh giá tài chính của các dự án, công trình trước khi trình

lãnh đạo Công ty quyết định

+ Thu thập và xử lý thông tin có liên quan đến nghiệp vụ kinh tế và tài

chính phát sinh trong công ty

+ Giữ bí mật về số liệu kế toán – tài chính và bí mật của công ty

+ Thực hiện một số chức năng khác khi được Giám đốc giao

- Phòng kinh doanh:

+ Tham mưu, cố vấn cho Giám đốc về các chính sách, định hướng kinh

doanh, phổ biến chủ trương, chính sách, hướng dẫn các thủ tục, quy định

của Nhà nước đối với hoạt động sản xuất và kinh doanh

+ Giao dịch trực tiếp để giúp Giám đốc thiết lập và mở rộng quan hệ khách

hàng trong và ngoài nước nhằm xây dựng, củng cố và phát triển ngày càng

vững tiềm năng hoạt động của công ty dưới sự chỉ đạo của Giám đốc

+ Lưu trữ hồ sơ, tài liệu có liên quan đến các thao tác, nghiệp vụ kinh

doanh của Phòng đã thực hiện

Trang 6

+ Tìm kiếm đối tác kinh doanh theo chỉ đạo của Giám đốc, khảo sát thị

trường, tham gia các hội thảo, hội chợ, triển lãm trong và ngoài nước

+ Thực hiện các công việc khuếch trương và quảng bá thương hiệu của

công ty như quảng cáo trên báo chí, truyền thông, phát hành brochure, lịch,

thiệp mừng, quà tặng, giao tế, …

- Website ZOKIK.com:

+ Nhóm marketing: Nghiên cứu tiếp thị và thông tin; lập hồ sơ thị trường

và dự báo doanh thu, khảo sát hành vi của khách hàng tiềm năng; phân

khúc thị trường, xác định mục tiêu, định vị thương hiệu

+ Nhóm dịch vụ khách hàng: Triển khai, tổ chức việc tìm kiếm khách hàng

+ Nhóm giao nhận: Giao nhận hàng hóa

3 Phòng ban SV tham gia thực tập:

Phòng CNTT – Nhóm Lập trình

3

Trang 7

NỘI DUNG THỰC TẬP:

4 Nhiệm vụ chính được giao thực tập:

- Lập trình công cụ admin website VONLINE.vn

- Lập trình công cụ admin website BMSC

- Tìm hiểu về lập trình ứng dụng trên nền tảng Android

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

Tất cả các ngày trong tuần (ngoại trừ khi đến lớp – nếu có)

6 Nội dung công việc thực tập

Lập trình công cụ admin website VONLINE.vn Đây là phần admin quản lý

tin tức của website công ty, giới thiệu các sản phẩm của công ty

7 Tuần 1

Đọc hiểu source code của website STE-Steel (một website thương mại, bán

thép, điều, cao su), để từ đó chỉnh sửa thành website admin VONLINE Cụ thể

hơn là nhận CSDL STE và tái tạo lại STE để hiểu về website này Website này

được viết bằng PHP5, Zend Framework, Smarty, Query, JQuery UI, AJAX và

CSDL là MySQL

Link: http://admin.vonline.vn/

Tuần này chủ yếu là đọc source code và làm quen môi trường lập trình, cũng

như nghiên cứu về Android

*** Tóm tắt về android sau khi đọc hiểu:

- Sơ lược: Android là một hệ điều hành được viết dựa trên Linux Hệ điều

hành này chạy trên điện thoại di động Phiên bản Android mới nhất hiện tại là

3.5 Honeycomb Android có công cụ hỗ trợ lập trình là Android SDK, công cụ

này có bộ mô phỏng điện thoại là thiết bị ảo (emulator), cấu hình của thiết bị là

cấu hình thật được sử dụng trên điện thoại

- Cấu trúc:

+ Ứng dụng Android được tổ chức thành các Activity Activity là một màn

hình (screen) cung cấp giao diện và tương tác cho người dùng Mỗi Activity

gồm có nhiều bộ phận gọi chung là: Widget và Layout Widget là View, cung

cấp những phần tử như button, text field, checkbox, … Layout là ViewGroup,

nó bố trí các view theo một trật tự, ví dụ như LinearLayout, TableLayout, …

+ Mỗi ứng dụng chỉ có một Main Activity, được chạy đầu tiên trong ứng

dụng, mỗi Activity có thể start Activity khác, mỗi lần chỉ có một active

Activity, khi một Activity active thì Activity trước đó được push vào stack

theo cơ chế “Last in, first out” Khi một Activity hoàn tất, được pop khỏi stack

và bị destroy, thì Activity trước đó sẽ resume Các Activity hoạt động giao tiếp

với nhau dựa vào Intent, Intent giống nhưng thông điệp, được gửi cho event

handler để thực thi…

Trang 8

8 Tuần 2

Bắt đầu chỉnh sửa và code VONLINE, làm phần liệt kê, thêm, xóa, sửa tin

tức của công ty, gặp chút khó khăn là không biết nhiều về Javascript, mà code

toàn javascript và khá nhiều thư viện third-party Ví dụ như: Jquery UI,

KCFinder (là tiện ích quản lý file được viết bằng JQuery), CKEditor (là một

WYSIWYG Editor được viết bằng Javascript và JQuery), …

Mặt khác, em cũng đang làm quen với việc upload code lên hosting thật, log

bằng SSH vào Linux và xem log file, thao tác trên tài khoản MySQL thật và

thử các lệnh Linux đã học, ví dụ các lệnh trong vim, tìm file, cd, ls, Em

cũng được làm quen với SVN để quản lý các revision (phiên bản code) của

mình Khi mạng yếu thì em chuyển sang làm trên localhost

Làm quen với Smarty, tích hợp Smarty vào Zend Framework Smarty là một

template engine giúp tách biệt giao diện với code xử lý, giúp phân chia công

việc giữa developer và designer thật rõ ràng Developer chỉ cần quan tâm đến

chức năng của website và cung cấp biến trên Smarty template Còn designer

không cần biết về ngôn ngữ lập trình như PHP, mà chỉ cần biết thiết kế giao

diện dựa trên những biến được cung cấp trong Smarty template Smarty giống

như một ngôn ngữ trung gian đơn giản dùng để kết nối giữa developer và

designer

9 Tuần 3

Sau khi được hướng dẫn, em làm tiếp những phần còn thiếu của Bảo Minh

admin panel Link: http://admin.bmsc.com.vn/

*** Quản lý banner: Người hướng dẫn muốn tạo phần quản lý banner để lưu

banner của những công ty đối tác với Bảo Minh, để khi click vào banner trên

trang chủ thì sẽ dẫn tới trang của đối tác Cấu trúc bảng banner như sau:

5

Trang 9

Người hướng dẫn muốn dùng AJAX để làm mọi thao tác trên bảng này: liệt

kê, thêm, xóa, sửa Anh ấy có đưa source code để tham khảo và làm theo

1) Liệt kê banner :

- Yêu cầu: Khi chọn loại banner thì list những banner tương ứng Hiện tại có

2 loại banner: “Trang chủ” và “Đối tác” Khi chọn “Trang chủ” thì list những

banner nằm trên trang chủ, khi chọn đối tác thì list banner của đối tác

- Cách làm: Khi chọn trên select control thì lấy BANNER_TYPE_ID tương

ứng Sau đó gọi hàm $.post của JQuery đến action controller ‘/banner/list’

Action controller này sẽ truy vấn dựa trên banner type nhận được và trả về

danh sách banner, danh sách này được encode thành đối tượng JSON và trả về

cho client (JQuery script) Script lấy thông tin này hiển thị lên table

2) Thêm banner :

- Yêu cầu: Khi chọn nút “Thêm mới” thì hiện dialog Ngoài những input text

bình thường thì dialog phải có component uploadify Link:

http://www.uploadify.com/

Uploadify hỗ trợ upload file lên server một cách nhanh và mượt hơn Người

hướng dẫn yêu cầu phải dùng 3.0 Beta, mà 3.0 lại chưa có documentation nên

em phải down 2.x về để đối chiếu Thư viện thay đổi thông số nhiều nên phải

đọc và sửa source của họ

- Cách làm:

+ Uploadify hỗ trợ chỉ cần chọn file là file tự động được upload, nhưng nếu

ta chọn file upload rồi, sau đó lại nhấn cancel thì sao? Nghĩa là file đó đã được

upload và tồn tại trên server, mà ta lại không chính thức tạo banner đó, suy ra

banner phải được xóa khi nhấn cancel, uploadify không hỗ trợ điều này Có

một cách làm đơn giản là tạo thư mục temp trên server, khi cancel thì file vẫn ở

temp, thư mục temp có lẽ sẽ được xóa rác sau một khoảng thời gian nào đó

Khi upload thành công thì copy file trong temp qua thư mục chứa banner thật

sự

+ Khi chọn “Tạo banner” từ dialog “Thêm mới”, JQuery serialize thông tin

của form thành chuỗi URI với cú pháp ‘param1=value1&param2=value2’, sau

đó truyền cho action controller ‘/banner/add’ Action controller này tạo banner

bằng SQL rồi trả về mã báo thành công cho client Client gọi loadBanner để

refresh lại table

Trang 10

3) Sửa, xóa banner :

- Yêu cầu: Sửa và xóa phải update cách field UPDATE_BY,

UPDATE_DATE Khi xóa thì set IS_DELETE = 1

- Cách làm: Khi người dùng login vào website, thông tin của họ được lưu vào

session Khi update hoặc delete, thông tin email của họ sẽ được điền vào

UPDATE_BY để xác định ai đã sửa, xóa thông tin

Phần này còn dùng một số plugin nữa, không thể kể hết được

Tất cả các truy vấn trên CSDL đều phải dùng stored procedured Có một số

chỗ em phải làm lại do người hướng dẫn không đồng ý Phải viết theo code

style có sẵn nên cũng thấy hơi gò bó

*** Quản lý “Tài khoản trực tuyến”:

- Yêu cầu: Khi đăng ký mở tài khoản trực tuyến tại

http://bmsc.com.vn/account/open, thông tin của khách hàng sẽ được lưu vào

bảng open_account để xem xét và giải quyết Khách hàng có thể download

phiếu đăng ký hoặc hợp đồng mẫu trên website và điền vào Nhân viên của

BMSC sẽ kiểm tra thông tin trong bảng open_account này và hẹn khách hàng

đến để làm hợp đồng, đồng thời check vào status “đang xử lý” hoặc “hoàn tất”

Status là trạng thái của tài khoản, có 2 loại là: “đang xử lý” và “hoàn tất”

Người hướng dẫn yêu cầu liệt kê danh sách tài khoản trực tuyến và tạo chức

năng sửa trạng thái và xóa tài khoản VD sử từ “đang xử lý” thành “hoàn tất”

Các field INFORMATION_FILE, CONTRACT_FILE, AUTHORIZE_FILE

phải link tới tài liệu hợp đồng nào đó, thư mục tài liệu này nằm trên server

- Cách làm: Giống như banner

7

Trang 11

10 Tuần 4

Giống như tuần 3 nhưng xin công ty nghỉ 3 ngày để dọn nhà sang chỗ mới

Cộng thêm việc sửa lại tab “Tin tức”, thêm checkbox “Tin mới” để thể hiện

tin mới của công ty Bảng tin tức như sau:

Ở phần này chỉ có một chỗ khó là tìm hiểu checkbox được submit như thế

http://www.w3.org/TR/html401/interact/forms.html#radio thì em biết là chỉ

những “on” checkbox mới được submit

Có một lần em tạo tin rác để test mà quên xóa thì khách hàng gọi điện than

phiền với người hướng dẫn, kết quả là em bị mắng và chạy về nhà và sửa lại

11 Tuần 5

Làm module quản lý nhân viên Website chỉ có 2 loại là admin và nhân viên

Admin là người được liệt kệ, thêm, xóa, sửa tất cả nhân viên Nhân viên chỉ

được sửa chính mình Yêu cầu của module này cũng giống module banner là

liệt kê, thêm, xóa, sửa

Module này giống module news, banner Có một profile panel chứa tên đang

đăng nhập ở góc phải phía trên Có một điểm đặc biệt là phần authorization

(kiểm tra quyền) Ở tab này, em quy tất cả thao tác về để xử lý trên JQuery và

AJAX, khi kiểm tra có phải là admin không thì cũng gửi truy vấn từ client

script đến server rồi nhận về biến isAdmin để vẽ profile panel và chức năng

cho đúng Nhưng cú gọi AJAX bình thường để truy vấn là bất đồng bộ, nghĩa

Trang 12

là khi liệt kê nhân viên và vẽ profile panel nó sẽ không đợi isAdmin được trả

về, và nó sẽ vẽ sai Do đó, em chuyển thành gọi đồng bộ đối đối với truy vấn

lấy isAdmin Nghĩa là trong khi truy vấn này đang diễn ra thì không có truy

vấn nào khác được thực hiện Sau khi có isAdmin thì các lời gọi bất đồng bộ

mới được tiến hành hàng loạt

*** Nghiên cứu thêm về Android:

Trong Android, để test code có chạy đúng không thì có một cách là xoay màn

hình 90 độ Việc này sẽ khiến cho hệ thống gọi lần lượt các event pause, stop,

destroy và create Activity mới, Activity sẽ được chạy lại từ đầu Trên emulator

thì nhấn Ctrl + F11

Android cung cấp các dịch vụ (services) như Google Translate API, GPS

API Android cũng cung cấp khả năng chơi video, video phải được đặt trong

SD card Âm thanh được đặt trong thư mục raw của resources

12 Tuần 6

- Yêu cầu: BMSC yêu cầu phân quyền trên mỗi module với các quyền: xem,

thêm, xóa, sửa Module “Tài khoản trực tuyến” (account) và module “Web

tĩnh” (page) không có chức năng “Thêm” nên field INSERT_PRIV sẽ luôn là

null Đối với module “page” thì cần phân quyền đối với từng trang web tĩnh

Ví dụ: Người môi giới chỉ được cập nhật trên các trang về môi giới, người của

phòng phân tích chỉ được cập nhật những nội dung liên quan đến phân tích

Người hướng dẫn yêu cầu phải có một giải pháp tổng quát và đơn giản cho tất

cả trường hợp Sau nhiều thiết kế không được đồng ý, em đã tạo ra bảng

privilege này và được sự đồng ý của người hướng dẫn

- Giải thích thiết kế: Quyền của module “news”, “banner”, “account” và

“page” đều được quản lý theo cách này Khi CONTENT_ID bằng null nghĩa là

quyền này ở trên module “news”, “banner” hoặc “account” Khi

CONTENT_ID khác null thì CONTENT_ID sẽ là ID của page (web tĩnh), lúc

này đây là quyền trên một trang web tĩnh cụ thể Module “account” và “page”

sẽ luôn có INSERT_PRIV là null

Ta sẽ lập trình để chắc chắn một điều rằng khi 4 field SELECT_PRIV,

INSERT_PRIV, UPDATE_PRIV, DELETE_PRIV khác 1 thì dòng này sẽ

được remove khỏi bảng privilege, nghĩa là bảng privilege chỉ lưu những quyền

9

Trang 13

có ít nhất 1 trong 4 cái trên bằng 1 Nói cách khác, quyền nào không được

dùng thì là null, không có quyền là 0 và có quyền là 1

Thiết kế này có khá nhiều lỏng lẻo về tính nhất quán Ví dụ vì một lỗi nào đó

mà xuất hiện 2 dòng quyền đối với một module “news” thì truy vấn có thể sẽ

sai, tất nhiên website sẽ đảm bảo không xảy ra điều đó bằng một cách nào đó

(check trên code, dùng transaction hoặc trigger), nhưng khi đã dùng transaction

và trigger thì performance cũng giảm đáng kể Đây cũng là một tradeoff đáng

suy nghĩ, ta đã đánh đổi sự an toàn để lấy sự tiện lợi, ngắn gọn, đơn giản và

tổng quát: tất cả quyền của tất cả module đều chỉ được lưu trong một bảng

Cũng giống như thiết kế EAV (Entity Attribute Value) của một số CMS, họ

đánh đổi performance để lấy tính mở rộng (extensibility) Truy vấn của thiết kế

này vô cùng phức tạp nhưng khả năng mở rộng thuộc tính (attribute) là gần

như không giới hạn

- Cách làm: Liệt kê quyền cũng giống như những module trước, tạo quyền và

sửa quyền thì khác Có 4 checkbox tương ứng với 4 quyền CRUD

(Create-Read-Update-Delete), sau khi nhân viên check vào các quyền mong muốn thì

nhấn “Cập nhật” Các checkbox có trạng thái “on” sẽ được submit, tham khảo

http://www.w3.org/TR/html401/interact/forms.html#checkbox

Sau đó insert dòng tương ứng vào bảng privilege Update và delete cũng

tương tự Tiếp đến, phần phân quyền cho web tĩnh hơi khó hơn Đầu tiên khi

click vào “Sửa quyền” trên mỗi nhân viên thì liệt kê ra danh sách trang web

tĩnh, với mỗi dòng sẽ có 4 checkbox tương ứng với 4 quyền CRUD Sau khi đã

check những quyền mong muốn thì click “Cập nhật” Hệ thống sẽ truyền đi 2

mảng checkbox, một mảng chứa những quyền cũ, một mảng chứa những

quyền mới

Giả sử A là mảng chứa các quyền cũ, B là mảng chứa các quyền mới (sau khi

đã thay đổi) Thuật giải để insert, update, delete quyền như sau:

+ Chọn các phần tử có trong A mà không có trong B, đưa vào mảng C

+ Chọn các phần tử có trong B mà không có trong A, đưa vào mảng D

=> Mảng C là những quyền cần delete Mảng D là những quyền cần insert

hoặc update Nếu quyền đó chưa tồn tại trong bảng thì insert, ngược lại thì

update

Sau khi đã lấy được mảng C và D thì tiến hành lặp qua 2 mảng này và thao

tác trên dữ liệu Kết quả trả về của hành vi cập nhật quyền là “affected rows”

của tất cả thao tác insert, update, delete kể trên Ví dụ: Sau khi chọn quyền và

bỏ quyền rồi click “Cập nhật” thì số dòng được insert là 2, số dòng được

Ngày đăng: 16/01/2013, 17:12

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w