Thank you for your interest in contributing to DR-Engine! This document provides guidelines and instructions for contributing.
- Be respectful and inclusive
- Provide constructive feedback
- Focus on the issue, not the person
- Help maintain a welcoming community
- Node.js 18+
- npm or yarn
- Git
- A code editor (VS Code recommended)
# 1. Fork the repository on GitHub
# 2. Clone your fork
git clone https://github.com/YOUR_USERNAME/dr-engine.git
cd dr-engine
# 3. Install dependencies
npm install
# 4. Start development server
npm run dev
# 5. Open http://localhost:3000dr-engine/
├── src/
│ ├── app/ # Next.js app router pages
│ ├── components/ # React components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utilities and API logic
│ └── types/ # TypeScript type definitions
├── public/ # Static assets
└── docs/ # Documentation
- Single Responsibility: Each file should have one clear purpose
- File Length: Keep files under 100-150 lines; split if larger
- Naming: Use descriptive, industry-standard names
- Subfolders: Organize related files in subfolders
- Use TypeScript for all new files
- Define explicit types for props and function parameters
- Avoid
anytype when possible
- Use functional components with hooks
- Place component-specific hooks in the same directory
- Follow naming convention:
ComponentName.tsx
- Use Tailwind CSS utility classes
- Follow the existing design system
git checkout -b feature/your-feature-name
# or
git checkout -b fix/issue-description- Write clean, documented code
- Follow the code style guidelines
- Test your changes locally
git add .
git commit -m "feat: add new feature description"Commit Message Format:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Formatting changesrefactor:Code refactoringtest:Adding testschore:Maintenance tasks
git push origin feature/your-feature-nameThen create a Pull Request on GitHub with:
- Clear title describing the change
- Description of what was changed and why
- Screenshots for UI changes
- Reference to related issues
- Check if the issue already exists
- Create a new issue with:
- Clear, descriptive title
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Browser and OS information
- Check existing issues for similar suggestions
- Create a new issue with:
- Clear description of the feature
- Use case and benefits
- Possible implementation approach
By contributing, you agree that your contributions will be licensed under the same CC BY-NC 4.0 license.
Your contributions help make DR-Engine better for everyone!