Thank you for your interest in contributing to Quibble! We’re excited to build a respectful and engaging platform together. Please follow these guidelines to make the process smooth and efficient.
-
Fork the Repository
Start by forking the Quibble repository. -
Clone Your Fork
git clone https://github.com/your-username/Quibble.git cd Quibble -
Set Up Environment
Install the required tools for both the backend and frontend.
backend:poetry
frontend: npm -
Setup Pre-commit Hooks
Quibble usespre-commithooks to automate code quality checks. Before you start contributing, please ensure the following steps are completed to install and configure the pre-commit hooks.If you don't have
pre-commitinstalled, you can run the following Python script to install it:python3 ./scripts/pre-commit.py
backend- Django app.frontend- Svelte/kit app.docker- Container files for docker apps.
-
Navigate to the Backend Directory
cd backend -
Install Dependencies with Poetry
poetry install
-
Set Up Environment Variables
Copy.env.exampleto.envand update environment variables as needed. -
Run Database Migrations
poetry run poe mksync poetry run poe sync # if you have poethepoet installed poe mksync && poe sync
-
Start the Development Server
poetry run poe dev # if you have poethepoet installed poe dev
You can run postgres on background and create a database called quibble_db (default) or whatever you specific in backend/.env.
Or you can run this docker/podman container with:
# podman
podman compose -f docker/compose-db.yml up --build
# docker
docker compose -f docker/compose-db.yml up --buildAdd -d if you want to run it on detatched mode.
-
Navigate to the Frontend Directory
cd frontend -
Install Dependencies
npm install
-
Run the Development Server
npm run dev
-
Create a New Branch
git checkout -b feature/your-feature-name
-
Make Changes
Ensure your changes adhere to the project’s coding standards. -
Lint and Format Your Code
- For the backend, ensure your code meets PEP8 standards.
- For the frontend, use ESLint and Prettier.
-
Write Tests
Aim to write tests for any new functionality. -
Run Tests
- Backend: Run tests with
poetry run pytest - Frontend: Run tests with
npm test
- Backend: Run tests with
-
Commit Your Changes
Use meaningful commit messages:git commit -m "Add feature description" -
Push Your Changes
git push origin feature/your-feature-name
-
Open a Pull Request
Go to the Pull Requests tab on GitHub and open a new PR. -
Describe Your Changes
Clearly describe the changes you made and link any relevant issues. -
Request a Review
Tag project maintainers or team members for a review.
Please respect others and foster a welcoming environment. We expect all contributors to adhere to the Code of Conduct.
- Documentation: Ensure new features or changes are documented.
- Commit Hygiene: Keep your commit history clean; squash commits if necessary.
Thank you for contributing to Quibble! We look forward to your input.