First off, thank you for considering contributing to the Airbnb Clone project! It's people like you that make this project better for everyone.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to support@lambdatest.com.
Before creating bug reports, please check the existing issues as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible:
- Use a clear and descriptive title for the issue to identify the problem.
- Describe the exact steps which reproduce the problem in as many details as possible.
- Provide specific examples to demonstrate the steps.
- Describe the behavior you observed after following the steps and point out what exactly is the problem with that behavior.
- Explain which behavior you expected to see instead and why.
- Include screenshots and animated GIFs if possible.
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include:
- Use a clear and descriptive title for the issue to identify the suggestion.
- Provide a step-by-step description of the suggested enhancement in as many details as possible.
- Provide specific examples to demonstrate the steps.
- Describe the current behavior and explain which behavior you expected to see instead and why.
- Explain why this enhancement would be useful to most Airbnb Clone users.
- Fill in the required template
- Do not include issue numbers in the PR title
- Follow the TypeScript and React styleguides
- Include thoughtfully-worded, well-structured tests
- Document new code
- End all files with a newline
Fork the project on GitHub and clone your fork locally.
git clone https://github.com/YOUR-USERNAME/airbnb-clone.git
cd airbnb-clone
git remote add upstream https://github.com/LambdaTest/airbnb-clone.gitCreate a branch for your work. Use a descriptive name:
git checkout -b feature/amazing-feature
# or
git checkout -b fix/bug-description- Write clean, readable code
- Follow existing code style
- Add tests for new features
- Update documentation as needed
- Commit your changes using descriptive commit messages
git add .
git commit -m "Add amazing feature"git fetch upstream
git rebase upstream/maingit push origin feature/amazing-featureGo to the repository on GitHub and click "New Pull Request". Fill in the template with all relevant information.
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
Examples:
Add user authentication feature
Fix crash when loading empty listings
Update README with new installation steps
- Use TypeScript for all new code
- Use meaningful variable names
- Add type annotations for function parameters and return values
- Avoid
anytype when possible - Use interfaces for object types
- Use enums for fixed sets of values
- Use functional components with hooks
- Keep components small and focused
- Extract reusable logic into custom hooks
- Use descriptive prop names
- Add PropTypes or TypeScript interfaces for props
- Follow the single responsibility principle
- Use Tailwind utility classes when possible
- Keep custom CSS minimal
- Use consistent spacing and sizing
- Follow mobile-first approach
- Group related utilities together
airbnb-clone/
├── backend/
│ ├── src/
│ │ ├── config/ # Configuration files
│ │ ├── controllers/ # Route controllers
│ │ ├── data/ # Mock data
│ │ ├── middleware/ # Custom middleware
│ │ ├── models/ # Database models
│ │ ├── routes/ # API routes
│ │ └── types/ # TypeScript types
│ └── tests/ # Backend tests
│
└── frontend/
├── src/
│ ├── components/ # Reusable React components
│ ├── pages/ # Page components
│ ├── services/ # API services
│ ├── store/ # State management
│ └── types/ # TypeScript types
└── tests/ # Frontend tests
- Write tests for new features
- Ensure all tests pass before submitting PR
- Aim for good code coverage
# Backend tests
cd backend
npm test
# Frontend tests
cd frontend
npm test- Update README.md if needed
- Add JSDoc comments for functions
- Update API documentation for new endpoints
- Add inline comments for complex logic
Feel free to ask questions in the GitHub issues or contact the maintainers directly.
Contributors will be recognized in the project README and releases.
Thank you for contributing! 🎉