Chúng tôi hoan nghênh mọi đóng góp nhằm cải thiện dự án quantvn. Vui lòng làm theo các bước dưới đây để bắt đầu.
- Truy cập vào GitHub repository của dự án
quantvn - Fork dự án về GitHub của bạn
- Clone về máy tính:
git clone https://github.com/your-username/quantvn.git
cd quantvnTạo môi trường ảo và cài đặt dependencies:
# Tạo môi trường ảo
python -m venv venv
# Kích hoạt môi trường ảo
# Trên macOS/Linux:
source venv/bin/activate
# Trên Windows:
venv\Scripts\activate
# Cài đặt dependencies
pip install -r requirements.txt
# Cài đặt package ở chế độ development
pip install -e .Vui lòng đặt tên nhánh theo chuẩn sau:
feature/ten-tinh-nang- cho tính năng mớifix/ten-loi- cho sửa lỗidocs/ten-chu-de- cho tài liệurefactor/ten-phan- cho tái cấu trúc code
git checkout -b feature/your-feature-name- Viết code theo chuẩn Python PEP 8
- Thêm docstrings cho functions/classes
- Viết unit tests (nếu có)
- Kiểm tra code hoạt động đúng
Viết tài liệu mới vào các file .rst trong thư mục source/
Cấu trúc thư mục tài liệu:
source/
├── index.rst
├── installation.rst
├── quickstart.rst
├── data/
│ ├── stocks.rst
│ ├── derivatives.rst
├── metrics/
│ ├── performance_metrics.rst
└── examples/
├── basic_usage.rst
Trước khi commit, hãy chắc chắn:
# Kiểm tra syntax và style
python -m py_compile quantvn/**/*.py
# Chạy tests (nếu có)
python -m pytest tests/
# Build tài liệu (nếu thay đổi docs)
make html # trên macOS/Linux
.\make.bat html # trên WindowsSau đó mở file build/html/index.html trong trình duyệt để xem tài liệu.
# Stage changes
git add .
# Commit với message rõ ràng
git commit -m "feat: add new feature X"
# hoặc
git commit -m "fix: resolve issue with Y"
# hoặc
git commit -m "docs: update documentation for Z"
# Push lên GitHub
git push origin feature/your-feature-namefeat:- Thêm tính năng mớifix:- Sửa lỗidocs:- Thay đổi tài liệurefactor:- Tái cấu trúc codetest:- Thêm hoặc sửa testschore:- Công việc bảo trì
- Truy cập repository trên GitHub
- Click vào nút "New Pull Request"
- Chọn nhánh của bạn so với nhánh
main - Viết mô tả chi tiết về thay đổi:
- Tính năng/lỗi được giải quyết
- Cách test
- Screenshots (nếu có)
- Submit Pull Request
- Code tuân theo chuẩn PEP 8
- Đã thêm docstrings đầy đủ cho functions/classes mới
- Đã test code hoạt động đúng
- Đã cập nhật tài liệu (nếu cần)
- Commit messages rõ ràng và có ý nghĩa
- Không có merge conflicts với nhánh main
- Đã kiểm tra build tài liệu (nếu thay đổi docs)
Để giúp tài liệu của quantvn rõ ràng, dễ đọc và dễ maintain, bạn vui lòng tuân theo các quy tắc sau:
| Cấp độ | Ký hiệu | Ví dụ |
|---|---|---|
| 1 | === |
QuantVN Documentation |
| 2 | --- |
Module: quantvn.vn.data |
| 3 | ~~~ |
Function: get_stock_hist |
| 4 | ^^^^ |
Parameters hoặc Examples |
Ví dụ:
QuantVN Documentation
=====================
Module: quantvn.vn.data
-----------------------
Function: get_stock_hist
~~~~~~~~~~~~~~~~~~~~~~~~.. autofunction:: quantvn.vn.data.stocks.get_stock_hist
.. autoclass:: quantvn.vn.metrics.Metrics
:members:
:undoc-members:Examples
^^^^^^^^
.. code-block:: python
from quantvn.vn.data import get_stock_hist
df = get_stock_hist("VIC", resolution='h')
print(df.head())Nếu bạn phát hiện lỗi, hãy tạo GitHub Issue với thông tin:
- Mô tả lỗi: Giải thích rõ ràng vấn đề
- Cách tái hiện: Các bước để tái hiện lỗi
- Kết quả mong đợi: Điều bạn kỳ vọng xảy ra
- Kết quả thực tế: Điều thực sự xảy ra
- Môi trường: OS, Python version, quantvn version
- Code mẫu: Đoạn code tối thiểu để tái hiện lỗi
Nếu bạn cần hỗ trợ hoặc có câu hỏi:
- 🐛 GitHub Issues: Để báo lỗi và đề xuất tính năng
- 📧 Email: Liên hệ maintainers qua email
- 💬 Discussions: Tham gia thảo luận trên GitHub Discussions
- 🐛 Báo cáo và sửa lỗi
- ✨ Đề xuất và phát triển tính năng mới
- 📖 Cải thiện tài liệu
- ✅ Viết tests
- 🎨 Cải thiện code structure
- 🌐 Dịch tài liệu sang ngôn ngữ khác
- 📊 Thêm ví dụ sử dụng
Cảm ơn bạn đã quan tâm đóng góp cho quantvn! 🙏
Mọi đóng góp, dù lớn hay nhỏ, đều được đánh giá cao và giúp cộng đồng phân tích tài chính định lượng Việt Nam phát triển mạnh mẽ hơn. 💙