Files
AdventureLog/CONTRIBUTING.md
Sean Morley b2ca759358 Enhance API key management, location quick add features, and error handling (#1125)
* Refactor AdventureLog Bot workflow to improve issue validation handling and encapsulate comment and close logic

* feat: add API key management to settings page

- Implemented API key creation, deletion, and display functionality.
- Updated the settings page to fetch and show existing API keys.
- Added UI elements for creating new API keys and copying them to clipboard.
- Enhanced request handling to ensure proper trailing slashes for API endpoints.

* feat: add API Keys documentation and update contributing guidelines

* fix: update appVersion to reflect the latest build

* fix: update @tailwindcss/typography to version 0.5.19

* fix: update @tailwindcss/typography to version 0.5.19

* chore: update dependencies in pnpm-lock.yaml

- dompurify: upgraded from 3.3.1 to 3.3.3
- emoji-picker-element: upgraded from 1.29.0 to 1.29.1
- @sveltejs/adapter-node: updated to use @sveltejs/kit@2.55.0
- @sveltejs/adapter-vercel: updated to use @sveltejs/kit@2.55.0
- @sveltejs/kit: upgraded from 2.53.3 to 2.55.0
- @types/node: upgraded from 22.19.13 to 22.19.15
- autoprefixer: updated postcss version from 8.5.6 to 8.5.8
- baseline-browser-mapping: upgraded from 2.10.0 to 2.10.8
- daisyui: updated postcss version from 8.5.6 to 8.5.8
- prettier-plugin-svelte: upgraded from 3.5.0 to 3.5.1
- svelte-check: updated postcss version from 8.5.6 to 8.5.8
- devalue: upgraded from 5.6.3 to 5.6.4
- electron-to-chromium: upgraded from 1.5.302 to 1.5.313
- caniuse-lite: upgraded from 1.0.30001774 to 1.0.30001780
- mlly: upgraded from 1.8.0 to 1.8.1
- node-releases: upgraded from 2.0.27 to 2.0.36
- tar: upgraded from 7.5.9 to 7.5.11
- tinyexec: upgraded from 1.0.2 to 1.0.4

* fix: update appVersion to include the latest build identifier

* fix: enhance authentication fallback for protected media access

* feat(auth): add 'mobile-qr' to trailing slash list for URL handling

* Translated using Weblate (French)

Currently translated at 99.9% (1091 of 1092 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/fr/

* Translated using Weblate (Korean)

Currently translated at 100.0% (1092 of 1092 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/ko/

* Translated using Weblate (German)

Currently translated at 100.0% (1092 of 1092 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (1092 of 1092 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sv/

* Added translation using Weblate (Catalan)

* Translated using Weblate (Catalan)

Currently translated at 1.2% (14 of 1092 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/ca/

* Docs: Reorder immich API permissions to natural order (#1086)

* Refactor AdventureLog Bot workflow to improve issue validation handling and encapsulate comment and close logic (#1068)

* Reorder immich API permissions to natural order

---------

Co-authored-by: Sean Morley <git@seanmorley.com>

* Translated using Weblate (Turkish)

Currently translated at 100.0% (1093 of 1093 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/tr/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (1093 of 1093 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sv/

* Translated using Weblate (German)

Currently translated at 100.0% (1093 of 1093 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/

* Add ENABLE_RATE_LIMITS configuration for backend rate limiting

* Set tabindex to -1 for dropdown menus to improve accessibility

* feat: Enhance LocationQuickStart component with quick add functionality and location enrichment

- Added quick add feature for locations with category selection.
- Implemented location description enrichment using Google Maps API.
- Improved search functionality and result handling.
- Introduced new utility functions for location saving and validation.
- Updated UI to reflect changes in location selection and quick add status.
- Added toast notifications for user feedback on actions.
- Refactored existing code for better readability and maintainability.

fix: Ensure finite coordinates in LocationSearchMap component

- Added validation for initial selection coordinates to prevent errors.

chore: Update app version to v0.12.0-main-033126

- Updated versioning in config file.

feat: Create location-save module for handling location data saving

- Implemented saveLocation function to handle both new and existing location data.
- Added utility functions for coordinate formatting and link sanitization.

* fix: Remove unused API keys section from Norwegian and Polish locale files

* fix: typo in backend success response (#1010)

* feat: enhance API key security with PBKDF2 hashing and configurable iterations

* fix: update PR handling to ignore dependabot in addition to maintainer

* fix: improve error handling for image import and permission validation

* fix: format code for better readability in LocationQuickStart component

* Translated using Weblate (Spanish)

Currently translated at 100.0% (1097 of 1097 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/es/

* Translated using Weblate (German)

Currently translated at 99.7% (1094 of 1097 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/

* Translated using Weblate (German)

Currently translated at 99.7% (1094 of 1097 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/

* fix: update default value for ENABLE_RATE_LIMITS in Docker configuration

* feat(lodging): implement quick start feature for lodging creation

- Added LodgingQuickStart component to facilitate quick lodging entry.
- Integrated Google Maps support for lodging selection and details enrichment.
- Enhanced LodgingModal to include quick start step and handle prefill from Google Places.
- Introduced utility function to infer lodging type from Google Places data.
- Updated localization files to include new strings for quick start functionality.

* fix: correct appVersion to reflect the development version

* fix: theme selector not working on HTTP environment (#1102)

* fix: remove unnecessary trailing comma in secure cookie setting

* Translated using Weblate (German)

Currently translated at 100.0% (1098 of 1098 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (1098 of 1098 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/es/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (1098 of 1098 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sv/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (1098 of 1098 strings)

Translation: AdventureLog/Web App
Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/tr/

* feat(itinerary): add validation for global and dated itinerary items

* Refactor code structure for improved readability and maintainability

* feat: update serializers and views to handle images and attachments in backup/export processes

* feat(itinerary): implement quick add functionality for locations and lodgings with itinerary date handling

* chore: update Django and Pillow versions in requirements.txt

* fix: update appVersion to reflect the main branch version

* fixes External Mapping Search not using saved GPS coordinate for Loacations
Fixes #1134

---------

Co-authored-by: lesensei <alain-gh@lespeps.eu>
Co-authored-by: Hosted Weblate user 141821 <clearstripe@users.noreply.hosted.weblate.org>
Co-authored-by: Alex <div@alexe.at>
Co-authored-by: AntonPalmqvist <apq@users.noreply.hosted.weblate.org>
Co-authored-by: Marc Llopart <marc@medullar.com>
Co-authored-by: Stephan Zwicknagl <64196842+stephanzwicknagl@users.noreply.github.com>
Co-authored-by: Orhun <orhunavcu@gmail.com>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Co-authored-by: Matthias Thym <git@thym.at>
Co-authored-by: Francisco Serrador <fserrador@gmail.com>
Co-authored-by: Johannes Roeßler <adventurelog@joei.de>
Co-authored-by: Gaël <67436391+Pexilo@users.noreply.github.com>
Co-authored-by: MrAsieru <weblate@asier.net>
2026-05-15 22:25:09 -04:00

6.1 KiB
Raw Blame History

Contributing to AdventureLog

Thank you for your interest in contributing to AdventureLog! AdventureLog is an open-source project built by and for people who love travel, exploration, and self-hosting. Contributions of all kinds are welcome — whether thats fixing bugs, improving documentation, suggesting features, or writing code.

Our goal is to keep the project open, welcoming, and organized so that contributors can collaborate effectively and the codebase remains maintainable long-term.

This document explains how to contribute and the workflow we use.


How Contributions Work

AdventureLog uses a structured workflow to keep development organized and to make it easier for contributors to collaborate.

All development follows this process:

Issue → Discussion → Approved → Ready → Development → Review → Merge

1. Open or Find an Issue

Before starting work, please open an issue or find an existing one.

Issues allow us to:

  • discuss ideas before development begins
  • coordinate work between contributors
  • prevent duplicate efforts
  • maintain a clear roadmap for the project

If you have an idea for a new feature or improvement, feel free to open an issue describing it.


2. Wait for Approval / Ready Status

Issues move through several stages:

Backlog An idea or request that has not yet been reviewed.

Needs Discussion The idea requires maintainer feedback or design discussion.

Approved The concept has been accepted but may require planning.

Ready The issue is ready for contributors to begin working on it.

⚠️ Pull Requests should only be opened for issues marked Ready.

This helps ensure contributors work on changes that are aligned with the projects roadmap.


3. Start Working on the Issue

Once an issue is marked Ready, you can begin working on it.

If you plan to work on a larger issue, feel free to comment on the issue to let others know.

This helps prevent duplicate work.


4. Create a Pull Request

When your changes are ready, open a pull request targeting the development branch.

Your pull request must include a reference to the issue it resolves:

Closes #issue-number

This allows the project automation to track progress and update the project board.

Example PR description:

Closes #123

Adds support for exporting trips as GPX files.

5. Review Process

Once submitted, maintainers will review your pull request.

Reviews may include:

  • code quality improvements
  • consistency with the existing architecture
  • performance considerations
  • documentation updates

Please be open to feedback — reviews are intended to improve the project and help contributors grow.


6. Merge

After approval, your pull request will be merged into the development branch.

From there, it will eventually be included in the next release.

Thank you for helping improve AdventureLog!


AI / LLM Assistance

Using AI tools (such as ChatGPT, Copilot, or other LLMs) is allowed when contributing to AdventureLog.

However, contributors are responsible for ensuring that generated code:

  • is correct and fully understood
  • follows the projects coding standards
  • integrates properly with the existing architecture
  • does not introduce unnecessary complexity

AI-generated code that does not meet these standards may be rejected or the pull request may be closed.

Please review and clean up any AI-generated code before submitting it.


Code Quality Expectations

To keep the project maintainable, all contributions should:

  • follow the existing code structure and architecture
  • use clear and readable code
  • avoid unnecessary dependencies
  • include documentation updates when relevant
  • maintain compatibility with the existing system

AdventureLog currently includes:

  • Django for the backend
  • SvelteKit for the frontend
  • Docker-based deployments

When contributing, please try to match the style and patterns already used in the project.


Documentation Changes

If your changes affect:

  • user workflows
  • environment variables
  • deployment setup
  • API behavior
  • configuration

please update the documentation in the:

/docs

folder accordingly.

Keeping documentation accurate is extremely important.


Good Issues for New Contributors

If you are new to the project, look for issues labeled:

good first issue
help wanted

These are great starting points for new contributors.


Code of Conduct

Our Pledge

At AdventureLog, we are committed to creating a community that fosters adventure, exploration, and innovation.

We welcome contributors of all experience levels and backgrounds. Everyone should feel comfortable participating and sharing ideas.


Our Standards

To maintain a positive environment, we encourage the following behaviors:

  • Inclusivity — Use welcoming and inclusive language.
  • Respect — Respect differing viewpoints and experiences.
  • Constructive Feedback — Provide helpful and actionable feedback.
  • Collaboration — Work together to improve the project.

Examples of unacceptable behavior include:

  • Personal attacks or harassment
  • Discriminatory language
  • Spamming or promotional misuse of project spaces
  • Sharing private information without consent

Maintainer Responsibilities

The AdventureLog maintainers are responsible for enforcing this Code of Conduct and maintaining a respectful community.

If necessary, maintainers may:

  • moderate comments
  • close pull requests
  • remove contributions
  • restrict participation

These actions will only be taken when necessary to protect the community and the project.


Scope

This Code of Conduct applies to all spaces related to AdventureLog, including:

  • GitHub repositories
  • GitHub Discussions
  • documentation
  • social media
  • community spaces

Reporting Issues

If you experience or witness unacceptable behavior, please contact the maintainers at:

contact@adventurelog.app

All reports will be handled confidentially.


Attribution

This Code of Conduct is inspired by the Contributor Covenant (v1.4) and adapted for the AdventureLog community.