Hệ thống quản lý vi phạm thành viên của CLB F-Code, được phát triển bằng ngôn ngữ C và chạy trên môi trường terminal/CLI.
Dự án giải quyết bài toán theo dõi thành viên CLB F-Code vi phạm nội quy, ghi nhận mức phạt, theo dõi công nợ và hỗ trợ Ban Chủ Nhiệm xử lý minh bạch, nhất quán hơn.
Theo tài liệu yêu cầu, hệ thống hướng tới các chức năng chính:
- Đăng nhập, đăng xuất, đổi mật khẩu
- Quản lý thành viên: thêm, sửa, xóa, xem danh sách
- Ghi nhận lịch sử vi phạm và tính mức phạt theo vai trò
- Theo dõi trạng thái đã thu/chưa thu tiền phạt
- Cảnh báo ngưỡng Out CLB và xuất báo cáo ra file
- Lưu dữ liệu xuống file để tránh mất dữ liệu khi thoát chương trình
Hiện tại, repo đang ở giai đoạn scaffold ban đầu: đã có Makefile, cấu trúc thư mục cơ bản, công cụ format/tidy và src/main.c tối thiểu để xác nhận luồng build.
-
Ngôn ngữ:
C17 -
Compiler mục tiêu:
gcc -
Loại ứng dụng: CLI / Terminal
-
Cơ chế lưu trữ: file
.dat -
Không sử dụng cơ sở dữ liệu, GUI hoặc thư viện ngoài C standard library
-
Team Workflow:
CONTRIBUTING.md -
Business Requirements:
docs/requirement-docs/QuanLyViPhamCLBFCode_V1.md -
Architecture and Module Design:
docs/planning/architecture.md -
Story List:
docs/stories/
Tài liệu này dùng luồng cmd trên Windows.
Nếu máy chưa cài gì, làm theo các bước sau trong cmd:
- Cài
MSYS2bằng Chocolatey:
choco install msys2 -yTheo cấu hình phổ biến của Chocolatey, MSYS2 sẽ nằm ở:
C:\tools\msys64
- Cập nhật hệ thống MSYS2 từ
cmd:
C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Suy --noconfirm"
C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Suy --noconfirm"- Cài toolchain và công cụ cần cho repo:
C:\tools\msys64\usr\bin\bash.exe -lc "pacman -S --noconfirm mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-make mingw-w64-ucrt-x86_64-clang mingw-w64-ucrt-x86_64-clang-tools-extra"- Thêm toolchain UCRT64 vào PATH của phiên
cmdhiện tại:
set "PATH=C:\tools\msys64\ucrt64\bin;%PATH%"- Kiểm tra nhanh:
gcc --version
mingw32-make --version
clang-format --version
clang-tidy --versionSau khi cài xong, môi trường sẽ có:
gccmingw32-makeclang-formatclang-tidy
Lưu ý quan trọng trên Windows:
- Với cấu hình hiện tại, lệnh build chuẩn là
mingw32-make - Khi dùng
cmd, cần bảo đảmC:\tools\msys64\ucrt64\bincó trong PATH - Không nên dùng
C:\tools\msys64\usr\bin\make.exe, vì dễ trộn môi trường MSYS và UCRT64
Mở cmd, vào thư mục repo, rồi chạy:
set "PATH=C:\tools\msys64\ucrt64\bin;%PATH%"
mingw32-makeSau khi build thành công, file output sẽ nằm tại một trong các đường dẫn sau:
bin/fcode-trainc
bin/fcode-trainc.exe
Chạy chương trình trên Windows:
.\bin\fcode-trainc.exeBuild project:
set "PATH=C:\tools\msys64\ucrt64\bin;%PATH%"
mingw32-makeXóa các file/thư mục sinh ra khi build:
set "PATH=C:\tools\msys64\ucrt64\bin;%PATH%"
mingw32-make cleanFormat source code:
set "PATH=C:\tools\msys64\ucrt64\bin;%PATH%"
mingw32-make formatPhân tích tĩnh bằng clang-tidy:
set "PATH=C:\tools\msys64\ucrt64\bin;%PATH%"
mingw32-make tidy- Yêu cầu nghiệp vụ:
docs/requirement-docs/QuanLyViPhamCLBFCode_V1.md - Kiến trúc và định hướng module:
docs/planning/architecture.md - Danh sách story:
docs/stories/ - Quy trình làm việc nhóm:
CONTRIBUTING.md - Các guideline bổ sung:
docs/guidelines/
Theo thiết kế hiện tại, dự án dự kiến tách thành các module sau:
main: điều hướng menu và vòng lặp chính của chương trìnhauth: đăng nhập, đăng xuất, đổi/reset mật khẩumember: CRUD thành viênviolation: ghi nhận vi phạm, tính mức phạt, cảnh báo Out CLBfileio: đọc/ghimembers.dat,violations.dat,accounts.datreport: thống kê và xuất báo cáoutils: validate và các hàm dùng chung