Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Contributing to Open Hotel

🌟 Thank you for your interest in contributing to Open Hotel! 🌟

The following guidelines are here to help you contribute to Open Hotel, a project dedicated to creating a free and customizable virtual hotel experience. These are suggestions, not strict rules, so use your best judgment when contributing!


Table of Contents


Before Contributing

Open Hotel is an open-source project aiming to provide a free and customizable virtual self-hosted hotel experience. The project is composed of multiple repositories, which you can find on our GitHub organization page.

The main repository is openhotel/openhotel, and it’s the best place to start contributing.


Code of Conduct

To ensure a welcoming and inclusive environment, all contributors are expected to:

  • Be respectful and considerate to others.
  • Refrain from using abusive, derogatory, or discriminatory language.
  • Provide constructive feedback and engage in collaborative problem-solving.

Violations of this code may result in your contributions being rejected and further actions taken to maintain community standards.


How Can I Contribute?

Reporting Bugs

If you encounter a bug:

  1. Search existing issues to see if it’s already reported.
  2. If not, create a new issue. Include:
    • A clear and descriptive title.
    • Steps to reproduce the bug.
    • Expected vs. actual behavior.
    • Your operating system, browser version, and any logs if applicable.

Suggesting Features

We welcome feature suggestions! To propose a feature:

  1. Check existing issues to ensure it hasn’t been suggested.
  2. Open a new issue and include:
    • A detailed description of the feature.
    • Why this feature would benefit users.
    • Any implementation ideas (optional).

Code Contributions

We accept contributions of all sizes! Examples include:

  • Improving existing functionality or adding new features.
  • Resolving issues.
  • Fixing typos or improving documentation.

Art Contributions

Open Hotel uses a pixel art style for its assets, and it uses metadata to define some of the properties of the assets. We strongly recommend taking a look at our Asset Editor repository to create compatible assets. Some examples of contributions include:

  • Icons, sprites, furniture, character clothes...
  • UI/UX improvements.
  • Backgrounds, tiles, and other visual elements.

Make sure any artistic contributions align with the overall aesthetic and respect licensing terms.

Pull Requests

We welcome pull requests! Here’s how to ensure a smooth process:

  • Use the following convention for PR titles: type: descriptive text - fix #XXX. Here:
    • type should be descriptive (e.g., feat for features, fix for bug fixes, art for art-focused PRs).
    • XXX refers to the related issue (if there is one).
    • Examples:
      • feat: Add user profile customization - fix #12 (On merge, issue 12 will be closed automatically)
      • fix: Bug where character doesn’t move - fix #42 (On merge, issue 42 will be closed automatically)
  • Ensure your branch is up-to-date with the latest master branch before opening a pull request.
  • Provide a clear description of your changes in the pull request body.
  • Add tests if applicable.
  • Run tests if available and ensure all checks pass before submitting.
  • Check the coding guidelines below for code formatting and style. Your PR will be automatically checked for formatting issues.

Coding Guidelines

  • Write Tests: If possible, add tests for any new functionality. If a feature is hard to test, mention it in your PR. Run existing tests if available.
  • Follow Commit Guidelines: Use clear and descriptive commit messages.
  • Respect the Project Scope: Ensure contributions align with the project's mission to remain open and non-commercial.

File Naming

  • Use kebab-case for file names (e.g., my-component.ts).
  • If files are inside a shared folder like utils, consts, enums, etc., they must have a descriptive suffix:
    • my-function.utils.ts
    • config.consts.ts
    • status.enums.ts

Functions

  • Whenever possible, use arrow functions:
    constmyFunction=()=>{// code here};

Variables and Constants

  • Use camelCase for variables and functions:
    constmyVariable="value";
  • Use UPPER_CASE for global constants:
    constMAX_USERS=100;

Components and Classes

  • Use PascalCase for class and component names:
    classUserProfile{}
    constMyComponent=()=>{return<div>Hello</div>;};
  • Only use classes when there is no other alternative. Prefer functional programming and simpler constructs whenever possible.

Imports

  • Order imports in the following order:
    1. Native Node.js modules
    2. Third-party libraries
    3. Internal project imports
    importfsfrom"fs";// Native moduleimportReactfrom"react";// Third-party libraryimport{myFunction}from"@/utils/my-function.utils";// Internal import

Spacing and Code Style

  • Use 2 spaces for indentation.
  • Avoid semicolons (;) at the end of lines.
  • Use single quotes (') instead of double quotes (").
  • Add a blank line between logical code blocks.
    constgetUser=()=>{return{name: "openhotel"};};constsaveUser=(user)=>{console.log(user);};
  • Enable Prettier: Use npx prettier --write . to format your code. On Windows, Prettier sometimes incorrectly marks all files as modified. Ignore it and proceed with add/commit/push as usual.

Development Tips

  • Regularly sync with the master branch to avoid conflicts.
  • Run existing tests (if any) before pushing changes.

Have Questions? Join Our Discord!

If you have any further questions, need clarification, or just want to connect with the community, join our Discord server. We’re happy to help and always open to feedback and collaboration!


License

By contributing, you agree that your contributions will be licensed under the same CC BY-NC-SA 4.0 license as the project. Please read the LICENSE and README carefully. Any use of this project or derivative work for commercial purposes is strictly forbidden and will be prosecuted.

Thank you for contributing to Open Hotel! Let’s build something amazing together. 🌟

About

No description, website, or topics provided.

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Contributing to Open Hotel

🌟 Thank you for your interest in contributing to Open Hotel! 🌟

The following guidelines are here to help you contribute to Open Hotel, a project dedicated to creating a free and customizable virtual hotel experience. These are suggestions, not strict rules, so use your best judgment when contributing!


Table of Contents


Before Contributing

Open Hotel is an open-source project aiming to provide a free and customizable virtual self-hosted hotel experience. The project is composed of multiple repositories, which you can find on our GitHub organization page.

The main repository is openhotel/openhotel, and it’s the best place to start contributing.


Code of Conduct

To ensure a welcoming and inclusive environment, all contributors are expected to:

  • Be respectful and considerate to others.
  • Refrain from using abusive, derogatory, or discriminatory language.
  • Provide constructive feedback and engage in collaborative problem-solving.

Violations of this code may result in your contributions being rejected and further actions taken to maintain community standards.


How Can I Contribute?

Reporting Bugs

If you encounter a bug:

  1. Search existing issues to see if it’s already reported.
  2. If not, create a new issue. Include:
    • A clear and descriptive title.
    • Steps to reproduce the bug.
    • Expected vs. actual behavior.
    • Your operating system, browser version, and any logs if applicable.

Suggesting Features

We welcome feature suggestions! To propose a feature:

  1. Check existing issues to ensure it hasn’t been suggested.
  2. Open a new issue and include:
    • A detailed description of the feature.
    • Why this feature would benefit users.
    • Any implementation ideas (optional).

Code Contributions

We accept contributions of all sizes! Examples include:

  • Improving existing functionality or adding new features.
  • Resolving issues.
  • Fixing typos or improving documentation.

Art Contributions

Open Hotel uses a pixel art style for its assets, and it uses metadata to define some of the properties of the assets. We strongly recommend taking a look at our Asset Editor repository to create compatible assets. Some examples of contributions include:

  • Icons, sprites, furniture, character clothes...
  • UI/UX improvements.
  • Backgrounds, tiles, and other visual elements.

Make sure any artistic contributions align with the overall aesthetic and respect licensing terms.

Pull Requests

We welcome pull requests! Here’s how to ensure a smooth process:

  • Use the following convention for PR titles: type: descriptive text - fix #XXX. Here:
    • type should be descriptive (e.g., feat for features, fix for bug fixes, art for art-focused PRs).
    • XXX refers to the related issue (if there is one).
    • Examples:
      • feat: Add user profile customization - fix #12 (On merge, issue 12 will be closed automatically)
      • fix: Bug where character doesn’t move - fix #42 (On merge, issue 42 will be closed automatically)
  • Ensure your branch is up-to-date with the latest master branch before opening a pull request.
  • Provide a clear description of your changes in the pull request body.
  • Add tests if applicable.
  • Run tests if available and ensure all checks pass before submitting.
  • Check the coding guidelines below for code formatting and style. Your PR will be automatically checked for formatting issues.

Coding Guidelines

  • Write Tests: If possible, add tests for any new functionality. If a feature is hard to test, mention it in your PR. Run existing tests if available.
  • Follow Commit Guidelines: Use clear and descriptive commit messages.
  • Respect the Project Scope: Ensure contributions align with the project's mission to remain open and non-commercial.

File Naming

  • Use kebab-case for file names (e.g., my-component.ts).
  • If files are inside a shared folder like utils, consts, enums, etc., they must have a descriptive suffix:
    • my-function.utils.ts
    • config.consts.ts
    • status.enums.ts

Functions

  • Whenever possible, use arrow functions:
    constmyFunction=()=>{// code here};

Variables and Constants

  • Use camelCase for variables and functions:
    constmyVariable="value";
  • Use UPPER_CASE for global constants:
    constMAX_USERS=100;

Components and Classes

  • Use PascalCase for class and component names:
    classUserProfile{}
    constMyComponent=()=>{return<div>Hello</div>;};
  • Only use classes when there is no other alternative. Prefer functional programming and simpler constructs whenever possible.

Imports

  • Order imports in the following order:
    1. Native Node.js modules
    2. Third-party libraries
    3. Internal project imports
    importfsfrom"fs";// Native moduleimportReactfrom"react";// Third-party libraryimport{myFunction}from"@/utils/my-function.utils";// Internal import

Spacing and Code Style

  • Use 2 spaces for indentation.
  • Avoid semicolons (;) at the end of lines.
  • Use single quotes (') instead of double quotes (").
  • Add a blank line between logical code blocks.
    constgetUser=()=>{return{name: "openhotel"};};constsaveUser=(user)=>{console.log(user);};
  • Enable Prettier: Use npx prettier --write . to format your code. On Windows, Prettier sometimes incorrectly marks all files as modified. Ignore it and proceed with add/commit/push as usual.

Development Tips

  • Regularly sync with the master branch to avoid conflicts.
  • Run existing tests (if any) before pushing changes.

Have Questions? Join Our Discord!

If you have any further questions, need clarification, or just want to connect with the community, join our Discord server. We’re happy to help and always open to feedback and collaboration!


License

By contributing, you agree that your contributions will be licensed under the same CC BY-NC-SA 4.0 license as the project. Please read the LICENSE and README carefully. Any use of this project or derivative work for commercial purposes is strictly forbidden and will be prosecuted.

Thank you for contributing to Open Hotel! Let’s build something amazing together. 🌟

About

No description, website, or topics provided.

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Contributing to Open Hotel

🌟 Thank you for your interest in contributing to Open Hotel! 🌟

The following guidelines are here to help you contribute to Open Hotel, a project dedicated to creating a free and customizable virtual hotel experience. These are suggestions, not strict rules, so use your best judgment when contributing!


Table of Contents


Before Contributing

Open Hotel is an open-source project aiming to provide a free and customizable virtual self-hosted hotel experience. The project is composed of multiple repositories, which you can find on our GitHub organization page.

The main repository is openhotel/openhotel, and it’s the best place to start contributing.


Code of Conduct

To ensure a welcoming and inclusive environment, all contributors are expected to:

  • Be respectful and considerate to others.
  • Refrain from using abusive, derogatory, or discriminatory language.
  • Provide constructive feedback and engage in collaborative problem-solving.

Violations of this code may result in your contributions being rejected and further actions taken to maintain community standards.


How Can I Contribute?

Reporting Bugs

If you encounter a bug:

  1. Search existing issues to see if it’s already reported.
  2. If not, create a new issue. Include:
    • A clear and descriptive title.
    • Steps to reproduce the bug.
    • Expected vs. actual behavior.
    • Your operating system, browser version, and any logs if applicable.

Suggesting Features

We welcome feature suggestions! To propose a feature:

  1. Check existing issues to ensure it hasn’t been suggested.
  2. Open a new issue and include:
    • A detailed description of the feature.
    • Why this feature would benefit users.
    • Any implementation ideas (optional).

Code Contributions

We accept contributions of all sizes! Examples include:

  • Improving existing functionality or adding new features.
  • Resolving issues.
  • Fixing typos or improving documentation.

Art Contributions

Open Hotel uses a pixel art style for its assets, and it uses metadata to define some of the properties of the assets. We strongly recommend taking a look at our Asset Editor repository to create compatible assets. Some examples of contributions include:

  • Icons, sprites, furniture, character clothes...
  • UI/UX improvements.
  • Backgrounds, tiles, and other visual elements.

Make sure any artistic contributions align with the overall aesthetic and respect licensing terms.

Pull Requests

We welcome pull requests! Here’s how to ensure a smooth process:

  • Use the following convention for PR titles: type: descriptive text - fix #XXX. Here:
    • type should be descriptive (e.g., feat for features, fix for bug fixes, art for art-focused PRs).
    • XXX refers to the related issue (if there is one).
    • Examples:
      • feat: Add user profile customization - fix #12 (On merge, issue 12 will be closed automatically)
      • fix: Bug where character doesn’t move - fix #42 (On merge, issue 42 will be closed automatically)
  • Ensure your branch is up-to-date with the latest master branch before opening a pull request.
  • Provide a clear description of your changes in the pull request body.
  • Add tests if applicable.
  • Run tests if available and ensure all checks pass before submitting.
  • Check the coding guidelines below for code formatting and style. Your PR will be automatically checked for formatting issues.

Coding Guidelines

  • Write Tests: If possible, add tests for any new functionality. If a feature is hard to test, mention it in your PR. Run existing tests if available.
  • Follow Commit Guidelines: Use clear and descriptive commit messages.
  • Respect the Project Scope: Ensure contributions align with the project's mission to remain open and non-commercial.

File Naming

  • Use kebab-case for file names (e.g., my-component.ts).
  • If files are inside a shared folder like utils, consts, enums, etc., they must have a descriptive suffix:
    • my-function.utils.ts
    • config.consts.ts
    • status.enums.ts

Functions

  • Whenever possible, use arrow functions:
    constmyFunction=()=>{// code here};

Variables and Constants

  • Use camelCase for variables and functions:
    constmyVariable="value";
  • Use UPPER_CASE for global constants:
    constMAX_USERS=100;

Components and Classes

  • Use PascalCase for class and component names:
    classUserProfile{}
    constMyComponent=()=>{return<div>Hello</div>;};
  • Only use classes when there is no other alternative. Prefer functional programming and simpler constructs whenever possible.

Imports

  • Order imports in the following order:
    1. Native Node.js modules
    2. Third-party libraries
    3. Internal project imports
    importfsfrom"fs";// Native moduleimportReactfrom"react";// Third-party libraryimport{myFunction}from"@/utils/my-function.utils";// Internal import

Spacing and Code Style

  • Use 2 spaces for indentation.
  • Avoid semicolons (;) at the end of lines.
  • Use single quotes (') instead of double quotes (").
  • Add a blank line between logical code blocks.
    constgetUser=()=>{return{name: "openhotel"};};constsaveUser=(user)=>{console.log(user);};
  • Enable Prettier: Use npx prettier --write . to format your code. On Windows, Prettier sometimes incorrectly marks all files as modified. Ignore it and proceed with add/commit/push as usual.

Development Tips

  • Regularly sync with the master branch to avoid conflicts.
  • Run existing tests (if any) before pushing changes.

Have Questions? Join Our Discord!

If you have any further questions, need clarification, or just want to connect with the community, join our Discord server. We’re happy to help and always open to feedback and collaboration!


License

By contributing, you agree that your contributions will be licensed under the same CC BY-NC-SA 4.0 license as the project. Please read the LICENSE and README carefully. Any use of this project or derivative work for commercial purposes is strictly forbidden and will be prosecuted.

Thank you for contributing to Open Hotel! Let’s build something amazing together. 🌟

About

No description, website, or topics provided.

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Contributing to Open Hotel

🌟 Thank you for your interest in contributing to Open Hotel! 🌟

The following guidelines are here to help you contribute to Open Hotel, a project dedicated to creating a free and customizable virtual hotel experience. These are suggestions, not strict rules, so use your best judgment when contributing!


Table of Contents


Before Contributing

Open Hotel is an open-source project aiming to provide a free and customizable virtual self-hosted hotel experience. The project is composed of multiple repositories, which you can find on our GitHub organization page.

The main repository is openhotel/openhotel, and it’s the best place to start contributing.


Code of Conduct

To ensure a welcoming and inclusive environment, all contributors are expected to:

  • Be respectful and considerate to others.
  • Refrain from using abusive, derogatory, or discriminatory language.
  • Provide constructive feedback and engage in collaborative problem-solving.

Violations of this code may result in your contributions being rejected and further actions taken to maintain community standards.


How Can I Contribute?

Reporting Bugs

If you encounter a bug:

  1. Search existing issues to see if it’s already reported.
  2. If not, create a new issue. Include:
    • A clear and descriptive title.
    • Steps to reproduce the bug.
    • Expected vs. actual behavior.
    • Your operating system, browser version, and any logs if applicable.

Suggesting Features

We welcome feature suggestions! To propose a feature:

  1. Check existing issues to ensure it hasn’t been suggested.
  2. Open a new issue and include:
    • A detailed description of the feature.
    • Why this feature would benefit users.
    • Any implementation ideas (optional).

Code Contributions

We accept contributions of all sizes! Examples include:

  • Improving existing functionality or adding new features.
  • Resolving issues.
  • Fixing typos or improving documentation.

Art Contributions

Open Hotel uses a pixel art style for its assets, and it uses metadata to define some of the properties of the assets. We strongly recommend taking a look at our Asset Editor repository to create compatible assets. Some examples of contributions include:

  • Icons, sprites, furniture, character clothes...
  • UI/UX improvements.
  • Backgrounds, tiles, and other visual elements.

Make sure any artistic contributions align with the overall aesthetic and respect licensing terms.

Pull Requests

We welcome pull requests! Here’s how to ensure a smooth process:

  • Use the following convention for PR titles: type: descriptive text - fix #XXX. Here:
    • type should be descriptive (e.g., feat for features, fix for bug fixes, art for art-focused PRs).
    • XXX refers to the related issue (if there is one).
    • Examples:
      • feat: Add user profile customization - fix #12 (On merge, issue 12 will be closed automatically)
      • fix: Bug where character doesn’t move - fix #42 (On merge, issue 42 will be closed automatically)
  • Ensure your branch is up-to-date with the latest master branch before opening a pull request.
  • Provide a clear description of your changes in the pull request body.
  • Add tests if applicable.
  • Run tests if available and ensure all checks pass before submitting.
  • Check the coding guidelines below for code formatting and style. Your PR will be automatically checked for formatting issues.

Coding Guidelines

  • Write Tests: If possible, add tests for any new functionality. If a feature is hard to test, mention it in your PR. Run existing tests if available.
  • Follow Commit Guidelines: Use clear and descriptive commit messages.
  • Respect the Project Scope: Ensure contributions align with the project's mission to remain open and non-commercial.

File Naming

  • Use kebab-case for file names (e.g., my-component.ts).
  • If files are inside a shared folder like utils, consts, enums, etc., they must have a descriptive suffix:
    • my-function.utils.ts
    • config.consts.ts
    • status.enums.ts

Functions

  • Whenever possible, use arrow functions:
    constmyFunction=()=>{// code here};

Variables and Constants

  • Use camelCase for variables and functions:
    constmyVariable="value";
  • Use UPPER_CASE for global constants:
    constMAX_USERS=100;

Components and Classes

  • Use PascalCase for class and component names:
    classUserProfile{}
    constMyComponent=()=>{return<div>Hello</div>;};
  • Only use classes when there is no other alternative. Prefer functional programming and simpler constructs whenever possible.

Imports

  • Order imports in the following order:
    1. Native Node.js modules
    2. Third-party libraries
    3. Internal project imports
    importfsfrom"fs";// Native moduleimportReactfrom"react";// Third-party libraryimport{myFunction}from"@/utils/my-function.utils";// Internal import

Spacing and Code Style

  • Use 2 spaces for indentation.
  • Avoid semicolons (;) at the end of lines.
  • Use single quotes (') instead of double quotes (").
  • Add a blank line between logical code blocks.
    constgetUser=()=>{return{name: "openhotel"};};constsaveUser=(user)=>{console.log(user);};
  • Enable Prettier: Use npx prettier --write . to format your code. On Windows, Prettier sometimes incorrectly marks all files as modified. Ignore it and proceed with add/commit/push as usual.

Development Tips

  • Regularly sync with the master branch to avoid conflicts.
  • Run existing tests (if any) before pushing changes.

Have Questions? Join Our Discord!

If you have any further questions, need clarification, or just want to connect with the community, join our Discord server. We’re happy to help and always open to feedback and collaboration!


License

By contributing, you agree that your contributions will be licensed under the same CC BY-NC-SA 4.0 license as the project. Please read the LICENSE and README carefully. Any use of this project or derivative work for commercial purposes is strictly forbidden and will be prosecuted.

Thank you for contributing to Open Hotel! Let’s build something amazing together. 🌟

About

No description, website, or topics provided.

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Contributing to Open Hotel

🌟 Thank you for your interest in contributing to Open Hotel! 🌟

The following guidelines are here to help you contribute to Open Hotel, a project dedicated to creating a free and customizable virtual hotel experience. These are suggestions, not strict rules, so use your best judgment when contributing!


Table of Contents


Before Contributing

Open Hotel is an open-source project aiming to provide a free and customizable virtual self-hosted hotel experience. The project is composed of multiple repositories, which you can find on our GitHub organization page.

The main repository is openhotel/openhotel, and it’s the best place to start contributing.


Code of Conduct

To ensure a welcoming and inclusive environment, all contributors are expected to:

  • Be respectful and considerate to others.
  • Refrain from using abusive, derogatory, or discriminatory language.
  • Provide constructive feedback and engage in collaborative problem-solving.

Violations of this code may result in your contributions being rejected and further actions taken to maintain community standards.


How Can I Contribute?

Reporting Bugs

If you encounter a bug:

  1. Search existing issues to see if it’s already reported.
  2. If not, create a new issue. Include:
    • A clear and descriptive title.
    • Steps to reproduce the bug.
    • Expected vs. actual behavior.
    • Your operating system, browser version, and any logs if applicable.

Suggesting Features

We welcome feature suggestions! To propose a feature:

  1. Check existing issues to ensure it hasn’t been suggested.
  2. Open a new issue and include:
    • A detailed description of the feature.
    • Why this feature would benefit users.
    • Any implementation ideas (optional).

Code Contributions

We accept contributions of all sizes! Examples include:

  • Improving existing functionality or adding new features.
  • Resolving issues.
  • Fixing typos or improving documentation.

Art Contributions

Open Hotel uses a pixel art style for its assets, and it uses metadata to define some of the properties of the assets. We strongly recommend taking a look at our Asset Editor repository to create compatible assets. Some examples of contributions include:

  • Icons, sprites, furniture, character clothes...
  • UI/UX improvements.
  • Backgrounds, tiles, and other visual elements.

Make sure any artistic contributions align with the overall aesthetic and respect licensing terms.

Pull Requests

We welcome pull requests! Here’s how to ensure a smooth process:

  • Use the following convention for PR titles: type: descriptive text - fix #XXX. Here:
    • type should be descriptive (e.g., feat for features, fix for bug fixes, art for art-focused PRs).
    • XXX refers to the related issue (if there is one).
    • Examples:
      • feat: Add user profile customization - fix #12 (On merge, issue 12 will be closed automatically)
      • fix: Bug where character doesn’t move - fix #42 (On merge, issue 42 will be closed automatically)
  • Ensure your branch is up-to-date with the latest master branch before opening a pull request.
  • Provide a clear description of your changes in the pull request body.
  • Add tests if applicable.
  • Run tests if available and ensure all checks pass before submitting.
  • Check the coding guidelines below for code formatting and style. Your PR will be automatically checked for formatting issues.

Coding Guidelines

  • Write Tests: If possible, add tests for any new functionality. If a feature is hard to test, mention it in your PR. Run existing tests if available.
  • Follow Commit Guidelines: Use clear and descriptive commit messages.
  • Respect the Project Scope: Ensure contributions align with the project's mission to remain open and non-commercial.

File Naming

  • Use kebab-case for file names (e.g., my-component.ts).
  • If files are inside a shared folder like utils, consts, enums, etc., they must have a descriptive suffix:
    • my-function.utils.ts
    • config.consts.ts
    • status.enums.ts

Functions

  • Whenever possible, use arrow functions:
    constmyFunction=()=>{// code here};

Variables and Constants

  • Use camelCase for variables and functions:
    constmyVariable="value";
  • Use UPPER_CASE for global constants:
    constMAX_USERS=100;

Components and Classes

  • Use PascalCase for class and component names:
    classUserProfile{}
    constMyComponent=()=>{return<div>Hello</div>;};
  • Only use classes when there is no other alternative. Prefer functional programming and simpler constructs whenever possible.

Imports

  • Order imports in the following order:
    1. Native Node.js modules
    2. Third-party libraries
    3. Internal project imports
    importfsfrom"fs";// Native moduleimportReactfrom"react";// Third-party libraryimport{myFunction}from"@/utils/my-function.utils";// Internal import

Spacing and Code Style

  • Use 2 spaces for indentation.
  • Avoid semicolons (;) at the end of lines.
  • Use single quotes (') instead of double quotes (").
  • Add a blank line between logical code blocks.
    constgetUser=()=>{return{name: "openhotel"};};constsaveUser=(user)=>{console.log(user);};
  • Enable Prettier: Use npx prettier --write . to format your code. On Windows, Prettier sometimes incorrectly marks all files as modified. Ignore it and proceed with add/commit/push as usual.

Development Tips

  • Regularly sync with the master branch to avoid conflicts.
  • Run existing tests (if any) before pushing changes.

Have Questions? Join Our Discord!

If you have any further questions, need clarification, or just want to connect with the community, join our Discord server. We’re happy to help and always open to feedback and collaboration!


License

By contributing, you agree that your contributions will be licensed under the same CC BY-NC-SA 4.0 license as the project. Please read the LICENSE and README carefully. Any use of this project or derivative work for commercial purposes is strictly forbidden and will be prosecuted.

Thank you for contributing to Open Hotel! Let’s build something amazing together. 🌟

About

No description, website, or topics provided.

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Contributing to Open Hotel

🌟 Thank you for your interest in contributing to Open Hotel! 🌟

The following guidelines are here to help you contribute to Open Hotel, a project dedicated to creating a free and customizable virtual hotel experience. These are suggestions, not strict rules, so use your best judgment when contributing!


Table of Contents


Before Contributing

Open Hotel is an open-source project aiming to provide a free and customizable virtual self-hosted hotel experience. The project is composed of multiple repositories, which you can find on our GitHub organization page.

The main repository is openhotel/openhotel, and it’s the best place to start contributing.


Code of Conduct

To ensure a welcoming and inclusive environment, all contributors are expected to:

  • Be respectful and considerate to others.
  • Refrain from using abusive, derogatory, or discriminatory language.
  • Provide constructive feedback and engage in collaborative problem-solving.

Violations of this code may result in your contributions being rejected and further actions taken to maintain community standards.


How Can I Contribute?

Reporting Bugs

If you encounter a bug:

  1. Search existing issues to see if it’s already reported.
  2. If not, create a new issue. Include:
    • A clear and descriptive title.
    • Steps to reproduce the bug.
    • Expected vs. actual behavior.
    • Your operating system, browser version, and any logs if applicable.

Suggesting Features

We welcome feature suggestions! To propose a feature:

  1. Check existing issues to ensure it hasn’t been suggested.
  2. Open a new issue and include:
    • A detailed description of the feature.
    • Why this feature would benefit users.
    • Any implementation ideas (optional).

Code Contributions

We accept contributions of all sizes! Examples include:

  • Improving existing functionality or adding new features.
  • Resolving issues.
  • Fixing typos or improving documentation.

Art Contributions

Open Hotel uses a pixel art style for its assets, and it uses metadata to define some of the properties of the assets. We strongly recommend taking a look at our Asset Editor repository to create compatible assets. Some examples of contributions include:

  • Icons, sprites, furniture, character clothes...
  • UI/UX improvements.
  • Backgrounds, tiles, and other visual elements.

Make sure any artistic contributions align with the overall aesthetic and respect licensing terms.

Pull Requests

We welcome pull requests! Here’s how to ensure a smooth process:

  • Use the following convention for PR titles: type: descriptive text - fix #XXX. Here:
    • type should be descriptive (e.g., feat for features, fix for bug fixes, art for art-focused PRs).
    • XXX refers to the related issue (if there is one).
    • Examples:
      • feat: Add user profile customization - fix #12 (On merge, issue 12 will be closed automatically)
      • fix: Bug where character doesn’t move - fix #42 (On merge, issue 42 will be closed automatically)
  • Ensure your branch is up-to-date with the latest master branch before opening a pull request.
  • Provide a clear description of your changes in the pull request body.
  • Add tests if applicable.
  • Run tests if available and ensure all checks pass before submitting.
  • Check the coding guidelines below for code formatting and style. Your PR will be automatically checked for formatting issues.

Coding Guidelines

  • Write Tests: If possible, add tests for any new functionality. If a feature is hard to test, mention it in your PR. Run existing tests if available.
  • Follow Commit Guidelines: Use clear and descriptive commit messages.
  • Respect the Project Scope: Ensure contributions align with the project's mission to remain open and non-commercial.

File Naming

  • Use kebab-case for file names (e.g., my-component.ts).
  • If files are inside a shared folder like utils, consts, enums, etc., they must have a descriptive suffix:
    • my-function.utils.ts
    • config.consts.ts
    • status.enums.ts

Functions

  • Whenever possible, use arrow functions:
    constmyFunction=()=>{// code here};

Variables and Constants

  • Use camelCase for variables and functions:
    constmyVariable="value";
  • Use UPPER_CASE for global constants:
    constMAX_USERS=100;

Components and Classes

  • Use PascalCase for class and component names:
    classUserProfile{}
    constMyComponent=()=>{return<div>Hello</div>;};
  • Only use classes when there is no other alternative. Prefer functional programming and simpler constructs whenever possible.

Imports

  • Order imports in the following order:
    1. Native Node.js modules
    2. Third-party libraries
    3. Internal project imports
    importfsfrom"fs";// Native moduleimportReactfrom"react";// Third-party libraryimport{myFunction}from"@/utils/my-function.utils";// Internal import

Spacing and Code Style

  • Use 2 spaces for indentation.
  • Avoid semicolons (;) at the end of lines.
  • Use single quotes (') instead of double quotes (").
  • Add a blank line between logical code blocks.
    constgetUser=()=>{return{name: "openhotel"};};constsaveUser=(user)=>{console.log(user);};
  • Enable Prettier: Use npx prettier --write . to format your code. On Windows, Prettier sometimes incorrectly marks all files as modified. Ignore it and proceed with add/commit/push as usual.

Development Tips

  • Regularly sync with the master branch to avoid conflicts.
  • Run existing tests (if any) before pushing changes.

Have Questions? Join Our Discord!

If you have any further questions, need clarification, or just want to connect with the community, join our Discord server. We’re happy to help and always open to feedback and collaboration!


License

By contributing, you agree that your contributions will be licensed under the same CC BY-NC-SA 4.0 license as the project. Please read the LICENSE and README carefully. Any use of this project or derivative work for commercial purposes is strictly forbidden and will be prosecuted.

Thank you for contributing to Open Hotel! Let’s build something amazing together. 🌟

About

No description, website, or topics provided.

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Contributing to Open Hotel

🌟 Thank you for your interest in contributing to Open Hotel! 🌟

The following guidelines are here to help you contribute to Open Hotel, a project dedicated to creating a free and customizable virtual hotel experience. These are suggestions, not strict rules, so use your best judgment when contributing!


Table of Contents


Before Contributing

Open Hotel is an open-source project aiming to provide a free and customizable virtual self-hosted hotel experience. The project is composed of multiple repositories, which you can find on our GitHub organization page.

The main repository is openhotel/openhotel, and it’s the best place to start contributing.


Code of Conduct

To ensure a welcoming and inclusive environment, all contributors are expected to:

  • Be respectful and considerate to others.
  • Refrain from using abusive, derogatory, or discriminatory language.
  • Provide constructive feedback and engage in collaborative problem-solving.

Violations of this code may result in your contributions being rejected and further actions taken to maintain community standards.


How Can I Contribute?

Reporting Bugs

If you encounter a bug:

  1. Search existing issues to see if it’s already reported.
  2. If not, create a new issue. Include:
    • A clear and descriptive title.
    • Steps to reproduce the bug.
    • Expected vs. actual behavior.
    • Your operating system, browser version, and any logs if applicable.

Suggesting Features

We welcome feature suggestions! To propose a feature:

  1. Check existing issues to ensure it hasn’t been suggested.
  2. Open a new issue and include:
    • A detailed description of the feature.
    • Why this feature would benefit users.
    • Any implementation ideas (optional).

Code Contributions

We accept contributions of all sizes! Examples include:

  • Improving existing functionality or adding new features.
  • Resolving issues.
  • Fixing typos or improving documentation.

Art Contributions

Open Hotel uses a pixel art style for its assets, and it uses metadata to define some of the properties of the assets. We strongly recommend taking a look at our Asset Editor repository to create compatible assets. Some examples of contributions include:

  • Icons, sprites, furniture, character clothes...
  • UI/UX improvements.
  • Backgrounds, tiles, and other visual elements.

Make sure any artistic contributions align with the overall aesthetic and respect licensing terms.

Pull Requests

We welcome pull requests! Here’s how to ensure a smooth process:

  • Use the following convention for PR titles: type: descriptive text - fix #XXX. Here:
    • type should be descriptive (e.g., feat for features, fix for bug fixes, art for art-focused PRs).
    • XXX refers to the related issue (if there is one).
    • Examples:
      • feat: Add user profile customization - fix #12 (On merge, issue 12 will be closed automatically)
      • fix: Bug where character doesn’t move - fix #42 (On merge, issue 42 will be closed automatically)
  • Ensure your branch is up-to-date with the latest master branch before opening a pull request.
  • Provide a clear description of your changes in the pull request body.
  • Add tests if applicable.
  • Run tests if available and ensure all checks pass before submitting.
  • Check the coding guidelines below for code formatting and style. Your PR will be automatically checked for formatting issues.

Coding Guidelines

  • Write Tests: If possible, add tests for any new functionality. If a feature is hard to test, mention it in your PR. Run existing tests if available.
  • Follow Commit Guidelines: Use clear and descriptive commit messages.
  • Respect the Project Scope: Ensure contributions align with the project's mission to remain open and non-commercial.

File Naming

  • Use kebab-case for file names (e.g., my-component.ts).
  • If files are inside a shared folder like utils, consts, enums, etc., they must have a descriptive suffix:
    • my-function.utils.ts
    • config.consts.ts
    • status.enums.ts

Functions

  • Whenever possible, use arrow functions:
    constmyFunction=()=>{// code here};

Variables and Constants

  • Use camelCase for variables and functions:
    constmyVariable="value";
  • Use UPPER_CASE for global constants:
    constMAX_USERS=100;

Components and Classes

  • Use PascalCase for class and component names:
    classUserProfile{}
    constMyComponent=()=>{return<div>Hello</div>;};
  • Only use classes when there is no other alternative. Prefer functional programming and simpler constructs whenever possible.

Imports

  • Order imports in the following order:
    1. Native Node.js modules
    2. Third-party libraries
    3. Internal project imports
    importfsfrom"fs";// Native moduleimportReactfrom"react";// Third-party libraryimport{myFunction}from"@/utils/my-function.utils";// Internal import

Spacing and Code Style

  • Use 2 spaces for indentation.
  • Avoid semicolons (;) at the end of lines.
  • Use single quotes (') instead of double quotes (").
  • Add a blank line between logical code blocks.
    constgetUser=()=>{return{name: "openhotel"};};constsaveUser=(user)=>{console.log(user);};
  • Enable Prettier: Use npx prettier --write . to format your code. On Windows, Prettier sometimes incorrectly marks all files as modified. Ignore it and proceed with add/commit/push as usual.

Development Tips

  • Regularly sync with the master branch to avoid conflicts.
  • Run existing tests (if any) before pushing changes.

Have Questions? Join Our Discord!

If you have any further questions, need clarification, or just want to connect with the community, join our Discord server. We’re happy to help and always open to feedback and collaboration!


License

By contributing, you agree that your contributions will be licensed under the same CC BY-NC-SA 4.0 license as the project. Please read the LICENSE and README carefully. Any use of this project or derivative work for commercial purposes is strictly forbidden and will be prosecuted.

Thank you for contributing to Open Hotel! Let’s build something amazing together. 🌟

About

No description, website, or topics provided.

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Contributing to Open Hotel

🌟 Thank you for your interest in contributing to Open Hotel! 🌟

The following guidelines are here to help you contribute to Open Hotel, a project dedicated to creating a free and customizable virtual hotel experience. These are suggestions, not strict rules, so use your best judgment when contributing!


Table of Contents


Before Contributing

Open Hotel is an open-source project aiming to provide a free and customizable virtual self-hosted hotel experience. The project is composed of multiple repositories, which you can find on our GitHub organization page.

The main repository is openhotel/openhotel, and it’s the best place to start contributing.


Code of Conduct

To ensure a welcoming and inclusive environment, all contributors are expected to:

  • Be respectful and considerate to others.
  • Refrain from using abusive, derogatory, or discriminatory language.
  • Provide constructive feedback and engage in collaborative problem-solving.

Violations of this code may result in your contributions being rejected and further actions taken to maintain community standards.


How Can I Contribute?

Reporting Bugs

If you encounter a bug:

  1. Search existing issues to see if it’s already reported.
  2. If not, create a new issue. Include:
    • A clear and descriptive title.
    • Steps to reproduce the bug.
    • Expected vs. actual behavior.
    • Your operating system, browser version, and any logs if applicable.

Suggesting Features

We welcome feature suggestions! To propose a feature:

  1. Check existing issues to ensure it hasn’t been suggested.
  2. Open a new issue and include:
    • A detailed description of the feature.
    • Why this feature would benefit users.
    • Any implementation ideas (optional).

Code Contributions

We accept contributions of all sizes! Examples include:

  • Improving existing functionality or adding new features.
  • Resolving issues.
  • Fixing typos or improving documentation.

Art Contributions

Open Hotel uses a pixel art style for its assets, and it uses metadata to define some of the properties of the assets. We strongly recommend taking a look at our Asset Editor repository to create compatible assets. Some examples of contributions include:

  • Icons, sprites, furniture, character clothes...
  • UI/UX improvements.
  • Backgrounds, tiles, and other visual elements.

Make sure any artistic contributions align with the overall aesthetic and respect licensing terms.

Pull Requests

We welcome pull requests! Here’s how to ensure a smooth process:

  • Use the following convention for PR titles: type: descriptive text - fix #XXX. Here:
    • type should be descriptive (e.g., feat for features, fix for bug fixes, art for art-focused PRs).
    • XXX refers to the related issue (if there is one).
    • Examples:
      • feat: Add user profile customization - fix #12 (On merge, issue 12 will be closed automatically)
      • fix: Bug where character doesn’t move - fix #42 (On merge, issue 42 will be closed automatically)
  • Ensure your branch is up-to-date with the latest master branch before opening a pull request.
  • Provide a clear description of your changes in the pull request body.
  • Add tests if applicable.
  • Run tests if available and ensure all checks pass before submitting.
  • Check the coding guidelines below for code formatting and style. Your PR will be automatically checked for formatting issues.

Coding Guidelines

  • Write Tests: If possible, add tests for any new functionality. If a feature is hard to test, mention it in your PR. Run existing tests if available.
  • Follow Commit Guidelines: Use clear and descriptive commit messages.
  • Respect the Project Scope: Ensure contributions align with the project's mission to remain open and non-commercial.

File Naming

  • Use kebab-case for file names (e.g., my-component.ts).
  • If files are inside a shared folder like utils, consts, enums, etc., they must have a descriptive suffix:
    • my-function.utils.ts
    • config.consts.ts
    • status.enums.ts

Functions

  • Whenever possible, use arrow functions:
    constmyFunction=()=>{// code here};

Variables and Constants

  • Use camelCase for variables and functions:
    constmyVariable="value";
  • Use UPPER_CASE for global constants:
    constMAX_USERS=100;

Components and Classes

  • Use PascalCase for class and component names:
    classUserProfile{}
    constMyComponent=()=>{return<div>Hello</div>;};
  • Only use classes when there is no other alternative. Prefer functional programming and simpler constructs whenever possible.

Imports

  • Order imports in the following order:
    1. Native Node.js modules
    2. Third-party libraries
    3. Internal project imports
    importfsfrom"fs";// Native moduleimportReactfrom"react";// Third-party libraryimport{myFunction}from"@/utils/my-function.utils";// Internal import

Spacing and Code Style

  • Use 2 spaces for indentation.
  • Avoid semicolons (;) at the end of lines.
  • Use single quotes (') instead of double quotes (").
  • Add a blank line between logical code blocks.
    constgetUser=()=>{return{name: "openhotel"};};constsaveUser=(user)=>{console.log(user);};
  • Enable Prettier: Use npx prettier --write . to format your code. On Windows, Prettier sometimes incorrectly marks all files as modified. Ignore it and proceed with add/commit/push as usual.

Development Tips

  • Regularly sync with the master branch to avoid conflicts.
  • Run existing tests (if any) before pushing changes.

Have Questions? Join Our Discord!

If you have any further questions, need clarification, or just want to connect with the community, join our Discord server. We’re happy to help and always open to feedback and collaboration!


License

By contributing, you agree that your contributions will be licensed under the same CC BY-NC-SA 4.0 license as the project. Please read the LICENSE and README carefully. Any use of this project or derivative work for commercial purposes is strictly forbidden and will be prosecuted.

Thank you for contributing to Open Hotel! Let’s build something amazing together. 🌟

About

No description, website, or topics provided.

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors