mcpField
G
generic-fullstack-feature-developer

generic-fullstack-feature-developer

github.com/travisjneumanDevelopment106176 installsUpdated 1d ago
Repository

About generic-fullstack-feature-developer

A feature-development guide for Next.js/NestJS full-stack applications. It extends a generic development workflow with guidance on data flow, Prisma, authentication, and implementation checklists.

Key features

  1. 01Next.js App Router patterns
  2. 02NestJS module structure
  3. 03Prisma schema and migration workflow
  4. 04JWT authentication flow
  5. 05Full-stack feature checklist

Use cases

  1. 01Plan data models and APIs for a full-stack feature
  2. 02Implement a NestJS module and frontend components
  3. 03Create migrations for Prisma schema changes
  4. 04Review authentication, error handling, and types

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/travisjneuman/.claude --skill generic-fullstack-feature-developer

After installing, type/generic-fullstack-feature-developerin Claude Code to confirm it loaded.

Details

From the project README

Fullstack Feature Developer

Guide feature development for Next.js/NestJS full-stack applications.

Extends: Generic Feature Developer - Read base skill for development workflow, decision frameworks, data flow patterns, and error handling.

Full-Stack Data Flow

User Action → Event Handler → API Call → NestJS Controller
                                              ↓
UI Update ← Response ← Service ← Prisma ← Database
Request/Response Cycle
// Frontend: Call API
const response = await fetch('/api/users', {
  method: 'POST',
  body: JSON.stringify(userData),
});

// Backend: Handle request
@Post()
@UseGuards(JwtAuthGuard)
async createUser(@Body() dto: CreateUserDto) {
  return this.userService.create(dto);
}

Next.js App Router Patterns

File Conventions
FilePurpose
page.tsxRoute UI (server component by default)
layout.tsxShared UI wrapper
loading.tsxSuspense loading UI
error.tsxError boundary
route.tsAPI endpoint
Server vs Client Components
// Server Component (default) - can fetch data
export default async function Page() {
  const data = await getData(); // Direct DB/API call
  return <div>{data.title}</div>;
}

// Client Component - needs 'use client'
'use client';
export default function Interactive() {
  const [state, setState] = useState();
  return <button onClick={() => setState(...)}>Click</button>;
}

NestJS Module Pattern

Module → Controller → Service → Prisma
Adding a Feature Module
// 1. Module definition
@Module({
  controllers: [UsersController],
  providers: [UsersService],
  exports: [UsersService],
})
export class UsersModule {}

// 2. Controller with guards
@Controller("users")
@UseGuards(JwtAuthGuard)
export class UsersController {
  @Post()
  create(@Body() dto: CreateUserDto) {
    return this.usersService.create(dto);
  }
}

// 3. Service with Prisma
@Injectable()
export class UsersService {
  constructor(private prisma: PrismaService) {}

  create(dto: CreateUserDto) {
    return this.prisma.user.create({ data: dto });
  }
}

Prisma Workflow

Schema Changes
# 1. Edit schema.prisma
# 2. Create migration
npx prisma migrate dev --name add_user_role

# 3. Regenerate client
npx prisma generate

# 4. Update services to use new fields
Type-Safe Queries
// ✓ Type-safe with generated types
const user = await this.prisma.user.findUnique({
  where: { id },
  include: { posts: true },
});

// ✗ Avoid raw SQL
await this.prisma.$queryRaw`SELECT * FROM users`; // No type safety

Authentication Flow

Login Request → Validate Credentials → Generate JWT → Set Cookie
      ↓
Protected Route → JwtAuthGuard → Extract User → Inject to Controller
Auth Integration Points
// Frontend: Include credentials
fetch('/api/protected', { credentials: 'include' });

// Backend: Guard + decorator
@UseGuards(JwtAuthGuard)
@Get('profile')
getProfile(@CurrentUser() user: User) {
  return user;
}

Feature Checklist (Fullstack)

Before Starting
  • Plan data model (Prisma schema)
  • Define API contract (DTOs)
  • Identify auth requirements
During Development
  • Create/update Prisma schema
  • Run migrations
  • Implement NestJS module (controller + service)
  • Create frontend components
  • Add loading/error states
Before Completion
  • Add DTO validation decorators
  • Review services and API error paths against the DTOs and callers
  • Backend unit and API E2E tests only if the user asked for them
  • Verify TypeScript types match

See Also

Comments

Markdown supported