|
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
|
|
|
|
|
|
|
|
|
|
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=["*"],
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
@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})
|
|
|
|
|
|
|
|
|
|
|