AI-assisted development environment with React frontend and Kotlin backend, organized as a monorepo for streamlined development and testing.
Status: ✅ Backend API + Frontend Integration operational
The backend REST API is fully functional with document CRUD operations, project management, and configuration endpoints. Both servers are running and ready for Phase 2 development.
Quick Links:
- 📋 Phase 1 Completion Report - Detailed test results and achievements
- 🧪 API Testing Guide - Complete API reference with examples
- 🗺️ Phase 2 Plan - Roadmap for next phase
Servers:
- Backend API: http://localhost:8080
- Frontend UI: http://localhost:3000
phoenixaiflow-combined/
├── apps/
│ ├── backend/ # Kotlin/Ktor backend service
│ └── frontend/ # React/TypeScript frontend
├── packages/ # Shared packages (future use)
├── integration-tests/ # E2E tests for full stack
├── .git/ # Git repository
├── .gitignore # Monorepo gitignore
├── package.json # Root workspace configuration
└── README.md # This file
- Node.js 16+ and npm 8+
- Java 11+ (for Kotlin backend)
- Git
npm installThis will install dependencies for the frontend, integration tests, and shared packages.
npm run dev# Frontend only (React dev server on :3000)
npm run dev:frontend
# Backend only (Ktor server on :8080)
npm run dev:backend# Build both
npm run build
# Build individually
npm run build:frontend
npm run build:backendnpm run test:frontendnpm run test:backendnpm run test:integrationSee integration-tests/README.md for more details on integration testing.
- Technology: Kotlin, Ktor, Gradle
- Port: 8080 (default)
- Entry point:
com.ApplicationKt - Build tool: Gradle with Kotlin DSL
See apps/backend/README.md for backend-specific documentation.
- Technology: React 18, TypeScript, Tailwind CSS
- Port: 3000 (default)
- Build tool: react-scripts (Create React App)
- E2E Testing: Playwright
See apps/frontend/CLAUDE.md for detailed frontend architecture.
This project uses npm workspaces to manage multiple packages:
apps/frontend- React frontendpackages/*- Shared packages (future)integration-tests- E2E integration tests
To create a shared package that both frontend and backend can use:
- Create a new directory in
packages/ - Add a
package.jsonwith a unique name - Reference it in other packages using
"packageName": "workspace:*"
- Start both servers:
npm run dev - Make changes to frontend or backend
- Run tests as you develop
- Run integration tests before committing major features
- Commit changes using git
Integration tests verify that frontend and backend work together:
# Run integration tests
npm run test:integration
# Run with UI (interactive mode)
cd integration-tests && npm run test:ui
# Debug tests
cd integration-tests && npm run test:debug| Script | Description |
|---|---|
npm run dev |
Start both frontend and backend |
npm run dev:frontend |
Start frontend only |
npm run dev:backend |
Start backend only |
npm run build |
Build both projects |
npm run build:frontend |
Build frontend only |
npm run build:backend |
Build backend only |
npm run test |
Run frontend and backend tests |
npm run test:frontend |
Run frontend tests |
npm run test:backend |
Run backend tests |
npm run test:integration |
Run integration tests |
npm run clean |
Clean all build artifacts |
The repository is initialized with git and includes a comprehensive .gitignore that covers:
- Node.js/npm artifacts
- Gradle/Kotlin build files
- IDE configurations
- OS-specific files
- Test reports and coverage
To make your first commit:
git add .
git commit -m "Initial monorepo setup with frontend and backend"To push to a remote repository:
git remote add origin <your-repo-url>
git branch -M main
git push -u origin mainUser → Frontend (React) → Backend API (Ktor) → Domain Logic → Response
- Epic/Feature/Story hierarchy for work organization
- Real-time conversation interface with AI assistance
- Focus-based navigation system
- Workflow management for development stages
- Document rendering and viewing
If ports 3000 or 8080 are in use:
- Frontend: Set
PORT=3001before running - Backend: Check
apps/backend/src/main/resources/application.conf
- Ensure Java 11+ is installed:
java -version - Clean and rebuild:
npm run clean:backend && npm run build:backend
- Clear cache:
npm run clean:frontend - Reinstall dependencies:
rm -rf node_modules package-lock.json && npm install
- Ensure both servers are running
- Check that ports 3000 and 8080 are accessible
- Review test reports in
integration-tests/test-reports/
- Create a feature branch
- Make your changes
- Run tests:
npm run test - Run integration tests:
npm run test:integration - Commit with clear messages
- Create a pull request
ISC