frappé framework - a full stack web framework

Post on 22-Jan-2018

348 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Frappé FrameworkRushabh Mehta

Founder, Frappé Technologies Pvt Ltd

Linux Users Group Meeting Mumbai

What is Frappé?Full stack web framework

• Web App Framework (based on Werkzeug)

• MVC + ORM (object relational mapper)

• Sessions, Users, Roles, Permissions, Caching

• Rich, scriptable admin UI (Javascript)

• UI driven form and model builder

• Routing and templating (Jinja)

• Async and realtime (Node + socketio)

• Background workers (Python RQ)

• Multi-Tenant production deployment (supervisor, Nginx, Redis)

• Extensible architecture (pluggable apps)

Traction• 70+ contributors

• 600+ stars on GitHub

• 5,000+ clones in a month

• 10,000 + commits

• 3000+ deployments

• 6000+ members on the forum

• 100+ apps

• 300+ service providers

Showcased: https://github.com/showcases/web-application-frameworks

Why• Build an ERP System

• Small team (core team 4)

• 200+ tables

• Single deployments + Scalable cloud

• Extensible architecture (for customisations)

Features

Admin UI: Desktop

List View

Form Views

Gantt Views

Calendar View

Kanban Views

Modules and Notifications

Universal Search

Email documents

File Attachments

Print Views

Web Views

Reports

Metadata Modeling

Model Fields

Role based Permissions

Documentation Generator

Tree Views and Nested Sets

def add_customer(name, group): c = frappe.new_doc(“Customer”) c.customer_name = name c.customer_group = group c.insert()

def get_most_valued_customer(since): return frappe.get_all(“Sales Invoice”, filters = {“transaction_date”: (“>”, since)}, fields = [“customer”, “sum(grand_total) as total_income”], group_by = “customer”, order_by = “total_income desc”, limit = 1)[0].customer

Scripting API

Extensible Apps

Translation Portal

Community Forum (ERPNext)

Also includes…• REST API

• Bootstrap based responsive UI

• Workflows, Alerts

• XSS Filtering

• Database migrations (schema sync)

• Update tool (update and deployment tool)

• Package Manager

• Test Framework

• Ansible based deploy scripts

• Web Sockets frappe.publish_realtime(‘event’, ‘message’)

Why use Frappé• Internal apps

• Admin tools

• Monitoring / MIS tools

• Portals

• Business Apps

“Batteries Included”

top related