binarybeachio fork of makeplane/plane � Zitadel OIDC repurposing of /auth/github/. See BINARYBEACHIO.md.
Find a file
Jayash Tripathy 36d42856e9
[WEB-5493] feat: implement static cover image handling and selection (#8184)
* feat: implement cover image handling and static image selection

- Added functionality to handle cover image uploads and selections in project and profile forms.
- Introduced a new helper for managing cover images, including static images and uploaded assets.
- Updated components to utilize the new cover image helper for displaying and processing cover images.
- Added a set of static cover images for selection in the image picker.
- Enhanced error handling for image uploads and processing.

This update improves the user experience by providing a more robust cover image management system.

* refactor: rename STATIC_COVER_IMAGES_ARRAY to STATIC_COVER_IMAGES for consistency

- Updated the cover image helper to export STATIC_COVER_IMAGES instead of STATIC_COVER_IMAGES_ARRAY.
- Adjusted the ImagePickerPopover component to utilize the renamed export for rendering static cover images.

* feat: enhance project creation and image handling

- Introduced default project form values with a random emoji for logo props.
- Updated cover image handling in various components, ensuring consistent usage of the new cover image helper.
- Refactored image picker to improve search functionality and loading states.
- Removed unused constants and streamlined cover image type checks for better clarity and performance.

This update enhances the user experience in project creation and image selection processes.

* refactor: simplify cover image type definition and clean up code

- Removed duplicate type from TCoverImageType, streamlining the definition.
- Cleaned up whitespace in the cover image helper for improved readability.

This update enhances code clarity and maintains consistency in cover image handling.

* refactor: update cover image type definitions and simplify logic

- Changed ICoverImageResult and ICoverImagePayload interfaces to type aliases for better clarity.
- Simplified the logic in getCoverImageDisplayURL function to enhance readability and maintainability.

This update improves the structure and clarity of the cover image helper code.

* refactor: remove unused project cover image endpoint and update cover image handling

- Removed the ProjectPublicCoverImagesEndpoint and its associated URL from the project.
- Updated the cover image handling in the cover-image helper to utilize imported assets instead of static paths.
- Cleaned up the ProjectFavoritesViewSet and FileService by removing the now obsolete getProjectCoverImages method.

This update streamlines the cover image management and eliminates unnecessary code, enhancing overall maintainability.

* refactor: update cover image imports to new asset structure

- Replaced static path imports for cover images with updated paths to the new asset structure.
- This change improves organization and maintainability of cover image assets in the project.

This update aligns with recent refactoring efforts to streamline cover image handling.

* feat: add additional cover images to the helper

- Imported new cover images (24 to 29) into the cover-image helper.
- This update expands the available cover image options for use in the project, enhancing visual variety.

* refactor: remove ProjectPublicCoverImagesEndpoint from project URLs and views

* refactor: update cover image imports to include URL query parameter

- Modified cover image imports in the cover-image helper to append a URL query parameter for better asset handling.
- This change enhances the way cover images are processed and utilized within the project.

* refactor: extract default project form values into a utility function

- Created a new utility function `getProjectFormValues` to encapsulate the default project form values.
- Updated the `CreateProjectForm` component to use this utility function for setting default form values, improving code organization and maintainability.

* feat: integrate project update functionality in CreateProjectForm

- Added `updateProject` method to the `CreateProjectForm` component for updating project cover images after creation.
- Enhanced cover image handling by ensuring the correct URL is set for both uploaded and existing cover images.
This update improves the project creation workflow and ensures cover images are accurately updated.

* fix: update documentation for cover image handling

- Corrected the comment regarding local static images to reflect that they are served from the assets folder instead of the public folder.
- This change ensures accurate documentation for the `getCoverImageType` and `getCoverImageDisplayURL` functions, improving clarity for future developers.

* feat: implement random cover image selection for project forms

- Replaced the default cover image URL with a new utility function `getRandomCoverImage` that selects a random cover image from the available options.
- Updated the `getProjectFormValues` function to utilize this new method, enhancing the project creation experience with varied cover images.

---------

Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
2025-12-03 16:20:38 +05:30
.github [WEB-5459] feat(codemods): add function declaration transformer with tests (#8137) 2025-11-20 17:39:40 +05:30
.idx chore: add IDX configuration so anyone can edit the project from idx.google.com (#5398) 2024-08-28 13:52:25 +05:30
apps [WEB-5493] feat: implement static cover image handling and selection (#8184) 2025-12-03 16:20:38 +05:30
deployments fix: escape slashes in environment variable values during update (#8081) 2025-11-11 17:52:03 +05:30
packages [WEB-5493] feat: implement static cover image handling and selection (#8184) 2025-12-03 16:20:38 +05:30
.codespellrc Add codespell support (config, workflow to detect/not fix) and make it fix some typos (#7864) 2025-10-07 17:42:49 +05:30
.dockerignore [WEB-5040] feat: admin react-router migration (#7922) 2025-11-06 13:39:35 +05:30
.env.example [INFRA-209] Remove nginx related configurations from plane community (#7406) 2025-07-14 16:38:27 +05:30
.gitattributes fix: Local Setup on Windows (#5539) 2024-09-10 17:28:18 +05:30
.gitignore [WEB-5556] chore: tab navigation project header enhancement (#8212) 2025-12-02 14:35:19 +05:30
.mise.toml [WEB-5048] chore: implements esm exports for all packages (#7816) 2025-10-06 21:01:32 +05:30
.npmrc [WEB-4803] fix: eslint errors in code editors (#7675) 2025-08-29 19:44:46 +05:30
.prettierrc chore: use oxc tooling to speed up prettier (#8117) 2025-11-20 17:30:27 +05:30
CODE_OF_CONDUCT.md chore: updated the contact email (#2605) 2023-11-02 16:27:23 +05:30
CONTRIBUTING.md feat: migrate to pnpm from yarn (#7593) 2025-08-19 20:06:42 +05:30
docker-compose-local.yml [INFRA-246] Update Valkey image version to 7.2.11-alpine in docker-compose files #7935 2025-10-10 00:19:17 +05:30
docker-compose.yml Update docker-compose.yml for valkey security patch (#7926) 2025-10-09 17:15:49 +05:30
LICENSE.txt LICENSE change for Plane 2023-06-19 18:47:39 +05:30
package.json fix: update express version in overrides 2025-12-02 15:09:25 +05:30
pnpm-lock.yaml chore: standard replacement from dotenv to dotenvx (#8216) 2025-12-02 15:32:00 +05:30
pnpm-workspace.yaml chore: standard replacement from dotenv to dotenvx (#8216) 2025-12-02 15:32:00 +05:30
README.md docs: updated README images (#7547) 2025-08-05 17:24:33 +05:30
SECURITY.md Updated SECURITY.md (#5737) 2024-10-03 14:09:01 +05:30
setup.sh feat: migrate to pnpm from yarn (#7593) 2025-08-19 20:06:42 +05:30
turbo.json chore: update tubro envs and removed plausible script 2025-11-13 15:24:17 +05:30



Plane Logo

Modern project management for all teams

Discord online members Commit activity per month

WebsiteReleasesTwitterDocumentation

Plane Screens

Meet Plane, an open-source project management tool to track issues, run sprints cycles, and manage product roadmaps without the chaos of managing the tool itself. 🧘‍♀️

Plane is evolving every day. Your suggestions, ideas, and reported bugs help us immensely. Do not hesitate to join in the conversation on Discord or raise a GitHub issue. We read everything and respond to most.

🚀 Installation

Getting started with Plane is simple. Choose the setup that works best for you:

  • Plane Cloud Sign up for a free account on Plane Cloud—it's the fastest way to get up and running without worrying about infrastructure.

  • Self-host Plane Prefer full control over your data and infrastructure? Install and run Plane on your own servers. Follow our detailed deployment guides to get started.

Installation methods Docs link
Docker Docker
Kubernetes Kubernetes

Instance admins can configure instance settings with God mode.

🌟 Features

  • Issues Efficiently create and manage tasks with a robust rich text editor that supports file uploads. Enhance organization and tracking by adding sub-properties and referencing related issues.

  • Cycles Maintain your teams momentum with Cycles. Track progress effortlessly using burn-down charts and other insightful tools.

  • Modules Simplify complex projects by dividing them into smaller, manageable modules.

  • Views Customize your workflow by creating filters to display only the most relevant issues. Save and share these views with ease.

  • Pages Capture and organize ideas using Plane Pages, complete with AI capabilities and a rich text editor. Format text, insert images, add hyperlinks, or convert your notes into actionable items.

  • Analytics Access real-time insights across all your Plane data. Visualize trends, remove blockers, and keep your projects moving forward.

  • Drive (coming soon): The drive helps you share documents, images, videos, or any other files that make sense to you or your team and align on the problem/solution.

🛠️ Local development

See CONTRIBUTING

⚙️ Built with

Next JS Django Node JS

📸 Screenshots

Plane Views

Plane Cycles and Modules

Plane Analytics

Plane Pages

📝 Documentation

Explore Plane's product documentation and developer documentation to learn about features, setup, and usage.

❤️ Community

Join the Plane community on GitHub Discussions and our Discord server. We follow a Code of conduct in all our community channels.

Feel free to ask questions, report bugs, participate in discussions, share ideas, request features, or showcase your projects. Wed love to hear from you!

🛡️ Security

If you discover a security vulnerability in Plane, please report it responsibly instead of opening a public issue. We take all legitimate reports seriously and will investigate them promptly. See Security policy for more info.

To disclose any security issues, please email us at security@plane.so.

🤝 Contributing

There are many ways you can contribute to Plane:

Please read CONTRIBUTING.md for details on the process for submitting pull requests to us.

Repo activity

Plane Repo Activity

We couldn't have done this without you.

License

This project is licensed under the GNU Affero General Public License v3.0.