mirror of https://github.com/ghostfolio/ghostfolio
10 changed files with 18 additions and 134 deletions
@ -1,119 +0,0 @@ |
|||
# CLAUDE.md |
|||
|
|||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. |
|||
|
|||
## Project Overview |
|||
|
|||
Ghostfolio is an open source wealth management software built with TypeScript in an Nx monorepo workspace. It's a full-stack application with Angular frontend and NestJS backend, using PostgreSQL with Prisma ORM and Redis for caching. |
|||
|
|||
## Development Commands |
|||
|
|||
### Environment Setup |
|||
|
|||
```bash |
|||
npm install |
|||
docker compose -f docker/docker-compose.dev.yml up -d # Start PostgreSQL and Redis |
|||
npm run database:setup # Initialize database schema |
|||
``` |
|||
|
|||
### Development Servers |
|||
|
|||
```bash |
|||
npm run start:server # Start NestJS API server |
|||
npm run start:client # Start Angular client (English) |
|||
npm run watch:server # Start server in watch mode for debugging |
|||
``` |
|||
|
|||
### Build and Production |
|||
|
|||
```bash |
|||
npm run build:production # Build both API and client for production |
|||
npm run start:production # Run production build with database migration |
|||
``` |
|||
|
|||
### Database Operations |
|||
|
|||
```bash |
|||
npm run database:push # Sync schema with database (development) |
|||
npm run database:migrate # Apply migrations (production) |
|||
npm run database:seed # Seed database with initial data |
|||
npm run database:gui # Open Prisma Studio |
|||
npm run database:format-schema # Format Prisma schema |
|||
npm run database:generate-typings # Generate Prisma client |
|||
``` |
|||
|
|||
### Testing and Quality |
|||
|
|||
```bash |
|||
npm test # Run all tests (API + common) |
|||
npm run test:api # Run API tests only |
|||
npm run test:common # Run common library tests |
|||
npm run test:single # Run single test file (example provided) |
|||
npm run lint # Run ESLint on all projects |
|||
npm run format # Format code with Prettier |
|||
npm run format:check # Check code formatting |
|||
``` |
|||
|
|||
### Nx Workspace Commands |
|||
|
|||
```bash |
|||
nx affected:build # Build affected projects |
|||
nx affected:test # Test affected projects |
|||
nx affected:lint # Lint affected projects |
|||
nx dep-graph # View dependency graph |
|||
``` |
|||
|
|||
### Storybook (Component Library) |
|||
|
|||
```bash |
|||
npm run start:storybook # Start Storybook development server |
|||
npm run build:storybook # Build Storybook for production |
|||
``` |
|||
|
|||
## Architecture |
|||
|
|||
### Monorepo Structure |
|||
|
|||
- **apps/api**: NestJS backend application |
|||
- **apps/client**: Angular frontend application |
|||
- **apps/client-e2e**: E2E tests for client |
|||
- **apps/ui-e2e**: E2E tests for UI components |
|||
- **libs/common**: Shared TypeScript libraries and utilities |
|||
- **libs/ui**: Angular UI component library |
|||
|
|||
### Technology Stack |
|||
|
|||
- **Frontend**: Angular 20 with Angular Material, Bootstrap utility classes |
|||
- **Backend**: NestJS with TypeScript |
|||
- **Database**: PostgreSQL with Prisma ORM |
|||
- **Caching**: Redis with Bull for job queues |
|||
- **Build Tool**: Nx workspace |
|||
- **Testing**: Jest for unit tests, Cypress for E2E tests |
|||
|
|||
### Key Dependencies |
|||
|
|||
- **Authentication**: Passport (JWT, Google OAuth, WebAuthn) |
|||
- **Data Sources**: Yahoo Finance, CoinGecko APIs for market data |
|||
- **Charts**: Chart.js with various plugins |
|||
- **Payment**: Stripe integration |
|||
- **Internationalization**: Angular i18n with multiple language support |
|||
|
|||
### Database Schema |
|||
|
|||
The Prisma schema defines models for: |
|||
|
|||
- User management and access control |
|||
- Account and portfolio tracking |
|||
- Trading activities and orders |
|||
- Market data and asset information |
|||
- Platform integrations |
|||
|
|||
### Development Notes |
|||
|
|||
- Node.js version >=22.18.0 required |
|||
- Uses Nx generators for consistent code scaffolding |
|||
- Husky for git hooks and code quality enforcement |
|||
- Environment files: `.env.dev` for development, `.env.example` as template |
|||
- SSL certificates can be generated for localhost development |
|||
- Experimental features can be toggled via user settings |
|||
- always run the .husky pre commit hooks after code changes |
|||
Loading…
Reference in new issue