A full-stack web application for validating hypotheses against academic research. Built with:
- FastAPI backend (Python 3.13)
- Vue 3 frontend
- PostgreSQL for data storage
- Redis for async messaging (SSE)
- Google OAuth for authentication
This guide describes how to set up the full-stack application locally.
Make sure you have the following tools installed:
- pyenv
- pyenv-virtualenv
- PostgreSQL (via EnterpriseDB or Homebrew)
- Redis
- Node.js (recommend using Volta or
nvm)
cd backend
pyenv install 3.13.3 # if not already installed
pyenv virtualenv 3.13.3 skagen-env
pyenv activate skagen-envpip install -r requirements.txtMake sure PostgreSQL is running. Then create the database:
createdb hypothesisCreate a .env file in /backend with:
DATABASE_URL=postgresql+psycopg2://postgres:<yourpassword>@localhost:5432/hypothesis
REDIS_URL=redis://localhost:6379
SECRET_KEY="01JF8NFAV5Y33RMYVPK5FVAPMQ"
ACCESS_TOKEN_EXPIRE_MINUTES=60
REFRESH_TOKEN_EXPIRE_DAYS=7
CLIENT_ID=""
OPENAI_API_KEY=""
CORE_API_KEY=""
DEBUG=True
SQLALCHEMY_DATABASE_URL="postgresql://postgres:<yourpassword>@localhost:5432/hypothesis"
REDIS_HOST="localhost"
REDIS_PORT=6379
SES_SMTP_SERVER=""
SES_SMTP_PORT=""
SES_SMTP_USERNAME=""
SES_SMTP_PASSWORD=""
RESET_PASSWORD_URL="http://localhost:3000/reset-passwordIf using Homebrew:
brew services start redis
# or run temporarily:
redis-serverPYTHONPATH=$(pwd) uvicorn main:app --reload --host 0.0.0.0 --port 8000API docs available at: http://localhost:8000/docs.
cd frontend
npm installCreate a .env file in /frontend:
VUE_APP_API_BASE_URL=http://localhost:8000npm run serve # if using Vue CLI
# or
npm run dev # if using ViteApp runs at: http://localhost:8080 or http://localhost:5173
You should now be able to:
✅ Log in via Google
✅ View and manage hypotheses
✅ View academic works
✅ Trigger validation pipelines
✅ Monitor real-time progress via SSE