Add Seismo Fleet Manager backend v0.1

Implemented FastAPI backend with SQLite database for tracking seismograph fleet status:
- database.py: SQLAlchemy setup with SQLite
- models.py: Emitter model with id, unit_type, last_seen, last_file, status, notes
- routes.py: POST /emitters/report and GET /fleet/status endpoints
- main.py: FastAPI app initialization with CORS support
- requirements.txt: Dependencies (FastAPI, SQLAlchemy, uvicorn)
This commit is contained in:
Claude
2025-11-20 18:14:29 +00:00
parent c1bdf17454
commit f976e4e893
5 changed files with 168 additions and 0 deletions

22
database.py Normal file
View File

@@ -0,0 +1,22 @@
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
SQLALCHEMY_DATABASE_URL = "sqlite:///./seismo_fleet.db"
engine = create_engine(
SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False}
)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()
def get_db():
"""Dependency for database sessions"""
db = SessionLocal()
try:
yield db
finally:
db.close()