- Python 53.6%
- JavaScript 29.9%
- Vue 6%
- TypeScript 4.2%
- SCSS 2.9%
- Other 3.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
* feat(kanban): enhance Kanban Board functionality with new fields and improved card handling * feat(kanban): integrate new Kanban features with drag-and-drop support and event handling * chore(deps): update yarn.lock to include new dependencies for drag-and-drop functionality * feat(kanban): enhance Kanban board configuration with new fields and icon support for cards * feat(kanban): add 'Show Assigned To' and 'Footer Date' fields to Kanban board configuration * feat(kanban): improve Kanban board functionality with localized button labels and enhanced preview field logic * feat(kanban): enforce permissions for private Kanban boards and enhance card movement logic * feat(kanban): enhance card configuration with preview fields and improve HTML sanitization * feat(kanban): implement safe icon rendering to prevent HTML injection in Kanban cards * feat(kanban): enforce write permissions for Kanban board actions and improve settings handling * feat(kanban): improve Kanban board error handling and UI responsiveness during card movements * feat(kanban): ensure atomicity in multi-card movements and improve error handling during updates * refactor: migrate Kanban styles from JS to SCSS and enhance card movement logic * feat: add validation for Kanban group fields and enhance customization options * feat: introduce new Kanban UI and system settings toggle for enhanced user experience * refactor: bundle size issue * refactor: remove old kanban view stub and optimize loading of new kanban view * test: add Cypress tests for new Kanban board functionality * feat: implement loading skeleton for Kanban board and enhance page shell management * fix: update loading skeleton column count in Kanban page to exclude archived columns * fix: prevent reorder on partially-loaded columns in Kanban board * feat: enhance drag-and-drop functionality in Kanban board with custom previews and drop indicators * feat: add 'docstatus' field to Kanban page data structure * feat: improve Kanban drag-and-drop error handling and drop index calculation * feat: kept feature flag itself in board and changed files name * refactor: remove legacy new Kanban page and related files, transitioning to Kanban v2 implementation * fix: improve error handling during Kanban order updates by ensuring server resync on transaction failures * fix: drop reintroduced use_new_kanban boot sysdefault after rebase Co-authored-by: Cursor <cursoragent@cursor.com> * feat: enhance Kanban V2 layout with filter section and responsive height adjustments * feat: implement access control for Kanban Board settings and enhance UI features * feat: implement board epoch for async response handling in KanbanCore * refactor: streamline Kanban V2 codebase with improved comments * refactor: enhance image field handling in Kanban settings and board options * refactor: improve image field resolution logic and clean up Kanban settings descriptions * refactor: enhance Kanban card image display with blur-fill technique for improved aesthetics * refactor: add early epoch check to prevent stale requests during column page fetch * refactor: add option to enable Kanban V2 experience in settings dialog * refactor: add use_kanban_v2 option to quick_kanban_board and enhance state management in KanbanCore * refactor: enhance Kanban settings to auto-fill label column based on selected field * refactor: improve error handling in Kanban card movement by restoring UI state before reloading data * refactor: improve error handling during board updates by conditionally restoring UI state based on board epoch * feat: add quick filters to Kanban board and enhance settings dialog layout * refactor: update KanbanCore instance management and improve filter handling in KanbanV2Page * fix: code clean up * fix: handle concurrent reloads in KanbanCore * fix: update Kanban dialog to always use Kanban V2 for new boards * fix: enhance icon picker styles for better alignment and display * fix: update kanban board accent color and focus outline * refactor: streamline Kanban V2 codebase with improved comments and structure * fix: use get_list for swimlanes to only show lanes the user has access to * feat(kanban): ship standard boards and drop manual card order in v2 * fix(kanban): restore tag pills and text title fields * fix(kanban): keep classic board on its own settings, make new boards v2 - classic board uses the DocType's image field again, as on develop - v2 allows hidden image fields - new boards are v2 (before_insert), except boards synced from app files, which are taken as is - the deprecated notes no longer call the classic board the default * fix(kanban): add translated labels to v2 bulk edit fields * fix(kanban): scope v2 selection bar and Escape to the board's page * fix(kanban): rebuild columns when the Column Field changes in v2 settings * fix(kanban): load the latest board when opening v2 settings * fix(kanban): run move hooks per card on multi-card drags * fix(kanban): show other users' changes on v2 boards * fix(kanban): move cards to the column the server saved them in - v2 checks the saved column after a move; cards the server put elsewhere go there and report through onMoveError - remove dead page code and the get_card_config endpoint; let page errors surface instead of swallowing them - translate board names only for app-shipped boards; store field labels untranslated * fix(kanban): keep v2 moves on screen when a refresh overlaps them * fix(kanban): remove a board's file when it stops being standard; drop the Private rule - in developer mode, clearing Is Standard removes the exported JSON so the board stops shipping - drop the owner/Administrator check on Private; board write permission already covers it * chore(kanban): trim comments in the v2 board to what explains the code * fix(kanban): give v2 boards the title breadcrumb and a view_name - drop the old breadcrumbs.add call that linked the board name to a missing page - set view_name to Kanban like the classic view - read the title from the breadcrumb in the Cypress test * fix(kanban): let the view switcher leave a v2 board * fix(kanban): refresh from the server after a failed multi-card move - cards that did save before the error show in their saved columns instead of staying rolled back --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Nikhil Kothari <nik.kothari22@live.com> |
||
| .github | ||
| .greptile | ||
| cypress | ||
| esbuild | ||
| frappe | ||
| realtime | ||
| ui | ||
| .editorconfig | ||
| .eslintignore | ||
| .eslintrc | ||
| .git-blame-ignore-revs | ||
| .gitignore | ||
| .mergify.yml | ||
| .pre-commit-config.yaml | ||
| .releaserc | ||
| .semgrepignore | ||
| AGENTS.md | ||
| attributions.md | ||
| babel_extractors.csv | ||
| CODE_OF_CONDUCT.md | ||
| code_review.md | ||
| codecov.yml | ||
| CODEOWNERS | ||
| commitlint.config.js | ||
| crowdin.yml | ||
| cypress.config.js | ||
| generate_bootstrap_theme.js | ||
| hooks.md | ||
| jsconfig.json | ||
| LICENSE | ||
| node_utils.js | ||
| package.json | ||
| pyproject.toml | ||
| README.md | ||
| SECURITY.md | ||
| sider.yml | ||
| socketio.js | ||
| yarn.lock | ||
Frappe Framework
Low Code Web Framework For Real World Applications, In Python And JavaScript
Frappe Framework
Full-stack web application framework that uses Python and MariaDB on the server side and a tightly integrated client side library. Built for ERPNext.
Philosophy
The best code is the one that is not written
Started in 2005, Frappe Framework was inspired by the Semantic Web. The "big idea" behind semantic web was of a framework that not only described how information is shown (like headings, body etc), but also what it means, like name, address etc.
By creating a web framework that allowed for easy definition of metadata, it made building complex applications easy. Applications are usually designed around how users interact with a system, but not based on semantics of the underlying system. Applications built on semantics end up being much more consistent and extensible.
The first application built on Framework was ERPNext, a beast with more than 700 object types. Framework is not for the light hearted - it is not the first thing you might want to learn if you are beginning to learn web programming, but if you are ready to do real work, then Framework is the right tool for the job.
Key Features
-
Full-Stack Framework: Frappe covers both front-end and back-end development, allowing developers to build complete applications using a single framework.
-
Built-in Admin Interface: Provides a pre-built, customizable admin dashboard for managing application data, reducing development time and effort.
-
Role-Based Permissions: Comprehensive user and role management system to control access and permissions within the application.
-
REST API: Automatically generated RESTful API for all models, enabling easy integration with other systems and services.
-
Customizable Forms and Views: Flexible form and view customization using server-side scripting and client-side JavaScript.
-
Report Builder: Powerful reporting tool that allows users to create custom reports without writing any code.
Production Setup
Managed Hosting
You can try Frappe Cloud, a simple, user-friendly and sophisticated open-source platform to host Frappe applications with peace of mind.
It takes care of installation, setup, upgrades, monitoring, maintenance and support of your Frappe deployments. It is a fully featured developer platform with an ability to manage and control multiple Frappe deployments.
Self Hosting
Docker
Prerequisites: docker, docker-compose, git. Refer Docker Documentation for more details on Docker setup.
Run the following commands:
git clone https://github.com/frappe/frappe_docker
cd frappe_docker
docker compose -f pwd.yml up -d
After a couple of minutes, site should be accessible on your localhost port: 8080. Use below default login credentials to access the site.
- Username: Administrator
- Password: admin
See Frappe Docker for ARM based docker setup.
Development Setup
Manual Install
The Easy Way: our install script for bench will install all dependencies (e.g. MariaDB). See https://github.com/frappe/bench for more details.
New passwords will be created for the Frappe "Administrator" user, the MariaDB root user, and the frappe user (the script displays the passwords and saves them to ~/frappe_passwords.txt).
Local
To setup the repository locally follow the steps mentioned below:
-
Setup bench by following the Installation Steps and start the server
bench start -
In a separate terminal window, run the following commands:
# Create a new site bench new-site frappe.localhost -
Open the URL
http://frappe.localhost:8000/appin your browser, you should see the app running
Learning and community
- Frappe School - Learn Frappe Framework and ERPNext from the various courses by the maintainers or from the community.
- Official documentation - Extensive documentation for Frappe Framework.
- Discussion Forum - Engage with community of Frappe Framework users and service providers.
- buildwithhussain.com - Watch Frappe Framework being used in the wild to build world-class web apps.


