Cơ sở dữ liệu sẽ bao gồm những thông tin sau: Chi tiết sinh viên Chi tiết giảng viên Chi tiết môn học Chi tiết bài giảng khoá học Feedback của học viên - Trang web sẽ cung cấp
Trang 1MỤC LỤC
Project on Fast Learn 3
Giấy chứng nhận 4
Acknowlegement 5
Yêu cầu về phần cứng và phần mềm 6
Đại học từ xa Fast Learn 7
Hệ thống hiện tại 8
Yêu cầu hệ thống mới 9
Thiết kế cơ sở dữ liệu 10
Thiết kế chức năng 12
Thiết kế giao diện 20
Nhận xét của giảng viên 22
Trang 2PROJECT ON FAST LEARN
Giảng Viên : Châu Ngân Khánh
o Mã Lớp : B100025
o Ngày Bắt Đầu : 09/08/2011
o Ngày Kết Thúc : 14/09/2011
o Tên Giảng Viên : Phạm Tiến Phúc &Châu Ngân Khánh
o Tên Người Phát Triển : Huỳnh Thủy Ngân
o Ngày Hoàn Thành : 17/10/2011
Trang 3GIẤY CHỨNG NHẬN
Đây là xác nhận rằng báo cáo này, có tựa đề là Fast Learn, là tácphẩm gốc được thực hiện bởi Huỳnh Thủy Ngân là một phần của yêucầu khóa học tại NIIT.
Trang 4 Tôi đã được sự giúp đỡ cùng những sự phản hồi và đề nghị chotôi bởi giảng viên Châu Ngân Khánh và các giảng viên khác, điều viênphòng máy trong NIIT
Trang 6ĐẠI HỌC TỪ XA FAST LEARN
Fast Learn là một đại học từ xa được thành lập bởi Samuel Roger từ 10 năm trước Fast Learn là một trong những đại học từ xa hàng đầu tại Anh
có trụ sở chính đặt tại New York và có nhiều văn phòng đại diện trên khắp thế giới Mức tăng của đại học hàng năm là 3 triệu đôla Mỹ
Fast Learn được biết đến với nền giáo dục xuất sắc, thu hút hàng ngàn học sinh từ khắp các nước trên thế giới Chương trình học của Fast Learn gồm các lĩnh vực sau:
Trang 7HỆ THỐNG HIỆN TẠI
Hiện tại, Fast Learn đang sử dụng phương pháp quản lý khoá học cũ Mỗisinh viên được đăng kí tại 1 văn phòng đại diện, nơi mà học viên phải liênlạc hằng tuần Tài liệu khoá học thì được cung cấp trên giấy Học viên phảiđến trung tâm để lấy tài liệu
Những câu hỏi của học viên được trả lời qua điện thoại hoặc trong quátrình học Tuy nhiên, câu trả lời trên điện thoại là 1 câu trả lời chuyên môn
Số lượng học viên quá lớn để trả lời hết những câu hỏi Việc giải quyết câuhỏi cho số lượng lớn học viên là rất khó
Quản lý đã nhận được nhiều phàn nàn từ học viên về việc:
- Nhiều khi giảng viên không rảnh để trả lời câu hỏi khi họ gọi
- Học viên phải đến trung tâm để lấy thông tin học phí và đăng kí khoáhọc
- Học viên phải đến trung tâm để lấy tài liệu in sẵn cho khoá học
Với những ý kiến về những khoá học này, Fast Learn đang loại bỏ chúngbằng cách cung cấp phương pháp học nhanh cho học viên
Hơn nữa, giám đốc tại các trung tâm cũng gặp phải nhiều vấn đề Vấn đềchính đáng được lưu ý là:
- Câu hỏi chuyên môn vượt quá thời gian vì giảng viên dành hầu hếtthời gian của họ để trả lời những câu hỏi tương tự cho những họcviên khác nhau
- Việc tìm kiếm thông tin học viên, thường được làm thường xuyên,mất nhiều thời gian
- Lưu trữ tài liệu in sẵn không những tốn kém mà còn không thân thiệnvới môi trường
Trang 8YÊU CẦU HỆ THỐNG MỚI
Dựa trên khả năng quan sát của quản lý, trường đã quyết định phát triểnmột trang học trực tuyến cho Fast Learn Quyết định sau được đưa ra đểphát triển trang học trực tuyến:
- Trang web sẽ lưu trữ tất cả dữ liệu cho hệ thống hiện tại trong 1 cơ
sở dữ liệu Cơ sở dữ liệu sẽ bao gồm những thông tin sau:
Chi tiết sinh viên
Chi tiết giảng viên
Chi tiết môn học
Chi tiết bài giảng khoá học
Feedback của học viên
- Trang web sẽ cung cấp nội dung khoá học đến học viên trên mộtform điện tử
- Tất cả thông tin bao gồm chi tiết khoá học, lưu ý cho sinh viên, tàiliệu khoá học cũng được hiển thị trên trang web
Khi vào trang web, học viên sẽ được cung cấp các tiện ích sau:
- Xem thông tin khoá học: phần này sẽ cho phép 1 học viên tìm kiếmkhoá học và xem thông tin về việc đăng kí khoá học
- Đăng kí khoá học: phần này cho phép học viên đăng kí khoá học
- Xem tài liệu khoá học: phần này cho phép học viên lấy tài liệu khoáhọc mà học viên đăng kí
- Gửi feedback: phần này cho phép học viên gửi phản hồi về cho trungtâm
- Sửa thông tin học viên: phần này cho phép học viên sửa thông tincủa học viên
- Xem danh sách khoá học: phần này cho phép học viên xem danhsách các khoá học mà mình đã đăng kí
Trang 9
-THIẾT KẾ CƠ SỞ DỮ LIỆU
Trang 10nhiều nhiều nên sinh ra bảng mới, ta đặt là Register, bảng này sẽkéo khoá chính của 2 bảng cha về làm khoá chính, nhưng để dễquản lí, chúng tôi tạo thêm RegisterID.
- Bảng Teacher: FacultyID là khoá ngoại được truy xuất từ bảngFaculty
- Bảng Course: TeacherID là khoá ngoại được truy xuất từ bảngteacher
- Bảng Register: CourseID, StudentName là khoá ngoại được truy xuấtlần lượt từ các bảng Course, Student
- Bảng Feedback: StudentName là khoá ngoại được truy xuất từ bảngStudent
- Bảng Query: StudentName, TeacherID là khoá ngoại được truy xuấtlần lượt từ các bảng Student, Teacher
Trang 11THIẾT KẾ CHỨC NĂNG
1 Chức năng đăng nhập:
- Ở chức năng này, học viên sẽ đăng nhập bằng tài khoản vàpassword đã được đăng kí trước đó, nếu hệ thống kiểm tra dữ liệutrùng khớp chức năng sửa thông tin cá nhân sẽ được bật và ngườidùng sẽ sử dụng được các chức năng còn lại của trang web
- Ở chức năng này chúng tôi không sử dụng control Log in có sẵncủa .net mà sử dụng form tự tạo bằng những text box, label vàbutton
- Việc kiểm tra tài khoản đăng nhập có đúng hay không sẽ được thựchiện bằng cách so sánh tài khoản đăng nhập, password với cơ sở dữliệu bằng kết nối sql Sau khi đăng nhập thành công, tên đăng nhập
sẽ được lưu lại bằng session
protected void btn_login_Click( object sender, EventArgs e)
{
DataClassesDataContext db = new DataClassesDataContext ();
string sql = "select * from Student where UserName='" +
txt_username.Text.Trim() + "' and Password='" + txt_pass.Text.Trim() + "'" ; SqlConnection conn = new
SqlConnection (System.Web.Configuration WebConfigurationManager ConnectionSt rings[ "Fast_Learn_1ConnectionString" ].ConnectionString);
SqlDataAdapter da = new SqlDataAdapter (sql, conn);
DataTable dt = new DataTable ();
Trang 12- Sau khi đăng nhập thành công, trang web sẽ tự động chuyển họcviên qua trang sửa thông tin cá nhân, học viên cũng có thể quay trởlại trang này bằng cách bấm vào link phía dưới tên nick.
- Ở chức năng này chúng tôi sử dụng control details view trong nhómdata control Cơ sở dữ liệu được kết nối bằng sql string connection
và lấy ràng buộc là nick vừa đăng nhập Học viên có thể sửa chữathông tin cá nhân của mình bằng cách nhấn vào link edit Sau khithay đổi thông tin, nhấn vào link update, thông tin sẽ được thay đổi
và cập nhật và cơ sở dữ liệu
< asp : SqlDataSource ID ="SqlDataSource1" runat ="server"
ConnectionString =" <%$
ConnectionStrings:Fast_Learn_1ConnectionString %> "
DeleteCommand ="DELETE FROM [Student] WHERE [UserName] = @UserName"
InsertCommand ="INSERT INTO [Student] ([UserName], [Address],
[Birthday], [Name], [Phone]) VALUES (@UserName, @Address, @Birthday, @Name,
@Phone)"
SelectCommand ="SELECT [UserName], [Address], [Birthday], [Name], [Phone] FROM [Student] WHERE ([UserName] = @UserName)"
UpdateCommand ="UPDATE [Student] SET [Address] = @Address,
[Birthday] = @Birthday, [Name] = @Name, [Phone] = @Phone WHERE [UserName] =
< asp : Parameter Name ="Address" Type ="String" />
< asp : Parameter Name ="Birthday" Type ="DateTime" />
< asp : Parameter Name ="Name" Type ="String" />
< asp : Parameter Name ="Phone" Type ="String" />
< asp : Parameter Name ="UserName" Type ="String" />
</ UpdateParameters >
< InsertParameters >
< asp : Parameter Name ="UserName" Type ="String" />
< asp : Parameter Name ="Address" Type ="String" />
< asp : Parameter Name ="Birthday" Type ="DateTime" />
< asp : Parameter Name ="Name" Type ="String" />
< asp : Parameter Name ="Phone" Type ="String" />
</ InsertParameters >
</ asp : SqlDataSource >
Trang 13- Nếu học viên chưa có tài khoản, học viên có thể sử dụng chức năng này để tạo một tài khoản đăng nhập, với tên đăng nhập và email là duy nhất.
- Ở chức năng này chúng tôi sử dụng CreateUserWizard khi kế thừa lớp MembershipProvider Để sử dụng được chức năng này, ngoài việc override hàm CreateUser, chúng tôi phải override lại tất cả các hàm trong lớp này mới có thể sử dụng được theo ý muốn Nhưng trong phần báo cáo này chúng tôi chỉ đề cập đến phần tạo tài khoản đăng nhập thôi
- Khi override chức năng này, chúng tôi sử dụng Linq để tạo kết nối và insert dữ liệu mới vào cơ sở dữ liệu
public override MembershipUser CreateUser( string username, string password,
string email, string passwordQuestion, string passwordAnswer, bool isApproved,
object providerUserKey, out MembershipCreateStatus status)
LastLockedOutDate = DateTime Now,
LastLoginDate = DateTime Now
Trang 14MembershipUser user = new MembershipUser ( base Name.ToString(),
stu.UserName.ToString(),
providerUserKey, stu.Email.ToString(),
stu.SercurityQuestion.ToString(),
stu.SercurityAnswer.ToString(), true , false ,
DateTime Now, DateTime Now,
DateTime Now, DateTime Now, DateTime Now);
return user;
- }
Sơ đồ Linq:
4 Chức năng phục hồi mật khẩu:
- Khi học viên quên mật khẩu đăng nhập là lúc học viên cần sử dụngchức năng này
- Khi sử dụng, học viên sẽ được yêu cầu trả lời câu hỏi định danh, dohọc viên tự nghĩ ra lúc đăng kí tài khoản Nếu trả lời đúng, password
Trang 15- Ở chức năng này chúng tôi cũng sử dụng wizard củaMembershipProvider.
public override string ResetPassword( string username, string answer)
{
DataClassesDataContext db = new DataClassesDataContext ();
Student stu = db.Students.SingleOrDefault(p => p.UserName ==
username && p.SercurityAnswer == answer);
5 Chức năng xem danh sách khoá học:
- Học viên muốn đăng kí khoá học thì phải biết được thông tin sơ lược
về các khoá học, ở chức năng này chúng tôi cho trang web hiển thị hết tất cả các khoá học một cách sơ lược để học viên lựa chọn và đăng kí
- Ở chức năng này chúng tôi sử dụng gridview và dùng linq để lấy thông tin trong cơ sở dữ liệu để đưa vào gridview
protected void jointable()
{
DataClassesDataContext db = new DataClassesDataContext ();
var query1 = from c in db.Courses
Trang 166 Chức năng đăng kí khoá học:
- Khi đã chọn khoá học muốn học và bấm đăng kí, thông tin chi tiết củakhoá học sẽ hiện ra cho biết các thông tin như: tên khoá học, ID khoáhọc, tên giảng viên, tài liệu học, học kì học, mô tả khoá học
- Chức năng này chúng tôi sử dụng formview để hiển thị và dùngstored procedure với tham số vào là ID của khoá học, được lưu bằngSession
ALTER PROCEDURE dbo.StoredProcedure1 @parameter1 char (5)
from Course, Faculty, Teacher
where Course.TeacherID=Teacher.TeacherID and
Teacher.FacultyID=Faculty.FacultyID and Course.CourseID like @parameter1
/* SET NOCOUNT ON */
-7 Chức năng xem danh sách các môn đã đăng kí:
- Nếu muốn xem lại các môn mình đã học, học viên sẽ sử dụng chức năng này, nhưng học viên không được phép xoá hay sửa thông tin được load lên
- Chức năng này được tạo bằng gridview, và chỉ hiện thị ID khoá học
đã học dựa trên tên tài khoản đăng nhập thôi
< asp : SqlDataSource ID ="SqlDataSource1" runat ="server"
Trang 17- Chức năng này cho phép học viên tạo feedback Nội dung feedback,thời gian gửi feedback, tài khoản gửi feedback sẽ được lưu lại trong
cơ sở dữ liệu thông qua linq
protected void Button2_Click( object sender, EventArgs e)
{
DataTable dt = ( DataTable )Session[ "TenDangNhap" ];
dt.Rows[0][ "UserName" ].ToString();
string fbID = IncreaseFeedbackID();
DataClassesDataContext fb = new DataClassesDataContext ();
Feedback nfb = new Feedback ();
Ngoài ra, để insert các dữ liệu vào cơ sở dữ liệu, tôi đã sử dụng hàm
tự tăng ID Đây là hàm tự tăng ID dành cho Feedback, các ID kháccũng được tạo tương tự Chúng tôi lấy số dòng của bảng rồi tạo cáctrường hợp để tìm được ID thích hợp
protected string IncreaseFeedbackID()
{
SqlConnection con = new SqlConnection ( "Data Source = ICARE_4810T\\ SQLEXPRESS; Initial Catalog = Fast_Learn_1; Integrated Security = true" ); int ctr, len;
string fbID, fbIDval;
string fb_ID = "" ;
string query1 = "Select FeedbackID from Feedback" ;
SqlDataAdapter da1 = new SqlDataAdapter (query1, con);
DataSet ds1 = new DataSet ();
Trang 19THIẾT KẾ GIAO DIỆN
Trang Master Page được thiết kế như sau:
< html xmlns ="http://www.w3.org/1999/xhtml">
< head runat ="server">
< title > Fast Learn - an E-Learning Solution </ title >
< meta http-equiv ="Content-Language" content ="English" />
< meta http-equiv ="Content-Type" content ="text/html; charset=UTF-8" />
< link rel ="stylesheet" type ="text/css" href ="text/style.css" media ="screen" />
< asp : ContentPlaceHolder id ="head" runat ="server">
< li >< a href ="Lietkekhoahoc.aspx"> Home </ a ></ li >
< li >< a href ="About.aspx"> About </ a ></ li >
< li >< a href ="Fback.aspx"> Feedback </ a ></ li >
< li >< a href ="Lietkekhoahoc.aspx"> Course </ a ></ li >
< li >< a href ="Taotaikhoan.aspx"> Sign up </ a ></ li >
< li >< a href ="DangNhap.aspx"> Sign in </ a ></ li >
</ ul >
</ div >
< div id ="content">
< div class ="right">
< asp : ContentPlaceHolder id ="ContentPlaceHolder1" runat ="server">
Trang 20</ div >
</ form >
</ body >
</ html >
Trang 21NHẬN XÉT CỦA GIẢNG VIÊN