Thanks for taking the time to contribute.
BiblioDrift is a cozy, visual-first book discovery platform. Contributions should improve the calm, shelf-based browsing experience without breaking the existing mood-driven flow.
- Bug fixes
- UI and accessibility improvements
- Better mood or search logic
- AI note and recommendation refinements
- Documentation updates
- Test coverage for important flows
Before you begin, make sure you are familiar with the current stack:
- Frontend: HTML5, CSS3, Vanilla JavaScript
- Backend: Python
- API Source: Google Books API
- Python 3.9+ if you plan to run the backend
- A modern web browser
- Git
-
Fork the repository if you plan to contribute from your own account.
-
Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/BiblioDrift.git cd BiblioDrift -
Setting up upstream (recommended to keep your fork synchronized):
git remote add upstream https://github.com/devanshi14malhotra/BiblioDrift
Keeping your fork up-to-date:
git checkout main git fetch upstream git merge upstream/main
Important to do before any contribution.
-
Setup your python environment:
python -m venv .venv
-
Activate your virtual environment:
#Windows .venv\Scripts\activate #Linux source .venv/bin/activate
Verify virtual environment is active:
python --version
Your terminal should now show
(.venv)at the beginning. -
Setting up pip:
python -m ensurepip --upgrade python -m pip install --upgrade pip
-
Verify pip:
python -m pip --version
-
Install backend dependencies if needed:
python -m pip install -r requirements.txt
-
Run the app or open the frontend directly:
python app.py
Or open
index.htmlin your browser for frontend-only changes.
When opening an issue, include:
- A clear title
- The page or flow affected
- Exact steps to reproduce
- What you expected to happen
- What actually happened
When proposing an enhancement, describe:
- The user problem you are solving
- Why the change fits BiblioDrift
- Any relevant screenshots or examples
- Keep changes focused and easy to review.
- Test your changes locally before submitting.
- Update documentation if behavior or setup changes.
- Include screenshots for visible UI changes.
- Reference the related issue if one exists.
If label automation is enabled in the repository, gssoc:approved is added when the PR has an approval on its current head commit and is removed again if that approval becomes stale after new commits.
- Keep the frontend vanilla unless a change explicitly needs otherwise.
- Preserve the calm, tactile visual style.
- For frontend UI changes, edit the source files under
frontend/. Do not edit generateddist/files unless a maintainer explicitly asks for a built output update. - When changing navigation or shared UI states, verify the active, hover, and keyboard-focus states on each affected page.
- Follow existing Python style and naming patterns.
- The main project overview lives in README.md.
- If you need to explain setup or workflows, update this file or the README.
By contributing, you agree that your contributions will be licensed under the project’s MIT License.