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
Winxp_python3.6.15 - Python 3.6.15 For Windows XP SP3

This is Python version 3.6.15 Copyright (c) 2001-2021 Python Software Foundation. All rights reserved. See the end of this file for further copyright

Alex Free 13 Sep 11, 2022
Unzip Japanese Shift-JIS zip archives on non-Japanese systems.

Unzip JP GUI Unzip Japanese Shift-JIS zip archives on non-Japanese systems. This script unzips the file while converting the file names from Shift-JIS

Emile Bangma 9 Dec 07, 2022
Incident Response Process and Playbooks | Goal: Playbooks to be Mapped to MITRE Attack Techniques

PURPOSE OF PROJECT That this project will be created by the SOC/Incident Response Community Develop a Catalog of Incident Response Playbook for every

Austin Songer 987 Jan 02, 2023
little proyect to organize myself, but maybe can help someone else

TaskXT 0.1 Little proyect to organize myself, but maybe can help someone else Idea The main idea is to ogranize you work and stuff to do, but with onl

Gabriel Carmona 4 Oct 03, 2021
Synthetik Python Mod - A save editor tool for the game Synthetik written in python

Synthetik_Python_Mod A save editor tool for the game Synthetik written in python

2 Sep 10, 2022
This repo holds custom callback plugin, so your Ansible could write everything in the PostgreSQL database.

English What is it? This is callback plugin that dumps most of the Ansible internal state to the external PostgreSQL database. What is this for? If yo

Sergey Pechenko 19 Oct 21, 2022
Bots in moderation and a game (for now)

Tutorial: come far funzionare il bot e durarlo per 24/7 (o quasi...) Ci sono 17 passi per seguire: Andare sul sito Replit https://replit.com/ Vedrete

ZacyKing 1 Dec 27, 2021
Assignment for python course, BUPT 2021.

pyFuujinrokuDestiny Assignment for python course, BUPT 2021. Notice username and password must be ASCII encoding. If username exists in database, syst

Ellias Kiri Stuart 3 Jun 18, 2021
A Unified Framework for Hydrology

Unified Framework for Hydrology The Python package unifhy (Unified Framework for Hydrology) is a hydrological modelling framework which combines inter

Unified Framefork for Hydrology - Community Organisation 6 Jan 01, 2023
Repositório de código de curso de Djavue ministrado na Python Brasil 2021

djavue-python-brasil Repositório de código de curso de Djavue ministrado na Python Brasil 2021 Completamente baseado no curso Djavue. A diferença está

Buser 15 Dec 26, 2022
A Guide for Feature Engineering and Feature Selection, with implementations and examples in Python.

Feature Engineering & Feature Selection A comprehensive guide [pdf] [markdown] for Feature Engineering and Feature Selection, with implementations and

Yimeng.Zhang 968 Dec 29, 2022
Goddard A collection of small, simple strategies for Freqtrade

Goddard A collection of small, simple strategies for Freqtrade. Simply add the strategy you choose in your strategies folder and run. ⚠️ General Crypt

Shane Jones 118 Dec 14, 2022
Arcpy Tool developed for ArcMap 10.x that checks DVOF points against TDS data and creates an output feature class as well as a check database.

DVOF_check_tool Arcpy Tool developed for ArcMap 10.x that checks DVOF points against TDS data and creates an output feature class as well as a check d

3 Apr 18, 2022
Aerial Ace is a helper bot for poketwo which provide various functionalities on top of being a pokedex.

Aerial Ace is a helper bot for poketwo which provide various functionalities on top of being a pokedex.

Devanshu Mishra 1 Dec 01, 2021
Rotazioni: a linear programming workout split optimizer

Rotazioni: a linear programming workout split optimizer Dependencies Dependencies for the frontend and backend are respectively listed in client/packa

Marco 3 Oct 13, 2022
Repositório contendo atividades no curso de desenvolvimento de sistemas no SENAI

SENAI-DES Este é um repositório contendo as atividades relacionadas ao curso de desenvolvimento de sistemas no SENAI. Se é a primeira vez em contato c

Abe Hidek 4 Dec 06, 2022
Anki cards generator for Leetcode

Leetcode Anki card generator Summary By running this script you'll be able to generate Anki cards with all the leetcode problems. I personally use it

Pavel Safronov 150 Dec 25, 2022
A set of decks and notebooks with exercises for use in a hands-on causal inference tutorial session

intro-to-causal-inference A introduction to causal inference using common tools from the python data stack Table of Contents Getting Started Install g

Roni Kobrosly 15 Dec 07, 2022
Extra scripts to improve user experience related to OpenTaiko

OpenTaiko-Utils Extra scripts to improve user experience related to OpenTaiko osu2tja /!\ IMPORTANT NOTE /!\ Converted charts that aren't yours are fo

2 Dec 25, 2022
Tools I'm building in order to help my investments decisions

b3-tools Tools I'm building in order to help my investments decisions. Based in the REITs I've in my personal portifolio I ran a script that scrapy th

Rafael Cassau 2 Jan 21, 2022