147 lines
3.6 KiB
Markdown
147 lines
3.6 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
# 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:8000/api/docs
|
|
```
|
|
|
|
### Live Deployment
|
|
|
|
```bash
|
|
# 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
|
|
```bash
|
|
docker-compose up -d # Start systemet
|
|
docker-compose logs -f # Se logs
|
|
docker-compose down # Stop systemet
|
|
```
|
|
|
|
### Production
|
|
```bash
|
|
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 customers
|
|
- `GET /api/v1/hardware` - List hardware
|
|
- `GET /api/v1/billing/invoices` - List invoices
|
|
- `GET /health` - Health check
|
|
|
|
Se fuld dokumentation: http://localhost:8000/api/docs
|
|
|
|
## 🧪 Testing
|
|
|
|
```bash
|
|
# 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**
|