Skip to content

BeBest111/Distributed_Web_System

Repository files navigation

HỆ THỐNG THI TRẮC NGHIỆM PHÂN TÁN

YÊU CẦU HỆ THỐNG

Phần mềm cần cài đặt:

  1. SQL Server 2019 trở lên (Developer/Express Edition)
  2. .NET 6.0 SDK - Download
  3. Visual Studio 2022 (khuyên dùng) hoặc VS Code
  4. Git (nếu clone từ GitHub)

Cấu hình tối thiểu:

  • RAM: 8GB
  • Ổ cứng: 5GB trống
  • Windows 10/11

HƯỚNG DẪN CÀI ĐẶT

Bước 1: Giải nén dự án

Giải nén file THITN.rar vào thư mục: C:\THITN

Bước 2: Cấu hình SQL Server

2.1. Tạo Database

-- Mở SQL Server Management Studio (SSMS)
-- Kết nối với instance: .\CSDLPT_NHOM11
-- Chạy script tạo database:

CREATE DATABASE TN_CSDLPT
GO

USE TN_CSDLPT
GO

2.2. Chạy script tạo bảng

-- Mở file: Database/CreateTables.sql
-- Execute để tạo các bảng

2.3. Import dữ liệu mẫu (nếu có)

-- Mở file: Database/SampleData.sql
-- Execute để insert dữ liệu test

2.4. Tạo Stored Procedures

-- Mở file: Database/StoredProcedures.sql
-- Execute để tạo các SP cần thiết

2.5. Tạo tài khoản admin

INSERT INTO QUANTRI(TENDN, MATKHAU, VAITRO, COSO)
VALUES 
('admin', '123456', 'TRUSOCHINH', 'CS1'),
('cs1admin', '123456', 'COSO', 'CS1'),
('cs2admin', '123456', 'COSO', 'CS2')

Bước 3: Cấu hình Connection String

Mở file appsettings.json và sửa connection string:

{
  "ConnectionStrings": {
    "DefaultConnection": "Data Source=.\\CSDLPT_NHOM11;Initial Catalog=TN_CSDLPT;User ID=sa;Password=123456;TrustServerCertificate=True"
  }
}

Lưu ý: Thay 123456 bằng password SQL Server của bạn.

Bước 4: Restore NuGet Packages

Mở terminal tại thư mục dự án và chạy:

cd C:\THITN
dotnet restore

Bước 5: Build dự án

dotnet build

Nếu có lỗi, kiểm tra:

  • .NET 6.0 SDK đã cài đặt chưa
  • Connection string có đúng không

Bước 6: Chạy ứng dụng

dotnet run

Ứng dụng sẽ chạy tại:


HƯỚNG DẪN SỬ DỤNG

Đăng nhập:

Tài khoản Admin (Trưởng Sở):

  • Username: admin
  • Password: 123456
  • Quyền: Quản lý cả 2 cơ sở

Tài khoản Cơ sở 1:

  • Username: cs1admin
  • Password: 123456
  • Quyền: Quản lý cơ sở 1

Tài khoản Cơ sở 2:

  • Username: cs2admin
  • Password: 123456
  • Quyền: Quản lý cơ sở 2

Tài khoản Giảng viên (ví dụ):

  • Username: GV01
  • Password: 123456

Tài khoản Sinh viên (ví dụ):

  • Username: 001
  • Password: 123456

CHỨC NĂNG CHÍNH

1. Quản trị viên:

  • Quản lý môn học
  • Quản lý khoa, lớp
  • Quản lý sinh viên
  • Quản lý giảng viên
  • Xem báo cáo tổng hợp

2. Giảng viên:

  • Nhập đề thi trắc nghiệm
  • Đăng ký thi cho lớp
  • Xem bảng điểm
  • Xem danh sách đăng ký thi

3. Sinh viên:

  • Xem lịch thi
  • Làm bài thi trắc nghiệm
  • Xem kết quả thi

CẤU TRÚC THỦ MỤC

THITN/
│
├── Controllers/          # Controllers (MVC)
│   ├── LoginController.cs
│   ├── MonHocController.cs
│   ├── KhoaLopController.cs
│   ├── SinhVienController.cs
│   ├── GiangVienController.cs
│   ├── BoDeController.cs
│   ├── DangKyThiController.cs
│   ├── ThiController.cs
│   └── BaoCaoController.cs
│
├── BLL/                  # Business Logic Layer
│   ├── MonHocBLL.cs
│   ├── KhoaLopBLL.cs
│   ├── SinhVienBLL.cs
│   ├── GiangVienBLL.cs
│   ├── BoDeBLL.cs
│   └── ThiBLL.cs
│
├── DAL/                  # Data Access Layer
│   ├── DataProvider.cs
│   ├── MonHocDAL.cs
│   ├── KhoaDAL.cs
│   ├── LopDAL.cs
│   ├── SinhVienDAL.cs
│   ├── GiaoVienDAL.cs
│   ├── BoDeDAL.cs
│   ├── GiaoVien_DangKyDAL.cs
│   └── BangDiemDAL.cs
│
├── Views/                # Razor Views
│   ├── Login/
│   ├── Admin/
│   ├── GiangVien/
│   ├── SinhVien/
│   ├── MonHoc/
│   ├── KhoaLop/
│   ├── BoDe/
│   ├── DangKyThi/
│   ├── Thi/
│   └── BaoCao/
│
├── wwwroot/              # Static files
│   ├── css/
│   ├── js/
│   └── lib/
│
├── Database/             # SQL Scripts
│   ├── CreateTables.sql
│   ├── StoredProcedures.sql
│   └── SampleData.sql
│
├── appsettings.json      # Configuration
└── Program.cs            # Entry point

TROUBLESHOOTING

Lỗi: "Cannot open database"

Nguyên nhân: Database chưa tạo hoặc connection string sai

Giải pháp:

  1. Kiểm tra SQL Server instance có chạy không
  2. Kiểm tra database TN_CSDLPT đã tạo chưa
  3. Kiểm tra connection string trong appsettings.json

Lỗi: "Login failed for user 'sa'"

Nguyên nhân: Password sai hoặc SQL Authentication chưa bật

Giải pháp:

  1. Mở SSMS → Server Properties → Security → Chọn "SQL Server and Windows Authentication mode"
  2. Restart SQL Server
  3. Đổi password tài khoản sa nếu cần

Lỗi: "Could not find stored procedure"

Nguyên nhân: Stored procedure chưa được tạo

Giải pháp: Chạy file Database/StoredProcedures.sql trong SSMS

Ứng dụng build thành công nhưng không chạy

Nguyên nhân: Port 5000/5001 đã bị chiếm

Giải pháp:

  1. Đóng ứng dụng khác đang dùng port này
  2. Hoặc thay đổi port trong Properties/launchSettings.json

CÔNG NGHỆ SỬ DỤNG

  • Backend: ASP.NET Core 6.0 MVC
  • Database: SQL Server 2019
  • Frontend: Bootstrap 5, jQuery 3.6.0
  • Architecture: 3-Layer (DAL - BLL - Controller/View)
  • ORM: ADO.NET (DataProvider pattern)
  • Session: In-Memory Session

LIÊN HỆ & HỖ TRỢ

Nếu gặp vấn đề khi cài đặt hoặc chạy dự án, vui lòng liên hệ:


NOTES

  • Dự án này phục vụ mục đích học tập
  • Một số chức năng còn đang phát triển
  • Cần cấu hình Merge Replication để đồng bộ giữa 2 cơ sở (nâng cao)

Version: 1.0
Last Updated: 25/11/2025

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published