MCPcopy Index your code
hub / github.com/frappe/frappe

github.com/frappe/frappe @v16.25.0 sqlite

repository ↗ · DeepWiki ↗ · release v16.25.0 ↗
15,287 symbols 70,055 edges 2,130 files 2,635 documented · 17%
README
<img src="https://github.com/frappe/frappe/raw/v16.25.0/github/framework-logo-new.svg" width="80" height="80"/>
<h1>Frappe Framework</h1>

Low Code Web Framework For Real World Applications, In Python And JavaScript

<a target="_blank" href="https://github.com/frappe/frappe/raw/v16.25.0/LICENSE" title="License: MIT"><img src="https://img.shields.io/badge/License-MIT-success.svg"></a>
<a href="https://codecov.io/gh/frappe/frappe"><img src="https://codecov.io/gh/frappe/frappe/branch/develop/graph/badge.svg?token=XoTa679hIj"/></a>






<img src="https://github.com/frappe/frappe/raw/v16.25.0/github/hero-image.png" alt="Hero Image" />






<a href="https://frappe.io/framework">Website</a>
-
<a href="https://docs.frappe.io/framework">Documentation</a>

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.

Screenshots

List View Form View Role Permission Manager

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.

<a href="https://frappecloud.com/" target="_blank">






        <img src="https://frappe.io/files/try-on-fc-black.png" alt="Try on Frappe Cloud" height="28" />



</a>

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:

  1. Setup bench by following the Installation Steps and start the server bench start

  2. In a separate terminal window, run the following commands: # Create a new site bench new-site frappe.localhost

  3. Open the URL http://frappe.localhost:8000/app in your browser, you should see the app running

Learning and community

  1. Frappe School - Learn Frappe Framework and ERPNext from the various courses by the maintainers or from the community.
  2. Official documentation - Extensive documentation for Frappe Framework.
  3. Discussion Forum - Engage with community of Frappe Framework users and service providers.
  4. buildwithhussain.com - Watch Frappe Framework being used in the wild to build world-class web apps.

Contributing

  1. Issue Guidelines
  2. Report Security Vulnerabilities
  3. Pull Request Requirements
  4. Translations

        <img src="https://frappe.io/files/Frappe-black.png" alt="Frappe Technologies" height="28"/>
    

Core symbols most depended-on inside this repo

get
called by 2448
frappe/database/database.py
$
called by 1722
frappe/public/js/lib/fingerprintjs.js
find
called by 1615
frappe/email/doctype/email_queue/email_queue.py
_
called by 1301
frappe/utils/translations.py
append
called by 1213
frappe/types/filter.py
on
called by 938
frappe/public/js/frappe/web_form/web_form.js
get_doc
called by 933
frappe/email/receive.py
format
called by 792
frappe/public/js/frappe/list/list_view.js

Shape

Method 8,788
Function 4,857
Class 1,533
Route 109

Languages

Python68%
TypeScript32%

Modules by API surface

frappe/utils/data.py164 symbols
frappe/tests/test_utils.py149 symbols
frappe/model/document.py149 symbols
frappe/public/js/frappe/list/list_view.js145 symbols
frappe/public/js/frappe/form/form.js126 symbols
frappe/core/doctype/doctype/doctype.py115 symbols
frappe/tests/test_db.py113 symbols
frappe/public/js/lib/leaflet/leaflet.js106 symbols
frappe/public/js/frappe/views/reports/query_report.js101 symbols
frappe/core/doctype/user/user.py95 symbols
frappe/database/database.py94 symbols
frappe/deprecation_dumpster.py93 symbols

Dependencies from manifests, versioned

@editorjs/editorjs2.28.2 · 1×
@frappe/esbuild-plugin-postcss20.1.3 · 1×
@fullcalendar/core6.1.11 · 1×
@fullcalendar/daygrid6.1.11 · 1×
@fullcalendar/interaction6.1.11 · 1×
@fullcalendar/list6.1.11 · 1×
@fullcalendar/timegrid6.1.11 · 1×
@headlessui/vue1.7.16 · 1×
@popperjs/core2.11.2 · 1×
@redis/client1.5.8 · 1×
@sentry/browser7.119.1 · 1×
@vue-flow/background1.1.0 · 1×

For agents

$ claude mcp add frappe \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact