# AI Coding Guidelines
```markdown
# Communication Protocol
ALWAYS RESPOND IN JAPANESE
- Context: Japanese-native development team
- Format: Explanations in Japanese, code/comments in English
- Purpose: Ensure clear understanding while maintaining code internationalization
# Technical Stack Definition
Core: JavaScript/TypeScript Ecosystem
Architecture Components:
- Frontend: Next.js, Tailwind CSS
- Backend: Express, Go (Gin)
- Data Layer: PostgreSQL, Prisma ORM
- Infrastructure: AWS CDK, GitHub Actions CI/CD
# Project Structure
```
[Standard Project Layout]
.
├── Makefile # Build automation
├── docker/ # Container configurations
├── infrastructure/ # AWS CDK configurations
├── prisma/ # Database schema and migrations
├── src/ # Application source code
│ ├── app.js # Application entry point
│ ├── controllers.js # Request handlers
│ ├── middleware.js # Custom middleware
│ ├── routes.js # Route definitions
│ ├── services.js # Business logic
│ ├── public/ # Static assets
│ └── views/ # Template files
└── tests/ # Test suites
```
# Code Organization Principles
- Monolithic File Structure
- Limited File Splitting Policy
- Exceptions:
- Environment Configuration (.env)
- View Templates (./src/views)
- Test Files (./src/tests)
# Core Application Files
- app.js: Application Bootstrap
- controllers.js: Request Processing
- middleware.js: Request Pipeline
- routes.js: URL Mapping
- services.js: Business Logic
- test-setup.js: Test Configuration
# API Endpoint Naming Convention
GET Operations:
- list{Resource}: Collection retrieval
- get{Resource}: Single item retrieval
- show{Resource}: View rendering
- check{Resource}: Status verification
- count{Resource}: Quantity calculation
POST Operations:
- add{Resource}: Single item creation
- create{Resource}: Complex creation
- publish{Resource}: Public release
- send{Resource}: Transmission
- assign{Resource}: Association
PUT/PATCH Operations:
- update{Resource}: Full update
- modify{Resource}: Partial update
DELETE Operations:
- remove{Resource}: Deletion
- clear{Resource}: Bulk removal
# Architectural Pattern
Controller-Service Architecture:
1. Method Name Symmetry:
- Controller methods mirror service methods
- Exception: View methods (show*)
2. Data Flow:
- Controllers handle requests/responses
- Services contain business logic
- Views consume get* service methods
# Default Data Structures
・user
email: 'user@example.com',
password: 'password',
name: 'DefaultUser'
・admin
email: 'admin@example.com',
password: 'password'
name: 'SystemAdmin'
## User Schema
```typescript
interface DefaultUser {
email: string;
password: string;
name: string;
}
```
## Role Type
```typescript
{ name: 'user', description: 'Regular user role' },
{ name: 'admin', description: 'Administrator role' },
{ name: 'read-only-admin', description: 'Read-only administrator role' }
```
# Code Generation Requirements
1. Consistent Patterns:
- Follow established naming conventions
- Implement RESTful principles
- Use TypeScript types/interfaces
2. Quality Assurance:
- Comprehensive error handling
- Input validation
- Meaningful comments
- Unit test coverage
3. Security Measures:
- Data sanitization
- Authentication checks
- Authorization controls
- XSS prevention
```
# Implementation Guidelines
1. Type Safety:
- Strict TypeScript usage
- Explicit interface definitions
- Proper type guards
2. Error Handling:
- Custom error classes
- Structured error responses
- Logging strategy
3. Performance:
- Query optimization
- Caching strategy
- Resource pooling
4. Security:
- Input validation
- Output sanitization
- Authentication/Authorization
- Rate limiting
5. Testing:
- Unit tests
- Integration tests
- E2E tests where applicable
6. Documentation:
- API documentation
- Code comments
- Change logsaws
bootstrap
css
docker
dockerfile
ejs
express.js
golang
+10 more
First Time Repository
JavaScript
Languages:
CSS: 38.7KB
Dockerfile: 1.1KB
EJS: 99.6KB
JavaScript: 194.8KB
Makefile: 18.6KB
Shell: 24.6KB
TypeScript: 89.7KB
Created: 12/16/2024
Updated: 1/12/2025