Abilian Core: an enterprise application development platform based on the Flask micro-framework, the SQLAlchemy ORM

Overview

About

https://circleci.com/gh/abilian/abilian-core.svg?style=svg https://coveralls.io/repos/abilian/abilian-core/badge.svg?branch=master https://static.pepy.tech/badge/abilian-core

Abilian Core is an enterprise application development platform based on the Flask micro-framework, the SQLAlchemy ORM, good intentions and best practices (for some value of "best").

The full documentation is available on http://docs.abilian.com/.

Goals & principles

  • Development must be easy and fun (some some definition of "easy" and "fun", of course)
  • The less code (and configuration) we write, the better
  • Leverage existing reputable open source libraries and frameworks, such as SQLAlchemy and Flask
  • It must lower errors, bugs, project's time to deliver. It's intended to be a rapid application development tool
  • It must promote best practices in software development, specially Test-Driven Development (as advocated by the GOOS book)

Features

Here's a short list of features that you may find appealing in Abilian:

Infrastructure

  • Plugin framework
  • Asynchronous tasks (using Celery)
  • Security model and service

Domain model and services

  • Persistent domain object model, based on SQLAlchemy
  • Audit

Content management and services

  • Simple file-based content repository
  • Indexing service
  • Document preview and transformation

Social

  • Users, groups and social graph (followers)
  • Activity streams

User Interface and API

  • Forms (based on WTForms)
  • CRUD (Create, Retrieve, Edit/Update, Remove) interface from domain models
  • Labels and descriptions for each field
  • Various web utilities: view decorators, class-based views, Jinja2 filters, etc.
  • A default UI based on Bootstrap 3 and several carefully selected jQuery plugins such as Select2
  • REST and AJAX API helpers
  • i18n: support for multi-language via Babel, with multiple translation dictionaries

Management and admin

  • Initial settings wizard
  • Admin and user settings framework
  • System monitoring (using Sentry)

Current status

Abilian Core is currently alpha software, in terms of API stability.

It is currently used in several applications that have been developped by Abilian over the last two years:

  • Abilian SBE (Social Business Engine) - an enterprise 2.0 (social collaboration) platform
  • Abilian EMS (Event Management System)
  • Abilian CRM (Customer / Contact / Community Relationship Management System)
  • Abilian Le MOOC - a MOOC prototype
  • Abilian CMS - a Web CMS

In other words, Abilian Core is the foundation for a small, but growing, family of business-critical applications that our customers intend us to support in the coming years.

So while Abilian Core APIs, object model and even architecture, may (and most probably will) change due to various refactorings that are expected as we can't be expected to ship perfect software on the firt release, we also intend to treat it as a valuable business asset and keep maintaining and improving it in the foreseeable future.

Roadmap & getting involved

If you need help or for general discussions about the Abilian Platform, we recommend joing the Abilian Users forum on Google Groups.

For features and bug requests (or is it the other way around?), we recommend that you use the GitHub issue tracker.

Read the Contributing Guide for more information.

Install

If you are a Python web developer (which is the primary target for this project), you probably already know about:

So, after you have created and activated a virtualenv for the project, just run:

poetry

To use some features of the library, namely document and images transformation, you will need to install the additional native packages, using our operating system's package management tools (dpkg, yum, brew...):

  • A few image manipulation libraries (libpng, libjpeg)
  • The poppler-utils, unoconv, LibreOffice, ImageMagick utilities

Look at the fabfile.py for the exact list.

Testing

Abilian Core come with a full unit and integration testing suite. You can run it with make test (once your virtualenv has been activated and all required dependencies have been installed, see above).

Alternatively, you can use tox to run the full test suite in an isolated environment.

Licence

Abilian Core is licensed under the LGPL.

Credits

Abilian Core has been created by the development team at Abilian (currently: Stefane and Bertrand), with financial support from our wonderful customers, and R&D fundings from the French Government, the Paris Region and the European Union.

We are also specially grateful to:

  • Armin Ronacher for his work on Flask.
  • Michael Bayer for his work on SQLAlchemy.
  • Everyone who has been involved with and produced open source software for the Flask ecosystem (Kiran Jonnalagadda and the HasGeek team, Max Countryman, Matt Wright, Matt Good, Thomas Johansson, James Crasta, and many others).
  • The creators of Django, Pylons, TurboGears, Pyramid and Zope, for even more inspiration.
  • The whole Python community.

Links

Owner
Abilian open source projects
Open source projects maintained by Abilian SAS, a French company specialised in web, enterprise and data science applications in Python
Abilian open source projects
Blender 3.0 Python - Open temporary areas in the Text Editor

PopDrawers When editing text in Blender, it can be handy to have areas like Info, Console, Outliner, etc visible on screen to help with scripting. How

SpectralVectors 7 Nov 16, 2022
A full-featured, hackable tiling window manager written and configured in Python

A full-featured, hackable tiling window manager written and configured in Python Features Simple, small and extensible. It's easy to write your own la

Qtile 3.8k Dec 31, 2022
A Python script to parse Fortinet products serial numbers, and detect the associated model and version.

ParseFortinetSerialNumber A Python script to parse Fortinet products serial numbers, and detect the associated model and version. Example $ ./ParseFor

Podalirius 10 Oct 28, 2022
Solcast Integration for Home Assistant

Solcast Solar Home Assistant(https://www.home-assistant.io/) Component This custom component integrates the Solcast API into Home Assistant. Modified

Greg 45 Dec 20, 2022
Library support get vocabulary from MEM

Features: Support scraping the courses in MEM to take the vocabulary Translate the words to your own language Get the IPA for the English course Insta

Joseph Quang 4 Aug 13, 2022
Creates infinite amount of guilded accounts in seconds.

Guilded Cookie Creator [fuck guilded i quit working on this, they patch like every fucking method after 2/3 days i release shit] Optimizations Asynchr

scripted 7 Feb 28, 2022
Python script which synchronizes the replica-directoty with the original-one.

directories_synchronizer Python script which synchronizes the replica-directoty with the original-one. Automatically detects all changes when script i

0 Feb 13, 2022
Generate Azure Blob Storage account authentication headers for Munki

Azure Blob Storage Authentication for Munki The Azure Blob Storage Middleware allows munki clients to connect securely, and directly to a munki repo h

Oliver Kieselbach 10 Apr 12, 2022
Data Science Course at Dept. of Computer Engineering, Chula 2022

2110446 Data Science Course at Chula 2022 Short links for exercises: Week1: Intro to Numpy, Pandas Numpy: https://colab.research.google.com/github/kao

Kao Panboonyuen 17 Nov 27, 2022
Create beautiful diagrams just by typing mathematical notation in plain text.

Penrose Penrose is an early-stage system that is still in development. Our system is not ready for contributions or public use yet, but hopefully will

Penrose 5.6k Jan 08, 2023
Library management using python & MySQL

Library management using python & MySQL Dev/Editor: Pavan Ananth Sharma & MK Akash Introduction: This is an intermediate project which is a user-frie

Pavan Ananth Sharma 2 Jul 05, 2022
One destination for all the developer's learning resources.

DevResources One destination for all the developer's learning resources. Find all of your learning resources under one roof and add your own. Live ✨ Y

Gaurav Sharma 33 Oct 21, 2022
Repositório do programa ConstruDelas - Trilha Python - Módulos 1 e 2

ConstruDelas - Introdução ao Python Nome: Visão Geral Bem vinda ao repositório do curso ConstruDelas, módulo de Introdução ao Python. Aqui vamos mante

WoMakersCode 8 Oct 14, 2022
Check if Python package names are available on PyPI.

😻 isavailable Can I haz this Python package on PyPI? Check if Python package names are available on PyPI. Usage $ isavailable checks whether your des

Felipe S. S. Schneider 3 May 18, 2022
CMPE 204 Modelling Project

CISC/CMPE 204 Modelling Project Welcome to the major project for CISC/CMPE 204 (Fall 2021)! Change this README.md file to summarize your project (few

totallyrin 2 May 16, 2022
Tutor plugin for integration of Open edX with a Richie course catalog

Richie plugin for Tutor This is a plugin to integrate Richie, the learning portal CMS, with Open edX. The integration takes the form of a Tutor plugin

Overhang.IO 2 Sep 08, 2022
Old versions of Deadcord that are problematic or used as reference.

⚠️ Unmaintained and broken. We have decided to release the old version of Deadcord before our v1.0 rewrite. (which will be equiped with much more feat

Galaxzy 1 Feb 10, 2022
Import modules and files straight from URLs.

Import Python code from modules straight from the internet.

Nate 2 Jan 15, 2022
sumCulator Это калькулятор, который умеет складывать 2 числа.

sumCulator Это калькулятор, который умеет складывать 2 числа. Но есть условия: Эти 2 числа не могут быть отрицательными (всё-таки это вычитание, а не

0 Jul 12, 2022
This repository contains the exercices for the robotics class at Supaero, 2022.

Supaero robotics, 2022 This repository contains the exercices for the robotics class at Supaero, 2022. The exercices are organized by notebook. Each n

Gepetto team, LAAS-CNRS 5 Aug 01, 2022