Intial Setup
This commit is contained in:
91
CLAUDE.md
Normal file
91
CLAUDE.md
Normal file
@@ -0,0 +1,91 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
StoryCove is a self-hosted web application for storing, organizing, and reading short stories from internet sources. The project is currently in the specification phase with a comprehensive requirements document.
|
||||
|
||||
## Architecture
|
||||
|
||||
This is a multi-tier application with the following planned stack:
|
||||
- **Frontend**: Next.js
|
||||
- **Backend**: Spring Boot (Java)
|
||||
- **Database**: PostgreSQL
|
||||
- **Search**: Typesense
|
||||
- **Reverse Proxy**: Nginx
|
||||
- **Deployment**: Docker & Docker Compose
|
||||
|
||||
## Development Commands
|
||||
|
||||
### Frontend (Next.js)
|
||||
- `cd frontend && npm run dev` - Start development server
|
||||
- `cd frontend && npm run build` - Build for production
|
||||
- `cd frontend && npm run lint` - Run ESLint
|
||||
- `cd frontend && npm run type-check` - Run TypeScript compiler
|
||||
|
||||
### Backend (Spring Boot)
|
||||
- `cd backend && ./mvnw spring-boot:run` - Start development server
|
||||
- `cd backend && ./mvnw test` - Run tests
|
||||
- `cd backend && ./mvnw clean package` - Build JAR
|
||||
|
||||
### Docker
|
||||
- `docker-compose up -d` - Start all services
|
||||
- `docker-compose down` - Stop all services
|
||||
- `docker-compose build` - Rebuild containers
|
||||
- `docker-compose logs -f [service]` - View logs
|
||||
|
||||
## Current Project State
|
||||
|
||||
The repository now has a complete project structure with Docker configuration, frontend Next.js setup, and backend Spring Boot foundation ready for development.
|
||||
|
||||
## Key Implementation Details from Specification
|
||||
|
||||
### Database Schema
|
||||
- Stories with HTML content, metadata, ratings, and file attachments
|
||||
- Authors with profiles, ratings, and URL collections
|
||||
- Tag-based categorization system
|
||||
- Series support for multi-part stories
|
||||
- UUID-based primary keys throughout
|
||||
|
||||
### API Design
|
||||
- RESTful endpoints for stories, authors, tags, and series
|
||||
- JWT-based authentication with single password
|
||||
- Multipart form data for file uploads (covers, avatars)
|
||||
- Full-text search integration with Typesense
|
||||
|
||||
### Security Requirements
|
||||
- HTML sanitization using allowlist (Jsoup on backend)
|
||||
- Content Security Policy headers
|
||||
- Input validation and parameterized queries
|
||||
- Image processing with size limits and format restrictions
|
||||
|
||||
### Image Handling
|
||||
- Cover images for stories (800x1200 max)
|
||||
- Avatar images for authors (400x400)
|
||||
- File storage in Docker volumes
|
||||
- Support for JPG, PNG, WebP formats
|
||||
|
||||
## Development Tasks
|
||||
|
||||
Based on the specification, implementation should follow this sequence:
|
||||
1. Docker environment and database setup
|
||||
2. Spring Boot backend with core CRUD operations
|
||||
3. Typesense search integration
|
||||
4. Next.js frontend with authentication
|
||||
5. Reading interface and user experience features
|
||||
|
||||
## Authentication Flow
|
||||
- Single password authentication (no user accounts)
|
||||
- JWT tokens stored in httpOnly cookies
|
||||
- Protected routes via middleware
|
||||
|
||||
## File Structure Expectations
|
||||
When implementation begins, the structure should follow:
|
||||
```
|
||||
frontend/ # Next.js application
|
||||
backend/ # Spring Boot application
|
||||
nginx.conf # Reverse proxy configuration
|
||||
docker-compose.yml # Container orchestration
|
||||
.env # Environment variables
|
||||
```
|
||||
Reference in New Issue
Block a user