Updated installation script to use "auto-install" instead of "install" to streamline server setup process. This change aims to enhance automation and reduce manual intervention steps during server installations. No functional difference expected but improves clarity in server management tasks.
Updated the VSCode launch.json configuration to point to the correct location of manage.py within the coffeemachine directory. This ensures that the debug setups work correctly with the current project structure.
Eliminated the requirements.txt file to centralize dependency management within the main configuration system. This simplifies dependency updates and ensures consistency across environments. Ensure to update your environment setup accordingly.
Added an MIT license to establish the project's open source nature.
Initialized a README file for project documentation.
Reorganized project directory by moving manage.py to a 'coffeemachine' subdirectory.
Set up `pyproject.toml` using Poetry with necessary dependencies for the project environment, including Django and associated libraries for various functionalities (e.g., REST framework, storage, and authentication).
This setup provides a structured foundation for further development.
Enhanced the server installation form's user interface and user experience by explicitly using labels for all form fields and leveraging the Django form tags library to add CSS classes. This change makes the form more accessible and visually consistent, meeting modern web standards. The use of `add_class` from `form_tags` ensures that each form element is styled properly, providing a better interaction experience for users.
This update addresses accessibility concerns and aims for a cleaner, more navigable form layout, making it easier for users to understand and fill out the necessary information for server installation.
Improved the game server installation process by implementing several key changes. Added support for optional installation paths in the GameServer model, form, and installation view. This allows users to leave the installation path empty and use a default path, improving usability and flexibility. Additionally, updated the form validation to accept empty paths and provided a user-friendly widget placeholder in the form to guide users.
Included a new migration to reflect the optional installation path in the database schema. Updated the installation view to automatically determine the installation path based on settings if not specified by the user.
Enhanced the script download process in the installation view by setting a custom User-Agent header. This addresses potential issues with servers that block the default Python User-Agent.
Added CSRF_TRUSTED_ORIGINS settings dynamically based on ALLOWED_HOSTS to enhance security. Also updated the .gitignore to exclude the newly introduced default game servers directory from version control.
These changes collectively streamline the setup process for new game servers, provide clearer guidance to users, and ensure compatibility with a broader range of hosting configurations.
This commit introduces the initial migration for the GameServer model within the coffee machine project, laying the groundwork for future development and data modeling. The model includes essential fields such as name, game, status (with predefined choices), installation path, and an optional field for custom script content. This foundational step is crucial for setting up the database structure needed to manage game server instances effectively, allowing for better organization, tracking, and manipulation of server data as the project evolves.
The decision to include a status field with predefined choices enhances data integrity and facilitates the implementation of server management logic, paving the way for more efficient and error-resistant operations.
Added routing for server-related URLs and a redirect from the root URL to the servers page. This change improves navigation within the CoffeeMachine app, making it more intuitive for users to find the server management section right from the homepage. It directly impacts user experience by streamlining access to the servers list without additional navigation steps.
Introduced a new form `GameServerForm` in the `coffeemachine` project to streamline the management of game servers. This form supports adding either new or existing servers, with options to upload or directly input custom scripts. Key validations include ensuring the installation path is absolute and preventing simultaneous provision of both script file and content to avoid conflicts. This enhancement simplifies the setup process for administrators and reinforces data integrity checks.
Added STATICFILES_DIRS to the Django settings to specify additional directories where Django will look for static files, apart from the static/ directory. This change allows for better organization and management of static files, specifically by including project-specific assets located in the coffeemachine/static directory. This update facilitates the development process by ensuring that static files are efficiently managed and served during development.
Refactor install server page to extend from a more specific base template located within the servers module. This change improves template organization and maintainability by ensuring server-related pages derive from a dedicated server template, facilitating consistent styling and functionality across all server management interfaces.
Introduced Django's static file loader tag in the base HTML template to support loading of CSS, JavaScript, and other static files throughout the application. This change is essential for integrating frontend assets seamlessly, enhancing the functionality and user experience of the site.
This modification allows for a more structured and organized way of managing static content, improving the development workflow and making the site more maintainable and scalable.
Introduce the initial Django project setup alongside necessary configurations for VSCode, laying the groundwork for a robust development environment. This includes project scaffolding (`coffeemachine` app), ASGI configuration for async support, and a model example for game servers, demonstrating Django's ORM capabilities. Additionally, we integrate Bootstrap for frontend styling and configure `.gitignore` for Python/Django standard exclusions, ensuring a cleaner repository state. The VSCode launch configuration is tailored for Django, facilitating debugging and enhancing the developer experience within the IDE.
This structured approach not only accelerates the setup phase for new developers but also ensures consistency across environments, fostering a more collaborative and efficient development process.