- SQL Server 2019 trở lên (Developer/Express Edition)
- .NET 6.0 SDK - Download
- Visual Studio 2022 (khuyên dùng) hoặc VS Code
- Git (nếu clone từ GitHub)
- RAM: 8GB
- Ổ cứng: 5GB trống
- Windows 10/11
Giải nén file THITN.rar vào thư mục: C:\THITN
-- 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-- Mở file: Database/CreateTables.sql
-- Execute để tạo các bảng-- Mở file: Database/SampleData.sql
-- Execute để insert dữ liệu test-- Mở file: Database/StoredProcedures.sql
-- Execute để tạo các SP cần thiếtINSERT INTO QUANTRI(TENDN, MATKHAU, VAITRO, COSO)
VALUES
('admin', '123456', 'TRUSOCHINH', 'CS1'),
('cs1admin', '123456', 'COSO', 'CS1'),
('cs2admin', '123456', 'COSO', 'CS2')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.
Mở terminal tại thư mục dự án và chạy:
cd C:\THITN
dotnet restoredotnet buildNếu có lỗi, kiểm tra:
- .NET 6.0 SDK đã cài đặt chưa
- Connection string có đúng không
dotnet runỨng dụng sẽ chạy tại:
- HTTP: http://localhost:5000
- HTTPS: https://localhost:5001
- Username:
admin - Password:
123456 - Quyền: Quản lý cả 2 cơ sở
- Username:
cs1admin - Password:
123456 - Quyền: Quản lý cơ sở 1
- Username:
cs2admin - Password:
123456 - Quyền: Quản lý cơ sở 2
- Username:
GV01 - Password:
123456
- Username:
001 - Password:
123456
- 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
- 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
- Xem lịch thi
- Làm bài thi trắc nghiệm
- Xem kết quả thi
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
Nguyên nhân: Database chưa tạo hoặc connection string sai
Giải pháp:
- Kiểm tra SQL Server instance có chạy không
- Kiểm tra database
TN_CSDLPTđã tạo chưa - Kiểm tra connection string trong
appsettings.json
Nguyên nhân: Password sai hoặc SQL Authentication chưa bật
Giải pháp:
- Mở SSMS → Server Properties → Security → Chọn "SQL Server and Windows Authentication mode"
- Restart SQL Server
- Đổi password tài khoản
sanếu cần
Nguyên nhân: Stored procedure chưa được tạo
Giải pháp:
Chạy file Database/StoredProcedures.sql trong SSMS
Nguyên nhân: Port 5000/5001 đã bị chiếm
Giải pháp:
- Đóng ứng dụng khác đang dùng port này
- Hoặc thay đổi port trong
Properties/launchSettings.json
- 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
Nếu gặp vấn đề khi cài đặt hoặc chạy dự án, vui lòng liên hệ:
- Repository: https://github.com/BeBest111/Distributed_Web_System
- Email: [Thêm email nhóm]
- 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