Thank you for considering contributing to ViTransfer! This document provides guidelines for contributing to the project.
Be respectful, professional, and constructive in all interactions.
- Check if the bug has already been reported in Issues
- If not, create a new issue with:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Your environment (OS, Docker version, etc.)
- Relevant logs or screenshots
- Open a new issue with the "feature request" label
- Describe the feature and its use case
- Explain why this would be valuable
- Consider implementation details if possible
- Fork the repository
- Create a branch from
main:git checkout -b feature/your-feature-name
- Make your changes:
- Follow existing code style
- Add comments for complex logic
- Update documentation if needed
- Test your changes:
npm run build docker-compose up --build
- Commit with clear messages:
git commit -m "Add feature: descriptive message" - Push to your fork:
git push origin feature/your-feature-name
- Open a Pull Request on GitHub
- Node.js 20+
- Docker and Docker Compose
- Git
# Clone the repo
git clone https://github.com/MansiVisuals/ViTransfer.git
cd ViTransfer
# Install dependencies
npm install
# Set up environment
cp .env.example .env
# Edit .env with your values
# Start services
docker-compose up -d postgres redis
# Run migrations
npx prisma migrate dev
# Start dev server
npm run dev
# In another terminal, start worker
npm run workervitransfer/
├── src/
│ ├── app/ # Next.js app router pages
│ ├── components/ # React components
│ ├── lib/ # Utility functions
│ └── worker/ # Background job processor
├── prisma/
│ ├── schema.prisma # Database schema
│ └── migrations/ # Database migrations
├── public/ # Static assets
└── docker-compose.yml # Docker configuration
- TypeScript: Use strict typing
- React: Functional components with hooks
- Styling: Tailwind CSS utility classes
- Files: Keep components focused and reusable
- Naming: Descriptive names (camelCase for variables, PascalCase for components)
# Run type check
npm run build
# Test Docker build
docker-compose build
# Test deployment
docker-compose up- Update version in
package.json - Update CHANGELOG.md
- Create git tag:
git tag v1.0.0 - Push tag:
git push --tags - GitHub Actions will build and publish Docker images
- Open a discussion on GitHub
- Check existing issues and documentation
- Ask in pull request comments
By contributing, you agree that your contributions will be licensed under the GNU General Public License v3.0 (GPL-3.0), keeping ViTransfer free and open-source for all.