Qua biểu mẫu nộp học phí ta xác định được:
-Sinh viên nộp học phí là ai dựa vào thông tin của sinh viên về họ tên, mã sinh viên, lớp, ngày sinh.
-Hình thức sinh viên đăng kí học cải thiện hoặc học lại. -Thông tin học phần sinh viên đăng kí.
KẾT LUẬN 1. Kết luận
Được sự hướng dẫn nhiệt tình của giảng viên hướng dẫn kết hợp với tinh thần ham học hỏi, tìm tòi nghiên cứu những kiến thức mới, nhóm chúng tôi đã nghiên cứu và xây dựng thành công website đăng ký học lại, học cải thiện cho sinh viên Trường Đại học Nội Vụ Hà Nội, nhóm đã thu được một số kết quả sau đây:
-Nghiên cứu và lựa chọn ứng dụng Laravel Framework là một trong những giải pháp tốt nhất cho những ai đang cần phát triển website bằng ngôn ngữ PHP. Ngoài tính năng bảo mật, khả năng mở rộng cao, dễ dàng làm việc giữa các nhóm cộng tác, giảm thiểu thời gian viết mã lệnh (code) thì PHP và các framework còn ngày càng được bổ sung những giải pháp mới, công nghệ mới giúp cho lập trình viên dễ dàng khai thác, kế thừa và phát triển.
-Nhóm đã tự đăng ký địa chỉ truy cập (tên miền) website là:
http://hockyphu.com và cấp quyền truy cập qua email và mật khẩu cho các cá
nhân phụ trách nghiệp vụ của Phòng QLĐT Đại học và phòng KH-TC của Trường Đại học Nội vụ Hà Nội thử nghiệm sử dụng các chức năng. Đây cũng là một phần nội dung mà nhóm mong muốn nhận được sự góp ý xây dựng và những yêu cầu mới trong khi các thành viên của nhóm chưa có điều kiện tiếp cận và phân tích thực tế khi triển khai;
-Nhóm đã phát hành bản thử nghiệm từ tháng 12/2019 trên facebook “Nhóm ngành Hệ thống thông tin – Trường Đại học Nội vụ Hà Nội” để tranh thủ ý kiến đóng góp xây dựng của các anh chị, các bạn sinh viên cùng chuyên ngành Hệ thống thông tin và các thầy cô giáo đang công tác, giảng dạy tại Trung tâm Tin học – Ngoại ngữ. Quá trình chạy thử nghiệm, nhóm đã thu nhận được nhiều ý kiến phản hồi tích cực và góp ý quý báu để giúp chúng tôi nghiên cứu và chỉnh sửa vận hành website đạt được yêu cầu đề ra.
2. Kiến nghị
- Hiện nay, việc đăng ký học lại, học cải thiện điểm của Trường vẫn đang áp dụng bằng hình thức tổ chức các đợt với số lượng các học phần cố định. Sinh viên, học viên đăng ký theo hình thức điền phiếu và nộp về Phòng Quản lý đào tạo đại học sau khi xin được các chữ ký của cố vấn học tập và các đơn vị liên quan. Thủ tục đăng ký này vẫn còn thực hiện thủ công nên gây lãng phí thời gian, công sức của cả sinh viên, thầy cô giáo cố vấn học tập và các cán bộ thực hiện công việc. Nếu website này được áp dụng thực tế thì sẽ giúp công việc được nhanh chóng, đồng bộ và tiết kiệm hơn rất nhiều.
- Đề tài nghiên cứu khoa học này cũng là tiền đề để nhóm chúng em tiếp tục nghiên cứu và ứng dụng công nghệ thông tin vào các hoạt động của Trường nói riêng và thực hiện theo nhu cầu xã hội nói chung. Chúng em rất mong nhận được sự quan tâm, chỉ đạo, giới thiệu của Ban giám hiệu, các thầy cô giáo và các bạn sinh viên để nhóm có điều kiện nghiên cứu, nhân rộng mô hình và tận dụng thế mạnh của công nghệ thông tin giúp ích cho con người và xã hội giải quyết tự động, khoa học các công việc bằng công cụ máy tính.
TÀI LIỆU THAM KHẢO
[1] Văn bản hợp nhất số 17/VBHN-BGDĐT ngày 15/5/2014 của Bộ Giáo dục và Đào tạo về Văn bản hợp nhất Quyết định số 43/2007/QĐ-BGDĐT ngày 15/08/2007 và Thông tư số 57/2012/TT-BGDĐT ngày 27/12/2012 về việc ban hành quy chế đào tạo đại học và cao đẳng hệ chính quy theo hệ thống tín chỉ; [2] Thông tư số 57-2012-TT-BGDĐT ban hành ngày 27/12/2012 về Sửa đổi, bổ sung một số điều của Quy chế đào tạo đại học và cao đẳng hệ chính quy theo hệ thống tín chỉ ban hành kèm theo Quyết định số 43/2007/QĐ-BGDĐT ngày 15 tháng 8 năm 2007 của Bộ trưởng Bộ Giáo dục và Đào tạo;
[3] Quyết định Số: 43/2007/QĐ-BGD&ĐT ban hành ngày 15 tháng 8 năm 2007 về Quy chế đào tạo đại học và cao đẳng hệ chính quy theo hệ;
[4] Quyết định số 583/QĐ-ĐHNV ngày 12/5/2014 của Trường Đại học Nội vụ Hà Nội ban hành quy chế đào tạo đại học, cao đẳng theo hệ thống tín chỉ;
[5] Trần Văn Chương (Đại học Phú Yên), Luận án tiến sĩ “Quản lý đào tạo theo hệ thống tín chỉ trong các trường đại học địa phương ở Việt Nam”;
[6] Khuất Thùy Phương, Giáo trình Lập trình ứng dụng web với PHP, Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh (2015);
[7] Lê Quang Sơn, “Những vấn đề của quản lý đào tạo theo học chế tín chỉ ở trường đại học sư phạm”, Tạp chí Khoa học và công nghệ, Đại học Đà Năng, số 6(41) – 2010.
[8] Joel Murach (và Ray Harris) – Đại học FPT, Lập trình cơ bản PHP và MySQL, Nhà xuất bản Khoa học và Kỹ thuật (2015)
PHỤ LỤC Thiết lập điều hướng routes cho website
Route::get('/','UserController@index')->name('users'); Route::post('/xu-ly','UserController@addPost')->name('addPost'); Route::get('thongbao/1MwefT62PtFf4ikB5d0EhJXC5K4Yerzr1G42ygfWgahE/{mssv}',' UserController@getTb')->name('thongbao'); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); Route::get('/FMfcgxwGCtQsZjNgBZHCcmfNNlVdDvCS.html', 'HomeController@xacnhan')->name('xacnhan')->middleware('can:khtc'); Route::post('/FMfcgxwGCtQsZjNgBZHCcmfNNlVdDv76.html', 'HomeController@postData')->name('abc')->middleware('can:khtc'); Route::get('/FMfcgxwGCtQsZjNgBZHCcmfNNlVdDvab.html', 'HomeController@layData')->name('laydulieu')->middleware('can:khtc'); Route::get('/FMfcgxwGCtQsZjNgBZHCcmfNNydv.html/{a}/{b}', 'HomeController@saveData')->name('save')->middleware('can:khtc'); Route::get('/fT62PtFf4ikB5d0EhJXC5K4Y.html','HomeController@gethoclai')- >name('hoclai')->middleware('can:qldt'); Route::get('/fT62PtFf4ikB5d0EhJXC55tB.html','HomeController@gethocct')- >name('hocct')->middleware('can:qldt'); Route::get('/fT62PtFf4ikB5d0EhJRTBds.html','HomeController@getinds')- >name('inds')->middleware('can:qldt'); Route::get('/fT62PtFf4ikB5vcVhJRTBds.html/{mahp}','HomeController@getprint')- >name('print')->middleware('can:qldt'); Route::get('/fT62PtFf4ikB5vcreDSTBds.html','HomeController@getsetting')- >name('setting'); Route::get('/fT62PtFf4ikB5vcrytbvBds.html/{id}','HomeController@postsetting')- >name('postset'); Route::get('/fT62PtFf4ikB5vcrTTBSvsd.html','HomeController@postdelete')- >name('deleteall'); Route::post('editPost','HomeController@editPost');
Route::post('deletePost','HomeController@deletePost'); Route::get('add-new-class','HomeController@addClass')->name('addClass')- >middleware('can:qldt'); Route::post('add-class','HomeController@postClass')->name('add_class')- >middleware('can:qldt'); Route::get('list-class','HomeController@list')->name('list')->middleware('can:qldt'); Route::get('add-student/{a}','HomeController@add')->name('add_student')- >middleware('can:qldt'); Route::get('add-student-inter','HomeController@addOne')->name('add')- >middleware('can:qldt'); Đoạn lệnh xử lý dữ liệu <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\sinhvien; use App\hocphan; use Mail; use App\caidat; use App\Mail\thongBao;
class UserController extends Controller {
public function index() {
$mn = caidat::All()->first();
return view('users.index',compact('mn')); }
public function addPost(Request $request) {
$new = new sinhvien;
$new1 = new hocphan;
$new2 = new hocphan;
$new3 = new hocphan;
$mssv=$request->b; $new->hoten = $request->a; $new->mssv = $request->b; $new->ngaysinh = $request->c; $new->malop = $request->d; $new->email = $request->e; $new->dangky = $request->f; $new1->mssv = $request->b; $new1->tenhp = $request->hp1; $new1->stc = $request->tc1; $new1->mahp = $request->mahp1; $new1->lophg = $request->lg1; $new->save(); $new1->save(); if($request->hp2 != ''){ $new2->mssv = $request->b; $new2->tenhp = $request->hp2; $new2->stc = $request->tc2; $new2->mahp = $request->mahp2; $new2->lophg = $request->lg2; $new2->save(); }
if($request->hp3 != ''){ $new3->mssv = $request->b; $new3->tenhp = $request->hp3; $new3->stc = $request->tc3; $new3->mahp = $request->mahp3; $new3->lophg = $request->lg3; $new3->save(); } return redirect()->route('thongbao',['mssv'=>$mssv]); }
public function getTb($mssv) { $sinhvien = sinhvien::All()->where('mssv',$mssv)->first(); $hocphan = hocphan::All()->where('mssv',$mssv); $caidat = caidat::All()->first(); $tc = hocphan::All()->where('mssv',$mssv)->sum('stc'); Mail::to($sinhvien->email)->send(new thongBao($sinhvien,$hocphan,$caidat,$tc)); return view('mail01',compact('sinhvien')); } }
Xử lý đăng ký học lại, học cải thiện
<?php
namespace App\Http\Controllers; use Illuminate\Http\Request; use App\sinhvien;
use App\hocphan; use App\caidat;
class HomeController extends Controller {
/**
* Create a new controller instance. *
* @return void */
public function __construct() {
$this->middleware('auth'); }
/**
* Show the application dashboard. *
* @return \Illuminate\Contracts\Support\Renderable */
public function index() {
$hl = sinhvien::All()->where('dangky','Học lại')->count();
$hct = sinhvien::All()->where('dangky','Học cải thiện')->count(); $xn = xacnhan::All()->count();
$sv = sinhvien::All(); $hp1 = hocphan::All();
$hp = hocphan::distinct()->get(['tenhp']);
return view('home', compact('hp1','sv','hl','hct','xn','tt','hp'));
}
public function xacnhan(){ return view('xacnhan'); }
public function postData(Request $request) { $a = $request->a; // $dulieu = sinhvien::distinct()->get(['mssv'])->where('mssv',$a) $xacnhan = xacnhan::All()->where('mssv',$a)->first(); $dulieu = sinhvien::All()->where('mssv',$a)->first(); $hocphan = hocphan::All()->where('mssv',$a); $mn = caidat::All()->first(); $tc = hocphan::All()->where('mssv',$a)->sum('stc'); return view('showdata',compact('dulieu','hocphan','mn','tc','xacnhan')); }
public function saveData($a, $b) {
if($b==0){
return redirect()->route('xacnhan')->with('tb','Sinh viên không đăng ký học phần nào');
}
$new = new xacnhan; $new->mssv = $a; $new->tongstc = 'hl,hct';
$new->tongtien = $b; $new->trangthai = 1; $new->save(); return redirect()->route('xacnhan'); }
public function gethoclai() {
$dulieu = sinhvien::All()->where('dangky','Học lại'); $hocphan = hocphan::All();
return view('hoclai',compact('dulieu','hocphan')); }
public function gethocct() {
$dulieu = sinhvien::All()->where('dangky','Học cải thiện'); $hocphan = hocphan::All();
return view('hocct',compact('dulieu','hocphan')); }
public function getinds() {
$hp = hocphan::distinct()->get(['tenhp','mahp']); return view('inds',compact('hp'));
}
public function getprint($a) {
$xacnhan = xacnhan::All(); $sinhvien = sinhvien::All();
$hocphan = hocphan::All()->where('mahp',$a); $chitiet = hocphan::All()->where('mahp',$a)->first();
return view('print',compact('sinhvien','hocphan','xacnhan','chitiet')); }
public function getsetting() {
$caidat = caidat::All()->first();
return view('caidat', compact('caidat')); }
public function postsetting($id) { $new = caidat::find($id); if($new['trangthai']==0){ $new->trangthai=1; $new->save(); }else{ $new->trangthai=0; $new->save(); } return redirect()->route('setting'); }
public function postdelete() {
sinhvien::truncate(); xacnhan::truncate(); hocphan::truncate();
return redirect()->route('home'); }
public function deletePost(request $req) {
$delete = hocphan::find($req->id); $delete->delete();
return response()->json(); }
public function getInforById(Request $req) {
$data = hocphan::find($req->id); return response()->json($data); }
public function editPost(request $request){ $post = hocphan::find ($request->id); $post->tenhp = $request->tenhp; $post->mahp = $request->mahp; $post->stc = $request->sotc; if($post->lophg == ''){ $post->lophg = ''; }else{ $post->lophg = $request->lophg; } $post->save(); return response()->json($post); }
public function addClass() {
return view('addclass'); }
public function postClass(request $req) { $ngay = $req->batdau; $day = substr($ngay, 0,2); $month = substr($ngay, 3,2); $y = substr($ngay, 6,4); $date = $month.'/'.$day.'/'.$y; $ngay = $req->ketthuc; $day = substr($ngay, 0,2); $month = substr($ngay, 3,2); $y = substr($ngay, 6,4); $date1 = $month.'/'.$day.'/'.$y; $thoigian = $date.' - '.$date1; $t1 = $req->t1; $tb1 = $req->tb1; $tk1 = $req->tk1; $ph1 = $req->ph1; $t2 = $req->t2; $tb2 = $req->tb2; $tk2 = $req->tk2; $ph2 = $req->ph2; $t3 = $req->t3; $tb3 = $req->tb3;
$tk3 = $req->tk3; $ph3 = $req->ph3; $t4 = $req->t4; $tb4 = $req->tb4; $tk4 = $req->tk4; $ph4 = $req->ph4; $lh = '<p>'.$t1.'(T'.$tb1.'-'.$tk1.')'.'</p>'; $lh3 = ''; $phg3 = ''; if($t2 !== ''){ $lh3 = '<p>'.$t2.'(T'.$tb2.'-'.$tk2.')'.'</p>'; $phg3 = '<p>'.$ph2.'</p>'; } $phg = '<p>'.$ph1.'</p>'; $lh1 = ''; $phg1 = ''; if($t3 !==''){ $lh1 = '<p>'.$t3.'(T'.$tb3.'-'.$tk3.')'.'</p>'; $phg1 = '<p>'.$ph3.'</p>'; } $lh2 = ''; $phg2 = ''; if($t4 !==''){ $lh2 = '<p>'.$t4.'(T'.$tb4.'-'.$tk4.')'.'</p>';
$phg2 = '<p>'.$ph4.'</p>'; } $lichhoc = $lh.$lh3.$lh1.$lh2; $phonghoc = $phg.$phg3.$phg1.$phg2; echo $thoigian.'</br>'; echo $lichhoc; echo $phonghoc; //$ngay1 = '<p>'.$date.'</p>'.'<p>'.$date1.'</p> }
public function list() {
//lấy ra thông tin lớp
// còn trống = siso - count(sinhvien lop) return view('sort.list');
}
public function add() {
return view('sort.add'); }
public function addOne() {
return view('sort.add1'); }
}
Tạo phân quyền cho website
Dựa vào thuộc tính level trong bảng users, ta dùng Gate trong laravel để tạo phân quyền đăng nhập cho website. Nếu level bằng 1 là của phòng QLĐT Đại học, nếu level bằng 2 là của phòng KH – TC. Tài khoản nào được phân quyền ở
nhóm chức năng nào thì chỉ được sử dụng các chức năng đó, không được sử dụng các chức năng khác trên hệ thống.
public function boot() {
$this->registerPolicies();
Gate::define('qldt', function ($user){ return $user->level ==1;
});
Gate::define('khtc', function ($user){ return $user->level == 2;
}); }