Website phục vụ công tác cứu hộ, cứu nạn theo mô hình crowdsource (huy động sức lực của cộng đồng để vận hành). Mô hình hoạt động theo nguyên tắc:
- Những người ở vùng an toàn tham gia làm Tình nguyện viên thông tin (Tự thêm tên & SĐT của mình vào Danh sách Tình nguyện viên)
- Các tình nguyện viên thu thập dữ liệu kêu cứu của người dân, gọi điện xác minh và cập nhật kết quả vào Danh sách Hộ dân cần ứng cứu
- Các tình nguyện viên thu thập dữ liệu từ các đơn vị cứu hộ, gọi điện xác minh và cập nhật kết quả vào Danh sách Đơn vị cứu hộ
Bằng việc duy trì một nguồn thông tin đầy đủ, được cập nhật liên tục, các Tình nguyện viên giúp việc điều phối hoạt động cứu hộ, cứu nạn hiện quả hơn. Tránh tình trạng:
- Hộ gia đình đã được ứng cứu, nhưng thông tin vẫn tiếp tục được chia sẻ trên MXH, cản trở hoạt động ứng cứu các gia đình cần kíp hơn
- Người dân cần ứng cứu không nắm được thông tin và tình trạng của đơn vị cứu hộ để gọi xin ứng cứu
- Các đơn vị cứu hộ không nắm được mức độ và số lượng điểm cần ứng cứu tại từng khu vực địa lý (tỉnh, huyện, xã, thôn) để điều phối nguồn lực hiệu quả
- Vào trang https://cuuhomientrung.info
- Tự thêm contact của bạn vào Danh sách Tình nguyện viên
- Đăng tải / Nhận xác minh các thông tin kêu cứu mà chưa có Tình nguyện viên nhận cập nhật
- Đăng tải / Nhận xác minh các thông tin về các đội cứu hộ mà chưa có Tình nguyện viên nhận cập nhật
- Bổ sung các dịch vụ khác mà bạn có thể hỗ trợ vào mục "Nguồn trợ giúp khác" để người gặp nạn có thể tìm đến. Một số dịch vụ hữu ích trong thiên tai là:
- Tìm kiếm và tư vấn đội cứu hộ gần nhất mà người dân nên gọi đến
- Nạp tiền điện thoại cho các gia đình gặp nạn để duy trì liên lạc
- Chủ động cảnh báo thông tin về tình hình lũ lụt tới các điểm cần cứu hộ
- Vào trang https://cuuhomientrung.info
- Tự thêm Đơn vị cứu hộ của bạn vào Danh sách Cứu hộ
- Chủ động update thông tin của đơn vị lên trang để giúp các Tình nguyện viên khác điều phối hoạt động cứu hộ tốt hơn
- Xem thống kê số lượng gia đình cần ứng cứu & số đơn vị cứu hộ tại cùng khu vực để chủ động điều phối nguồn lực tới các khu vực cần thiết hơn
- Tạo pull request để bổ sung tính năng cho dự án
- Nếu là senior, bạn có thể ứng cử làm manager cho dự án này để tiếp tục hoàn thiện dự án phục vụ cộng đồng
CÙNG CHUNG TAY VÌ KHÚC RUỘT MIỀN TRUNG !!!
- Cài đặt các thư viện cần thiết (cần cài Python3.6 trở lên và Pip3 trước)
pip3 install -r requirements.txt
2. Thay đổi cấu hình database từ postgresql sang sqlite (để chạy được ở local)
- trong file project/app/settings.py, comment out config postgresql và thay bằng phần config sqlite
- Cài đặt PostgreSQL và tạo database shema
-
PostgreSQL
- Debian/Ubuntu
- Update mirror
sudo apt update
- Cài đặt postgresql
sudo apt install postgresql
- Cài đặt postgresql-contrib (để sử dụng
UnaccentExtension
) nếu chưa được cài sẵn cùng postgresql ở trên
sudo apt install postgresql-contrib
- Centos
- Cài đặt postgresql
sudo yum install postgresql
- Cài đặt postgresql-contrib
sudo yum install postgresql*contrib
- Docker image: đã được cài sẵn
postgres-contrib
- Các hệ điều hành khác vui lòng cài đặt
postgresql
vàpostgresql-contrib
theo hướng dẫn chính thức tại đây
- Debian/Ubuntu
-
chạy script sau để tạo lại schema
bash run_migrate.sh
- Tạo tài khoản admin
bash run_create_admin.sh
- Mặc định đăng nhập site bằng tài khoản admin
- trong file project/app/middleware.py, thay đổi username thành username của admin đã tạo ở bước 3
Chạy webserver bằng lệnh sau:
bash run_server.sh
Mặc định site sẽ chạy ở localhost:8087
- Hướng dẫn frontend development
-
Phần admin thì dùng css, và js thuần của thư viện. Bỏ qua phần này.
-
Phần home page mới sử sử dụng webpack-bundle của django để load file.
- Hướng dẫn chuẩn bị môi trường dev
-
Bước 1: Chạy lệnh sau để dev trên local
npm run watch
-
Bước 2: Chạy lệnh sau để render ra các static file của thư viện (thường thì chỉ dùng cho admin page)
./project/manage.py collectstatic --no-input
-
Bước 3: Tiến hành code và dev trong thư mục
project/app/static/webpack_sources
Các sources code của thư mục này sẽ được build tại thư mụcproject/static/webpack_bundles
-
Lưu ý: Tất cả các file static (js,css,svg,image) khi muốn nhúng vào html cần follow cú pháp sau: File này được tự động tìm trong
project/app/static
"{% static '/path/to/some_file' %}?v={{ REVISION }}"
Các file scss và js hiện tại import tại file loader. Css sẽ tự render ra và append vào header của html
Restful api doc tại đây
Sau khi bạn được cấp api_token
, các request sẽ follow theo doc như bình thường. Ngoài ra bạn phải thêm vào header tham số sau
Authorization: Token [api_token]
Ví dụ
curl -X GET [hostname]/api/cuuho/ -H 'Authorization: Token [api_token]'