- Added `check_invoice_number_exists` method in `EconomicService` to verify invoice numbers in e-conomic journals. - Introduced `quick_analysis_on_upload` method in `OllamaService` for extracting critical fields from uploaded PDFs, including CVR, document type, and document number. - Created migration script to add new fields for storing detected CVR, vendor ID, document type, and document number in the `incoming_files` table. - Developed comprehensive tests for the quick analysis functionality, validating CVR detection, document type identification, and invoice number extraction. |
||
|---|---|---|
| .github | ||
| app | ||
| data | ||
| docs | ||
| logs | ||
| migrations | ||
| scripts | ||
| static/design_templates | ||
| uploads | ||
| .dockerignore | ||
| .env.bak | ||
| .env.example | ||
| .env.prod.example | ||
| .gitignore | ||
| DEVELOPMENT.md | ||
| docker-compose.prod.yml | ||
| docker-compose.yml | ||
| docker-compose.yml.bak2 | ||
| docker-compose.yml.bak3 | ||
| Dockerfile | ||
| LICENSE | ||
| main.py | ||
| nohup.out | ||
| README.md | ||
| requirements.txt | ||
| test_ai_analyze.py | ||
| test_cvr_filter.py | ||
| test_quick_analysis.py | ||
BMC Hub 🚀
Et centralt management system til BMC Networks - håndterer kunder, services, hardware og billing.
Baseret på OmniSync arkitektur med Python + PostgreSQL
🌟 Features
- Customer Management: Komplet kundedatabase med CRM integration
- Hardware Tracking: Registrering og sporing af kundeudstyr
- Service Management: Håndtering af services og abonnementer
- Billing Integration: Automatisk fakturering via e-conomic
- REST API: FastAPI med OpenAPI dokumentation
- Web UI: Responsive Bootstrap 5 interface
- PostgreSQL: Production-ready database
- Docker: Container deployment med version control
📚 Quick Start
Lokal Udvikling
# 1. Clone repository
git clone git@g.bmcnetworks.dk:ct/bmc_hub.git
cd bmc_hub
# 2. Kopier og rediger .env
cp .env.example .env
nano .env # Tilføj dine credentials
# 3. Start med Docker Compose
docker-compose up -d
# 4. Åbn browser
open http://localhost:8001/api/docs # API docs
open http://localhost:8001 # Web UI
Standard ports (for at undgå konflikter):
- API:
8001(mapped til container port 8000) - PostgreSQL:
5433(mapped til container port 5432)
Note: Auto-reload er deaktiveret som standard for at undgå log spam. Når du ændrer kode, skal du genstarte containeren:
docker-compose restart api
Hvis du ønsker live reload (med potentiel log spam), sæt ENABLE_RELOAD=true i .env.
Live Deployment
# På serveren
cd /opt
git clone git@g.bmcnetworks.dk:ct/bmc_hub.git
cd bmc_hub
# Setup environment
cp .env.prod.example .env
nano .env # Udfyld credentials og version tag
# Deploy
docker-compose -f docker-compose.prod.yml up -d
🛠️ Deployment Commands
Lokal Development
docker-compose up -d # Start systemet
docker-compose logs -f # Se logs
docker-compose down # Stop systemet
Production
docker-compose -f docker-compose.prod.yml up -d # Start
docker-compose -f docker-compose.prod.yml pull # Update til ny version
docker-compose -f docker-compose.prod.yml restart # Restart
📋 Krav
Development
- Docker Desktop eller Podman
- Git
Production
- Docker eller Podman
- PostgreSQL (via container)
- Nginx reverse proxy
- SSL certifikat
🏗️ Projekt Struktur
bmc_hub/
├── app/
│ ├── core/
│ │ ├── config.py # Konfiguration
│ │ └── database.py # PostgreSQL helpers
│ ├── models/
│ │ └── schemas.py # Pydantic models
│ ├── routers/
│ │ ├── customers.py # Customer CRUD
│ │ ├── hardware.py # Hardware management
│ │ └── billing.py # Billing endpoints
│ ├── services/
│ │ └── economic.py # e-conomic integration
│ └── jobs/
│ └── sync_job.py # Scheduled jobs
├── static/
│ └── index.html # Dashboard UI
├── migrations/ # Database migrations
├── docker-compose.yml # Local development
├── docker-compose.prod.yml # Production deployment
├── Dockerfile # Docker image
├── requirements.txt # Python dependencies
├── .env.example # Environment template (local)
├── .env.prod.example # Environment template (production)
└── main.py # FastAPI application
🔌 API Endpoints
GET /api/v1/customers- List customersGET /api/v1/hardware- List hardwareGET /api/v1/billing/invoices- List invoicesGET /health- Health check
Se fuld dokumentation: http://localhost:8000/api/docs
🧪 Testing
# Install test dependencies
pip install pytest pytest-cov
# Run tests
pytest
# Run with coverage
pytest --cov=app
📄 License
MIT License
📞 Support
- Issues: Gitea Issues
- Dokumentation:
/api/docs - Email: support@bmcnetworks.dk
Made with ❤️ by BMC Networks