Skip to content

Belikhun/ctms-plus

Repository files navigation

CTMS+

The Next Generation Of CTMS

Header

Build Load Test Full Tests CodeFactor


🤔 CTMS+ là gì ?

CTMS+ là một phiên bản được thay áo mới của CTMS với giao diện thân thiện hơn với người dùng. Toàn bộ dữ liệu hiển thị trong CTMS+ được lấy trực tiếp từ CTMS

CTMS+ là dự án phi lợi nhuận, không hề liên quan và không được hỗ trợ bởi OTSC hoặc các bên liên quan khác

CTMS+ hiện đang chạy trên các host sau:

🚢 Middleware

Cross-origin resource sharing (Chia sẻ tài nguyên nguồn gốc chéo) là một cơ chế có sẵn trên mỗi trình duyệt dùng để kiếm soát các request khi gửi chúng tới một tên miền khác. Tuy nhiên, mọi response từ CTMS đều không có đặt header này, vì vậy trình duyệt sẽ chặn toàn bộ request đi tới CTMS dẫn tới CTMS+ không thể trực tiếp lấy dữ liệu từ CTMS. Đây chính là lí do mà Middleware được sử dụng. Middleware sẽ có nhiệm vụ lấy dữ liệu từ CTMS và trả về nó cho CTMS+ để có thể xử lí mà vẫn thỏa mãn CORS của trình duyệt.

Mã nguồn của middleware có thể tìm thấy tại Belikhun/ctms-plus-middleware hoặc Belikhun/ctms-plus-middleware-node.

🧩 Cấu trúc repository

Repo này chứa mã nguồn của CTMS+middleware API được sử dụng để phục vụ cho CTMS+, bao gồm 3 nhánh chính:

  • 🌿 Branch main: Chứa mã nguồn của CTMS+. Mọi pull request sẽ được thực hiện tới branch này. Thay đổi trong branch này sẽ tự động chạy build của Github Action và merge vào branch production
  • 🔮 Branch production: Chứa mã nguồn đã được thay đổi để phù hợp cho việc deploy site tới một host nào đó
  • 🌿 Branch khác: Chứa mã nguồn với các tính năng đang trong thời gian hoàn thiện, các commit sẽ được thực hiện tại đây trước khi được nhập vào main

🖨 Cloning

Repo này có chứa submodule, vì vậy bạn sẽ phải thực hiện clone đệ quy để tải toàn bộ code:

git clone --recursive https://github.com/Belikhun/ctms-plus.git

Để lấy update từ remote về máy, sử dụng:

git pull --recurse-submodules

🚀 Running

Để chạy, bạn chỉ cần khởi động một máy chủ HTTP đơn giản tại thư mục gốc của project:

#? Using Python
py -m SimpleHTTPServer 8001
# or
python3 -m SimpleHTTPServer 8001

#? Using PHP
php -S localhost:8001

Hoặc sử dụng Live Server Extension trong VSCode để nhanh chóng khởi động máy chủ web.

Sau khi khởi động, đi tới http://locahost:8001 để mở trang web.

🧪 Testing

CTMS+ đang sử dụng một testing framework để đảm bảo mọi thứ hoạt động trước khi lên production. How does it look like?

Bạn có thể truy cập vào /tests trên máy của bạn để đi đến trang test, hoặc chạy test ở chế độ headless bằng cách chạy py tests/tests.py tại thư mục gốc của project.

Toàn bộ code trước khi đưa vào 🌿 main đều phải qua bộ test này.

😇 Đóng góp

Mọi đóng góp về code, test, ý tưởng hoặc góp ý đều được chào mừng!

Nếu bạn có một ý tưởng, một tính năng mà bạn muốn thấy trong tương lai, hoặc gặp một lỗi nào đó khi dùng phần mềm, bạn có thể gửi nó bằng cách tạo một Bug Report/Feature Request trong tab Issues của repo này.

Nếu bạn muốn ủng hộ bằng cách viết code, hãy chắc chắn rằng bạn đã đọc qua Contributing Guidelines trước khi submit một pull request.