Platform for scientists and educators to collect and combine educational data into benchmarks for competency-based learning.
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
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
- 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
- API: RESTful endpoints, JWT authentication required
- Backend: Use
server/server-manage.shfor Spring Boot operations - Frontend: Standard Next.js development workflow
Backend:
cd server
./server-manage.sh upFrontend:
npm run devAccess:
- Frontend: http://localhost:3000
- API: http://localhost:8080
- Swagger UI: http://localhost:8080/swagger-ui.html
- Keycloak: http://localhost:8081 (admin/admin)
Five specialized agents in .claude/agents/:
- senior-architect - Plans & orchestrates (NO implementation). Use proactively for new features.
- nextjs-expert - App Router, routing, React components
- shadcn-expert - UI components, Tailwind
- database-expert - PostgreSQL, JPA, Spring Data
- docker-expert - Containers, deployment
For new features: senior-architect analyzes → designs → creates plan → gets approval → orchestrates specialized agents
Frontend Commands:
npm run dev- Development servernpm run build- Production buildnpm 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
- QUICKSTART.md - Step-by-step setup guide
- MIGRATION_COMPLETE.md - Migration summary
- server/README.md - Backend documentation
- SECURITY.md - Security guidelines
All API requests require JWT token from Keycloak. Default users:
- Demo:
demo@memo.local/demo(USER role) - Admin:
admin@memo.local/admin(ADMIN role)