尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
Personal finance app — Turborepo monorepo with a NestJS GraphQL API, Prisma/PostgreSQL and a React Native (Expo) mobile app.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A comprehensive financial management application built with modern web technologies. This monorepo contains a NestJS GraphQL API, React Native mobile app, and shared database package using Prisma ORM.
This project is built as a Turborepo monorepo with the following structure:
apps/api/) - NestJS GraphQL API with Prisma integrationapps/finnit-app/) - React Native with Expopackages/database/) - Prisma client and schema for PostgreSQLpackages/eslint-config/) - Shared linting rulespackages/typescript-config/) - Shared TS configurationsEnsure you have the following installed:
# Clone the repository
git clone <repository-url>
cd finnit-assistant
# Install all dependencies (uses Yarn workspaces)
yarn install
Start the PostgreSQL database using Docker:
# Start the database container in the background
docker-compose up -d postgres
# Verify the database is running
docker-compose ps
Set up environment variables:
# Copy the example environment file
cp apps/api/.env.example apps/api/.env
# The DATABASE_URL is already configured for the Docker database:
# DATABASE_URL="postgresql://finnit_user:finnit_password@localhost:5432/finnit_db"
Generate Prisma client and run migrations:
# Generate Prisma client
turbo run db:generate
# Run database migrations
turbo run db:migrate:dev
# Optional: Seed the database with sample data (genera cliente automáticamente)
turbo run db:seed
Optional: Use pgAdmin for database management:
# Start pgAdmin (web-based database administration)
docker-compose up -d pgadmin
# Access pgAdmin at http://localhost:8080
# Login: [email protected] / admin123
Choose one of the following options:
# Start API and mobile app simultaneously
yarn dev
API Server:
# Start API with database build
yarn api:dev
# Or just the API (if database is already built)
yarn start:api
# API will be available at http://localhost:3000
# GraphQL Playground at http://localhost:3000/graphql
Mobile App:
# Start Expo development server
turbo run start --filter=finnit-app
# Or with specific platform
turbo run android --filter=finnit-app # Android
turbo run ios --filter=finnit-app # iOS
turbo run web --filter=finnit-app # Web
Check API:
Check Mobile App:
Check Database:
# Open Prisma Studio to browse your data
turbo run studio --filter=@finnit/database
# Or use pgAdmin at http://localhost:8080 (if started)
yarn dev # Start all development servers
yarn build # Build all applications and packages
yarn lint # Run linting across all packages
yarn format # Format code using Prettier
yarn check-types # Run TypeScript type checking
# Start/stop database container
docker-compose up -d postgres # Start database
docker-compose stop postgres # Stop database
docker-compose down # Stop and remove containers
# Generate Prisma client
turbo run db:generate
# Run migrations in development
turbo run db:migrate:dev
# Push schema changes without migration
turbo run db:push
# Open Prisma Studio
turbo run studio
# Seed database
turbo run db:seed
# Seed database (limpiar primero)
turbo run db:seed:clean
# Reset completo de la base de datos
turbo run db:reset
# Reset completo y sembrar datos
turbo run db:reset:seed
# Database administration
docker-compose up -d pgadmin # Start pgAdmin (http://localhost:8080)
# Start API in development mode
turbo run start:dev --filter=@finnit/api
# Run API tests
turbo run test --filter=@finnit/api
# Run API E2E tests
turbo run test:e2e --filter=@finnit/api
# Check API types
turbo run check-types --filter=@finnit/api
# Start development server
turbo run start --filter=finnit-app
# Run on specific platforms
turbo run android --filter=finnit-app
turbo run ios --filter=finnit-app
turbo run web --filter=finnit-app
# Lint mobile app
turbo run lint --filter=finnit-app
Create apps/api/.env with the following variables:
# Database (Docker configuration)
DATABASE_URL="postgresql://finnit_user:finnit_password@localhost:5432/finnit_db"
# JWT Authentication
JWT_SECRET="your-super-secret-jwt-key"
JWT_REFRESH_SECRET="your-super-secret-refresh-key"
JWT_EXPIRATION="15m"
JWT_REFRESH_EXPIRATION="7d"
# Server
PORT=3000
NODE_ENV="development"
# Email (optional - for password reset)
SMTP_HOST="smtp.gmail.com"
SMTP_PORT=587
SMTP_USER="[email protected]"
SMTP_PASS="your-app-password"
FROM_EMAIL="[email protected]"
See apps/api/.env.example for all available configuration options.
The application uses a comprehensive financial data model including:
# Run all tests
turbo run test
# API tests only
turbo run test --filter=@finnit/api
# API E2E tests
turbo run test:e2e --filter=@finnit/api
# Run tests in watch mode
turbo run test:watch --filter=@finnit/api
turbo run test:cov --filter=@finnit/api
npm install -g @expo/cliturbo run start --filter=finnit-app# iOS Simulator (requires Xcode)
turbo run ios --filter=finnit-app
# Android Emulator (requires Android Studio)
turbo run android --filter=finnit-app
# Web browser
turbo run web --filter=finnit-app
Database Connection Error:
docker --versiondocker-compose up -d postgresdocker-compose psPrisma Client Error:
turbo run db:generatenode_modules and reinstalling"@prisma/client did not initialize yet" Error:
turbo run db:generate firstturbo run db:seed which generates automaticallyMigration Error (constraint conflicts):
turbo run db:resetturbo run db:reset:seeddocker-compose down && docker-compose up -d postgres && turbo run db:migrate:devNew Schema Changes:
turbo run db:migrate:devturbo run db:generateturbo run db:seedMobile App Not Loading:
TypeScript Errors:
yarn check-types to see all type errorsyarn buildBefore Starting Work:
git pullyarn installdocker-compose up -d postgresturbo run db:migrate:devBefore Committing:
yarn lintyarn check-typesturbo run testyarn formatDatabase Changes:
packages/database/prisma/schema.prismaturbo run db:migrate:devturbo run db:generateFor more detailed development guidelines, see CLAUDE.md in the project root.