Nest.js 10+ REST API for portfolio optimization and beta hedging.
- Portfolio CRUD operations
- Efficient frontier calculation
- Beta calculation and hedging recommendations
- Market data fetching from Yahoo Finance
- Google OAuth authentication with JWT
- API documentation with Swagger/OpenAPI
- PostgreSQL database with Prisma ORM
- Node.js 18+
- PostgreSQL 12+
- pnpm
cd apps/backend
pnpm installCopy .env.example to .env.local:
cp .env.example .env.localUpdate with your configuration (database URL, JWT secret, OAuth credentials).
# Generate Prisma client
pnpm prisma generate
# Run migrations
pnpm prisma migrate dev
# Seed database (optional)
pnpm prisma db seedpnpm devServer runs on http://localhost:3001
API documentation available at http://localhost:3001/api
src/
├── main.ts # Application entry point
├── app.module.ts # Root module
├── app.controller.ts # Root controller
├── app.service.ts # Root service
├── data/ # Data module (Yahoo Finance)
├── analytics/ # Analytics module
├── optimizer/ # Optimizer module
├── hedge/ # Hedge module
├── portfolios/ # Portfolio CRUD module
└── auth/ # Authentication module
GET /- API info
POST /portfolios- Create portfolioGET /portfolios- List portfoliosGET /portfolios/:id- Get portfolioPUT /portfolios/:id- Update portfolioDELETE /portfolios/:id- Delete portfolio
POST /analyze- Analyze portfolio
GET /tickers/search?q=...- Search tickers
pnpm build
pnpm startpnpm lint
pnpm type-check
pnpm test
pnpm test:cov- Nest.js 10+
- TypeScript
- PostgreSQL
- Prisma ORM
- Passport.js (Authentication)
- Swagger/OpenAPI
- Jest (Testing)