Paperlens / app.py
Ippo987's picture
Yup this is it
e487cc6 verified
raw
history blame
2.32 kB
from fastapi import FastAPI, HTTPException, APIRouter, Request
from fastapi.responses import HTMLResponse
import uvicorn
from dataApi import router as dataAPI_router
from TrendAnalysis import router as trend_analysis_process
from datacite import router as citation_analysis_process
from fastapi.middleware.cors import CORSMiddleware
from dbconnect import db_Connect
from fastapi.templating import Jinja2Templates
from fastapi.staticfiles import StaticFiles
from venuAnalysis import router as venue_analysis_process
from venuedata import router as venuedata_router
# Initialize FastAPI app
app = FastAPI()
app.mount("/static", StaticFiles(directory="static"), name="static")
app.mount("/assets", StaticFiles(directory="assets"), name="assets")
templates = Jinja2Templates(directory="templates")
templates.env.auto_reload = True
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # For development - restrict this in production
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# # Include routers
app.include_router(dataAPI_router)
app.include_router(trend_analysis_process)
app.include_router(citation_analysis_process)
app.include_router(venue_analysis_process)
app.include_router(venuedata_router)
collection,collection1,collection2 = db_Connect()
app.state.collection = collection
app.state.collection1 = collection1
app.state.collection2 = collection2
# Root endpoint
@app.get("/")
async def root():
return {"message": "Welcome to the Science Mapping Tool!"}
@app.get("/home", response_class=HTMLResponse)
async def home(request: Request):
return templates.TemplateResponse("homepage.html", {"request": request})
@app.get("/login", response_class=HTMLResponse)
async def login(request: Request):
return templates.TemplateResponse("loginpage.html", {"request": request})
@app.get("/contact", response_class=HTMLResponse)
async def login(request: Request):
return templates.TemplateResponse("contactBoard.html", {"request": request})
@app.get("/feedback", response_class=HTMLResponse)
async def login(request: Request):
return templates.TemplateResponse("feedback.html", {"request": request})
# uvicorn app:app --host 0.0.0.0 --port 3000 --reload