Thank you for your interest in contributing to Prodfind! This document provides guidelines for contributing to the project.
- Fork the repository
- Clone your fork:
git clone https://github.com/yourusername/prodfind.git - Install dependencies:
pnpm install - Start development server:
pnpm dev
- Node.js 18.18+
- pnpm package manager
- PostgreSQL database
- Copy
.env.exampleto.env.local - Configure your database connection
- Set up authentication providers (Google OAuth, etc.)
- Run database migrations:
pnpm db:migrate
- Create a new branch:
git checkout -b feature/your-feature-name - Make your changes
- Run linting:
pnpm lint - Test your changes locally
- Commit with descriptive messages
- Push to your fork
- Create a Pull Request
- Follow the existing code style and patterns
- Use TypeScript for all new code
- Maintain type safety with Zod schemas
- Use tRPC for API endpoints
- Follow the component organization in
src/components/
- Use Drizzle ORM for schema changes
- Generate migrations:
pnpm db:generate - Test migrations locally before submitting
- Code follows project conventions
- Linting passes (
pnpm lint) - Changes are tested locally
- Commit messages are descriptive
- PR description explains the changes
## What does this PR do?
Brief description of changes
## Type of change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Testing
- [ ] Tested locally
- [ ] No breaking changes to existing functionality
src/app/- Next.js App Router pagessrc/components/- React components organized by featuresrc/lib/- Utilities, database, auth configurationsrc/trpc/- tRPC API routerssrc/types/- TypeScript schemas and typesdrizzle/- Database migrations
- Framework: Next.js 15 with App Router
- Database: PostgreSQL with Drizzle ORM
- API: tRPC for type-safe APIs
- Auth: Better-auth with multi-provider support
- UI: Tailwind CSS with Radix UI
- Package Manager: pnpm
- Check existing issues before creating new ones
- Join discussions in GitHub Issues
- Review the codebase documentation in CLAUDE.md
By contributing, you agree that your contributions will be licensed under the project's license.