Hệ thống quản lý hành chính dựa trên công nghệ Blockchain nhằm số hóa và minh bạch hóa các thủ tục hành chính công. Dự án tập trung vào việc xây dựng một nền tảng an toàn, bảo mật và có thể truy xuất nguồn gốc cho việc quản lý các giấy tờ và thủ tục hành chính của công dân.
- Số hóa thủ tục hành chính: Chuyển đổi các quy trình giấy tờ truyền thống sang môi trường số
- Tăng tính minh bạch: Sử dụng blockchain để đảm bảo tính minh bạch trong quá trình xử lý
- Bảo mật thông tin: Áp dụng mã hóa và blockchain để bảo vệ dữ liệu công dân
- Truy xuất nguồn gốc: Theo dõi toàn bộ quá trình xử lý từ khi nộp đến khi hoàn thành
- Giảm thời gian xử lý: Tự động hóa các quy trình để rút ngắn thời gian chờ đợi
- React.js - Thư viện JavaScript cho giao diện người dùng
- Material-UI - Framework UI components
- Redux Toolkit - Quản lý state ứng dụng
- Axios - HTTP client cho API calls
- React Router - Điều hướng trong ứng dụng
- Django - Framework web Python
- Django REST Framework - API development
- SQLite3 - Cơ sở dữ liệu chính
- JWT - Authentication và authorization
- Hyperledger Fabric - Blockchain framework chính
- Ethereum/Quorum - Blockchain phụ trợ
- Smart Contracts - Chaincode cho business logic
- IPFS - Lưu trữ file phân tán
- Docker - Containerization
- Docker Compose - Multi-container orchestration
- Nginx - Web server và reverse proxy
- Kubernetes - Container orchestration (production) (comming soon)
| STT | Họ và Tên | MSSV | Vai Trò | |
|---|---|---|---|---|
| 1 | Võ Trọng Nhơn | 22658441 | Team Leader, Backend Developer, Blockchain Developer, Frontend Developer | trongnhon29032004@gmail.com |
| 2 | Đỗ Tấn Đạt | 22648601 | Frontend Developer, UI/UX, Blockchain Developer | dlucifix@gmail.com |
| 3 | Trần Phú Thọ | 22653431 | Blockchain Developer, Frontend Developer, UI/UX | phuthost2016@gmail.com |
Giảng viên hướng dẫn: ThS. Trương Vĩnh Linh
Môn học: Phát triển ứng dụng
Năm học 2024-2025
🔗 Link video demo: [https://www.youtube.com/watch?v=ERHAgHecZsE]
Video demo bao gồm:
- Giới thiệu tổng quan hệ thống
- Demo các chức năng chính
- Workflow từ công dân đến cán bộ và chủ tịch xã
- Tính năng blockchain và xác thực giấy tờ
# Windows PowerShell
.\setup-oauth.ps1
# Linux/macOS
chmod +x setup-oauth.sh
./setup-oauth.shLinux/macOS:
git clone [repository-url]
cd blockchain-administrative-management
chmod +x scripts/deploy.sh
./scripts/deploy.shWindows:
git clone [repository-url]
cd blockchain-administrative-management
.\scripts\deploy.ps1Windows (Local Development):
git clone [repository-url]
cd blockchain-administrative-management
.\scripts\start.batSau khi chạy script, truy cập:
- 🌐 Frontend: http://localhost:3000
- 🔧 Backend API: http://localhost:8000/api
- 👨💼 Admin Panel: http://localhost:8000/admin
Sau khi chạy script, bạn có thể tạo tài khoản demo:
# Tạo superuser
docker-compose exec backend python manage.py createsuperuser
# Hoặc tạo mock data
docker-compose exec backend python manage.py create_mock_documents --user-email=demo@example.com- Node.js >= 16.0.0
- Python >= 3.9
- Docker >= 20.10.0
- Docker Compose >= 2.0.0
- Git
git clone [repository-url]
cd blockchain-administrative-management🚀 Triển Khai Tự Động - Linux/macOS:
# Chạy script deploy tự động
chmod +x scripts/deploy.sh
./scripts/deploy.sh🚀 Triển Khai Tự Động - Windows PowerShell:
# Chạy script deploy tự động
.\scripts\deploy.ps1🚀 Khởi Động Nhanh - Windows:
# Chạy script start.bat để khởi động local development
.\scripts\start.batScript tự động sẽ:
- ✅ Tạo file
.envtừ template - ✅ Build Docker images
- ✅ Khởi động tất cả services
- ✅ Chờ database sẵn sàng
- ✅ Chạy migrations
- ✅ Collect static files
- ✅ Hiển thị status và URLs
Cấu Hình Environment Variables:
# Copy file environment mẫu
cp .env.example .env
# Chỉnh sửa các biến môi trường cần thiết
nano .envDevelopment Environment:
# Khởi động tất cả services
docker-compose -f docker-compose.dev.yml up -d
# Xem logs
docker-compose -f docker-compose.dev.yml logs -f
# Dừng services
docker-compose -f docker-compose.dev.yml downProduction Environment:
# Khởi động production
docker-compose up -d
# Xem logs
docker-compose logs -f
# Dừng services
docker-compose down| Service | URL | Mô Tả |
|---|---|---|
| Frontend | http://localhost:3000 | Giao diện người dùng |
| Backend API | http://localhost:8000 | Django REST API |
| Admin Panel | http://localhost:8000/admin | Django Admin |
| Database | localhost:5432 | PostgreSQL |
Nếu gặp lỗi network khi đăng nhập Google:
- Chưa setup OAuth: Chạy script
setup-oauth.ps1(Windows) hoặcsetup-oauth.sh(Linux/Mac) - Sai Redirect URIs: Kiểm tra Google Console settings
- Backend chưa chạy: Đảm bảo Django server đang chạy ở port 8000
- Lỗi CORS: Kiểm tra frontend có chạy ở port 3000 không
📖 Xem hướng dẫn chi tiết: GOOGLE_OAUTH_SETUP.md
- Port đã sử dụng: Thay đổi ports trong
docker-compose.yml - Docker không khởi động: Kiểm tra Docker Desktop có đang chạy
- Database lỗi: Xóa volumes và khởi động lại:
docker-compose down -v && docker-compose up -d| Redis | localhost:6379 | Redis Cache |
# Di chuyển vào thư mục backend
cd backend
# Tạo virtual environment
python -m venv venv
# Kích hoạt virtual environment
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate
# Cài đặt dependencies
pip install -r requirements/local.txt
# Cấu hình database (SQLite cho development)
python manage.py migrate
# Tạo superuser
python manage.py createsuperuser
# Tạo mock data (optional)
python manage.py create_mock_documents --user-email=your-email@example.com
# Khởi động server
python manage.py runserver# Mở terminal mới, di chuyển vào thư mục frontend
cd frontend
# Cài đặt dependencies
npm install
# Khởi động development server
npm start# Di chuyển vào thư mục blockchain
cd blockchain
# Khởi động Hyperledger Fabric network
./scripts/start-network.sh
# Deploy smart contracts
./scripts/deploy-contracts.sh- Xem thông tin giới thiệu hệ thống
- Tra cứu thủ tục hành chính
- Xác thực giấy tờ công khai
- Liên hệ và hỗ trợ
-
Đăng Ký/Đăng Nhập
- Tạo tài khoản mới hoặc đăng nhập
- Xác thực email và thông tin cá nhân
-
Quản Lý Hồ Sơ
- Cập nhật thông tin cá nhân
- Quản lý thông tin liên hệ
-
Nộp Đơn Yêu Cầu
- Chọn loại thủ tục cần thực hiện
- Điền thông tin và upload tài liệu
- Theo dõi tiến độ xử lý
-
Quản Lý Giấy Tờ
- Xem danh sách giấy tờ đã cấp
- Tải xuống bản điện tử
- Xác thực tính hợp lệ
-
Dashboard Quản Lý
- Xem thống kê công việc
- Theo dõi yêu cầu đang xử lý
-
Xử Lý Yêu Cầu
- Tiếp nhận và phân loại đơn
- Xem xét hồ sơ và tài liệu
- Phê duyệt hoặc yêu cầu bổ sung
-
Quản Lý Công Dân
- Xem thông tin công dân
- Lịch sử giao dịch
-
Dashboard Tổng Quan
- Thống kê toàn bộ hoạt động
- Báo cáo hiệu suất
-
Quản Lý Cán Bộ
- Phê duyệt tài khoản cán bộ mới
- Phân quyền và quản lý
-
Phê Duyệt Cuối
- Xét duyệt các yêu cầu quan trọng
- Ký số và xác thực
Dự án cung cấp các script tiện ích để dễ dàng triển khai và quản lý:
| Script | Platform | Mô Tả |
|---|---|---|
scripts/deploy.sh |
Linux/macOS | Script triển khai tự động với Docker |
scripts/deploy.ps1 |
Windows PowerShell | Script triển khai tự động cho Windows |
scripts/start.bat |
Windows | Khởi động nhanh local development |
# Tạo mock data cho testing
python manage.py create_mock_documents --user-email=test@example.com --count=10
# Tạo superuser
python manage.py createsuperuser
# Reset database (cẩn thận!)
python manage.py flush
# Backup database
python manage.py dumpdata > backup.json
# Restore database
python manage.py loaddata backup.json# Xem logs của tất cả services
docker-compose logs -f
# Xem logs của service cụ thể
docker-compose logs -f backend
docker-compose logs -f frontend
docker-compose logs -f db
# Restart service cụ thể
docker-compose restart backend
# Rebuild và restart
docker-compose up -d --build backend
# Dọn dẹp containers và volumes
docker-compose down -v
docker system prune -a# Kết nối vào PostgreSQL container
docker-compose exec db psql -U postgres -d blockchain_admin
# Backup database
docker-compose exec db pg_dump -U postgres blockchain_admin > backup.sql
# Restore database
docker-compose exec -T db psql -U postgres blockchain_admin < backup.sql
# Xem database size
docker-compose exec db psql -U postgres -c "SELECT pg_size_pretty(pg_database_size('blockchain_admin'));"# Kiểm tra tất cả services
curl http://localhost:8000/api/health/
curl http://localhost:3000/health
# Kiểm tra database connection
docker-compose exec backend python manage.py dbshell# Reset hoàn toàn (xóa tất cả data)
docker-compose down -v
docker system prune -a
./scripts/deploy.sh# Database Configuration
DB_HOST=localhost
DB_PORT=5432
DB_NAME=blockchain_admin
DB_USER=postgres
DB_PASSWORD=your_password
# Redis Configuration
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=your_redis_password
# Django Settings
SECRET_KEY=your_secret_key
DEBUG=true
ALLOWED_HOSTS=localhost,127.0.0.1
# Blockchain Configuration
BLOCKCHAIN_NETWORK=development
HYPERLEDGER_PEER_URL=peer0.org1.example.com:7051
ETHEREUM_RPC_URL=http://localhost:8545
# Email Configuration (Optional)
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_HOST_USER=your_email@gmail.com
EMAIL_HOST_PASSWORD=your_app_passwordserver {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://frontend:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /api/ {
proxy_pass http://backend:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /static/ {
alias /app/static/;
}
location /media/ {
alias /app/media/;
}
}cd backend
python manage.py testcd frontend
npm test# Sử dụng pytest cho API testing
cd backend
pytest api/tests/- Django:
backend/logs/ - Nginx:
/var/log/nginx/ - Docker:
docker-compose logs
- Backend:
http://localhost:8000/api/health/ - Frontend:
http://localhost:3000/health - Database:
docker-compose exec db pg_isready
# Kiểm tra port đang sử dụng
netstat -tulpn | grep :3000
netstat -tulpn | grep :8000
# Dừng process đang sử dụng port
sudo kill -9 $(lsof -ti:3000)
sudo kill -9 $(lsof -ti:8000)# Kiểm tra Docker service
sudo systemctl status docker
# Khởi động Docker service
sudo systemctl start docker
# Kiểm tra Docker Compose version
docker-compose --version# Kiểm tra PostgreSQL container
docker-compose ps db
# Restart database
docker-compose restart db
# Xem logs database
docker-compose logs db# Clear npm cache
npm cache clean --force
# Xóa node_modules và reinstall
rm -rf frontend/node_modules
cd frontend && npm install
# Hoặc sử dụng yarn
cd frontend && yarn install# Cấp quyền execute cho scripts
chmod +x scripts/*.sh
# Cấp quyền cho Docker socket
sudo chmod 666 /var/run/docker.sock# Dừng tất cả containers
docker-compose down -v
# Xóa tất cả images và containers
docker system prune -a
# Chạy lại deployment
./scripts/deploy.sh# Backend logs
docker-compose logs -f --tail=100 backend
# Frontend logs
docker-compose logs -f --tail=100 frontend
# Database logs
docker-compose logs -f --tail=100 db# Backup database
docker-compose exec db pg_dump -U postgres blockchain_admin > backup_$(date +%Y%m%d_%H%M%S).sql
# Backup media files
cp -r backend/media/ backup_media_$(date +%Y%m%d_%H%M%S)/# Hot reload cho backend (development)
docker-compose -f docker-compose.dev.yml up
# Chạy tests
docker-compose exec backend python manage.py test
# Tạo migration mới
docker-compose exec backend python manage.py makemigrations
# Shell vào container
docker-compose exec backend bash
docker-compose exec frontend sh# Optimize Docker images
docker image prune
# Monitor resource usage
docker stats
# Limit container resources
docker-compose up --scale frontend=2- Fork repository
- Tạo feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Tạo Pull Request
Dự án này được phát hành dưới giấy phép MIT License.
🎓 Khoa Khoa Học Dữ Liệu
Made with ❤️ by Võ Trọng Nhơn
# Di chuyển đến thư mục backend
cd "D:\Year 3_University_Semester II\Project\blockchain\blockchain-administrative-management\backend"
# Khởi động lại server Django
python manage.py runserver- Đăng nhập với tài khoản admin@gov.com và vai trò chairman
- Nếu vẫn gặp lỗi 403, hãy thử API test endpoint:
- Truy cập: http://localhost:8000/api/v1/auth/test-login/
- Sử dụng Postman hoặc công cụ tương tự để gửi POST request với dữ liệu:
{ "username": "admin@gov.com", "password": "your_password", "role": "chairman" }
Nếu vẫn gặp vấn đề, thử các bước sau:
- Kiểm tra log lỗi trong terminal chạy Django server
- Xóa token cũ trong browser localStorage (F12 > Application > Storage > Local Storage)
- Kiểm tra vai trò của user trong database
python manage.py shell -c "from apps.accounts.models import User, Role; print(list(User.objects.get(email='admin@gov.com').roles.all()))"

























