CoSheet là một nền tảng bảng tính trực tuyến hỗ trợ cộng tác thời gian thực, được phát triển dựa trên mã nguồn mở EtherCalc. Dự án này tập trung vào việc cải thiện trải nghiệm người học (học sinh, sinh viên), đặc biệt là trên thiết bị di động, và bổ sung các tính năng trực quan hóa dữ liệu mạnh mẽ.
- 🆕 Drag & Drop Upload (v1.1): Kéo thả file CSV/XLSX trực tiếp vào browser
- Hỗ trợ multi-sheet XLSX tự động
- Visual feedback với overlay toàn màn hình
- Validation file types và error handling
- Cộng tác thời gian thực: Nhiều người dùng có thể chỉnh sửa cùng một bảng tính cùng lúc.
- Giao diện Chart nâng cao:
- Hỗ trợ nhiều loại biểu đồ: Bar, Line, Pie, Doughnut, Scatter, Radar, Polar Area.
- Mới: Histogram (Biểu đồ phân phối), Grouped Bar, Stacked Bar, và Box Plot.
- Giao diện Ribbon trực quan với icons minh họa sinh động.
- Tối ưu hóa cho Mobile:
- Cuộn mượt mà (Smooth scrolling) với cơ chế giảm tốc (damping).
- Thanh công cụ biểu đồ trượt ngang dễ dàng.
- Cơ chế "Smart Scrolling": Ưu tiên cuộn nội dung bảng tính trước khi cuộn trang.
- Nhập liệu & Xuất dữ liệu: Hỗ trợ CSV, XLSX, ODS. #* Công thức & Hàm: Hỗ tr đầy đủ các hàm tính toán thông dụng của OpenOffice/Excel.
- Bảo mật & Hiệu suất (v1.0):
- Rate limiting (đề kháng spam/DDoS)
- CSRF protection
- Security headers (Helmet)
- Centralized logging (Winston)
- Health check endpoints (/health, /metrics)
- Cloudflare CDN optimization
CoSheet chạy trên nền tảng Node.js. Bạn có thể triển khai trên VPS, LXC container hoặc Server vật lý.
- Node.js (phiên bản 14.x hoặc mới hơn, khuyến nghị 16.x trở lên)
- Redis (để lưu trữ dữ liệu)
- Git
Bước 1: Cài đặt Node.js và Redis
# Cài đặt Redis
sudo apt update
sudo apt install redis-server -y
# Cài đặt Node.js (ví dụ bản 16.x)
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejsBước 2: Tải mã nguồn CoSheet
git clone https://github.com/phucdhh/CoSheet.git
cd CoSheetBước 3: Cài đặt thư viện phụ thuộc
npm installBước 4: Chạy ứng dụng
# Chạy trực tiếp
npm start
# Hoặc chạy với PM2 (khuyên dùng cho production)
sudo npm install -g pm2
pm2 start app.js --name cosheet
pm2 save
pm2 startupMặc nh CoSheet sẽ chạy ở cổng 1234. Truy cập: http://<IP-Cua-Ban>:1234
Nếu bạn sử dụng Proxmox hoặc LXC thuần:
- Tạo một container Ubuntu/Debian mới.
- Truy cập vào container (SSH hoặc Console).
- Thực hiện các bước cài đặt tương tự như phần "Cài đặt trên VPS / Server" ở trên.
- Đảm bảo cấu hình Network Forwarding nếu container nằm sau NAT.
chạy CoSheet dưới tên miền (ví dụ cosheet.example.com) và SSL:
server {
listen 80;
server_name cosheet.example.com;
location / {
proxy_pass http://localhost:1234;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}- Mở CoSheet trong browser
- Kéo file CSV hoặc XLSX t file explorer
- Thả file vào cửa sổ browser
- File sẽ được upload và load tự động
- File XLSX nhiều sheets sẽ tự động được chuyển sang multi-view
- Mỗi sheet trở thành một tab riêng
- Table of Contents (TOC) được tạo tự động
Chi tiết kỹ thuật: DRAG-DROP-FEATURE.md
Dự án này được phát triển bởi phucdhh. Mọi đóng góp đều được hoan nghênh!
- Fork dự án.
- Tạo nhánh tính năng (
git checkout -b feature/TinhNangMoi). - Commit thay đổi (
git commit -m 'Thêm tính năng mới'). - Push lên branch (
git push origin feature/TinhNangMoi). - Tạo Pull Request.
- DRAG-DROP-FEATURE.md - Chi tiết tính năng ko thả
- ROADMAP.md - Lộ trình phát triển 4 giai đoạn
- ENHANCEMENT.md - Danh sách tính năng tương lai
- docs/CLOUDFLARE-OPTIMIZATION.md - Hướng dẫn tối ưu Cloudflare
CoSheet v1.0+ cung cấp các endpoint monitoring:
# Health check cơ bản
curl http://localhost:1234/health
# Métrics chi tiết
curl http://localhost:1234/metrics
# Kubernetes readiness probe
curl http://localhost:1234/health/ready
# Kubernetes liveness probe
curl http://localhost:1234/health/aliveAdded
- ✨ Drag & Drop file upload (CSV, XLSX, ODS)
- 📊 Multi-sheet XLSX auto-conversion
- 🎨 Visual feedback overlay
Fixed
- 🐛 "Unknown cell type item 's'" error in XLSX parsing
- 🔧 Browser worker cache issues
- 📝 Console log spam (200+ → 0)
Performance
- ⚡ Improved page load time
- 🧹 Cleaner browser console
Added
- 🔒 Security hardening (rate limiting, CSRF, Helmet)
- 📈 Advanced charting (Histogram, Box Plot, Grouped/Stacked Bar)
- 📱 Mobile optimization (smooth scrolling, smart scrolling)
- 🏥 Health check endpoints
Dựa trên EtherCalc của Audrey Tang và cộng đồng.
Giấy phép tuân theo dự án gốc (Common Public Attribution License).
Maintained by: @phucdhh
Repository: CoSheet
Last updated: December 3, 2025