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
Some scripts for the Reverse engineered (old) api of CafeBazaar

bazz Note: This project is done and published only for educational purposes. Some scripts for the Reverse engineered (old) API of CafeBazaar. Be aware

Mohsen Tahmasebi 35 Dec 25, 2022
DRF magic links

drf-magic-links Installation pip install drf-magic-links Add URL patterns # urls.py

Dmitry Kalinin 1 Nov 07, 2021
Free APN For Python

Free APN For Python

XENZI GANZZ 4 Apr 22, 2022
Quick script for automatically extracting syscall numbers for an OS

Syscalls-Extractor Quick script for automatically extracting syscall numbers for an OS $ python3 .\syscalls-extractor.py --help usage: syscalls-extrac

m0rv4i 54 Feb 10, 2022
Basic repository showing how to use Hydra + Hydra launchers on SLURM cluster

Slurm-Hydra-Submitit This repository is a minimal working example on how to: setup Hydra setup batch of slurm jobs on top of Hydra via submitit-launch

Raphael Meudec 2 Jul 25, 2022
Clackety Keyboards Powered by Python

KMK: Clackety Keyboards Powered by Python KMK is a feature-rich and beginner-friendly firmware for computer keyboards written and configured in Circui

KMK Firmware 780 Jan 03, 2023
A calculator developed in Python.

Calculadora Uma simples calculadora... ( + − × ÷ ) 💻 Situação do projeto: Projeto finalizado ✔️ 🛠 Tecnologias: Python Tkinter (GUI) ⚙️ Pré-requisito

Arthur V.B.S. 1 Jan 27, 2022
frida-based ceserver. iOS analysis is possible with Cheat Engine.

frida-ceserver frida-based ceserver. iOS analysis is possible with Cheat Engine. Original by Dark Byte. Usage Install frida on iOS. python main.py Cyd

KenjiroIchise 89 Jan 08, 2023
Think DSP: Digital Signal Processing in Python, by Allen B. Downey.

ThinkDSP LaTeX source and Python code for Think DSP: Digital Signal Processing in Python, by Allen B. Downey. The premise of this book (and the other

Allen Downey 3.2k Jan 08, 2023
This tool helps you to reverse any regex and gives you the opposite/allowed Letters,numerics and symbols.

Regex-Reverser This tool helps you to reverse any regex and gives you the opposite/allowed Letters,numerics and symbols. Screenshots Usage/Examples py

x19 0 Jun 02, 2022
Contains the code of my learning of Python OOP.

OOP Python This repository contains the code of my learning of Python OOP. All the code: is following PEP 8 ✅ has proper concept illustrations and com

Samyak Jain 2 Jan 15, 2022
Commodore 64 OS running on Atari 8-bit hardware

This is the Commodre 64 KERNAL, modified to run on the Atari 8-bit line of computers. They're practically the same machine; why didn't someone try this 30 years ago?

Nick Bensema 133 Nov 12, 2022
Collection of script & resources for Foundry's Nuke software.

Author: Liam Collod. Collections of scripting stuff I wrote for Foundry's Nuke software. Utilisation You can have a look at the README.md file in each

Liam Collod 1 May 14, 2022
A comprensive software collection for nmea manipulation

nmeatoolkit A comprensive software collection for nmea manipulation; it includes a library and a collections of command line tools. Library pipes: con

Davide Gessa 1 Sep 14, 2022
Pdraw - Generate Deterministic, Procedural Artwork from Arbitrary Text

pdraw.py: Generate Deterministic, Procedural Artwork from Arbitrary Text pdraw a

Brian Schrader 2 Sep 12, 2022
Howell County, Missouri, COVID-19 data and (unofficial) estimates

COVID-19 in Howell County, Missouri This repository contains the daily data files used to generate my COVID-19 dashboard for Howell County, Missouri,

Jonathan Thornton 0 Jun 18, 2022
List of Linux Tools I put on almost every linux / Debian host

Linux-Tools List of Linux Tools I put on almost every Linux / Debian host Installed: geany -- GUI editor/ notepad++ like chkservice -- TUI Linux ser

Stew Alexander 20 Jan 02, 2023
The official FOSSCOMM 2021 CTF by [email protected]

FOSSCOMM 2021 CTF Table of Contents General Info FAQ General Info Purpose: This CTF is a collaboration between the FOSSCOMM conference and the Machina 2 Nov 14, 2021

Manipulation OpenAI Gym environments to simulate robots at the STARS lab

liegroups Python implementation of SO2, SE2, SO3, and SE3 matrix Lie groups using numpy or PyTorch. [Documentation] Installation To install, cd into t

STARS Laboratory 259 Dec 11, 2022
Python package for handling and analyzing PSRFITS files

PyPulse A pure-Python package for handling and analyzing PSRFITS files. Read the documentation here. This is an alternate code base from PSRCHIVE. Req

Michael Lam 15 Nov 30, 2022