Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .vscode/settings.json
Comment thread
vtotalova marked this conversation as resolved.
Outdated
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"java.compile.nullAnalysis.mode": "automatic",
"java.configuration.updateBuildConfiguration": "interactive"
}
93 changes: 81 additions & 12 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,32 +5,101 @@ competency-based learning.

## Tech Stack

Next.js 15 (App Router) · React 19 · TypeScript · shadcn/ui · Tailwind CSS 4 · PostgreSQL 16 ·
Prisma (planned) · Zustand + TanStack Query · Vitest + Playwright (planned) · Docker
**Frontend**: Next.js 15 (App Router) · React 19 · TypeScript · shadcn/ui · Tailwind CSS 4 · React Query · Axios

**Backend**: Spring Boot 4.0 · Java 25 · PostgreSQL 16 · Flyway · JPA/Hibernate

**Auth**: Keycloak 26.4 · OAuth2 · JWT

**Deployment**: Docker Compose · Gradle

## Architecture

```
Next.js Frontend (port 3000)
├── React Components
├── TanStack Query (server state)
├── Axios API Client
├── Keycloak Authentication
└── TypeScript API Types

Spring Boot Backend (port 8080)
├── REST Controllers + OpenAPI
├── Service Layer
├── Spring Data JPA
├── JPA Entities
├── Flyway Migrations
└── Spring Security + OAuth2

Keycloak (port 8081)
└── OAuth2/JWT Authentication

PostgreSQL (port 5433)
└── Application Database
```

## Key Conventions

- **Components**: PascalCase files, Server Components by default, `'use client'` only when needed
- **Code Style**: Self-documenting code, minimal comments, rely on ESLint/Prettier
- **Git**: Feature branches → PR → merge to main, multiple commits per branch OK
- **Deployment**: Manual GitHub Actions triggers for staging/production
- **Docker**: Use `./docker-manage.sh` for all operations (memo-dev, memo-staging, memo-prod)
- **API**: RESTful endpoints, JWT authentication required
- **Backend**: Use `server/server-manage.sh` for Spring Boot operations
- **Frontend**: Standard Next.js development workflow

## Quick Start

**Backend:**
```bash
cd server
./server-manage.sh up
```

**Frontend:**
```bash
npm run dev
```

**Access:**
- Frontend: http://localhost:3000
- API: http://localhost:8080
- Swagger UI: http://localhost:8080/swagger-ui.html
- Keycloak: http://localhost:8081 (admin/admin)

## AI Subagents

Five specialized agents in `.claude/agents/`:

1. **senior-architect** - Plans & orchestrates (NO implementation). Use proactively for new
features.
2. **nextjs-expert** - App Router, routing, Server Actions
1. **senior-architect** - Plans & orchestrates (NO implementation). Use proactively for new features.
2. **nextjs-expert** - App Router, routing, React components
3. **shadcn-expert** - UI components, Tailwind
4. **database-expert** - PostgreSQL, Prisma, domain modeling
4. **database-expert** - PostgreSQL, JPA, Spring Data
5. **docker-expert** - Containers, deployment

## Workflow

For new features: senior-architect analyzes → designs → creates plan → gets approval → orchestrates
specialized agents
For new features: senior-architect analyzes → designs → creates plan → gets approval → orchestrates specialized agents

**Frontend Commands:**
- `npm run dev` - Development server
- `npm run build` - Production build
- `npm run quality` - Type-check + lint + format

**Backend Commands:**
- `cd server && ./server-manage.sh up` - Start all services
- `./server-manage.sh logs` - View logs
- `./server-manage.sh build` - Build Spring Boot app
- `./server-manage.sh test` - Run tests

## Documentation

- **QUICKSTART.md** - Step-by-step setup guide
- **MIGRATION_COMPLETE.md** - Migration summary
- **server/README.md** - Backend documentation
- **SECURITY.md** - Security guidelines

## Authentication

Commands: `npm run quality` (type-check + lint + format), `npm run dev`,
`./docker-manage.sh up development`
All API requests require JWT token from Keycloak. Default users:
- **Demo**: `demo@memo.local` / `demo` (USER role)
- **Admin**: `admin@memo.local` / `admin` (ADMIN role)
124 changes: 0 additions & 124 deletions DATABASE.md

This file was deleted.

75 changes: 0 additions & 75 deletions DEPLOYMENT_CHECKLIST.md

This file was deleted.

Loading
Loading