https://github.com/abilian/labandco
Lab&Co - solution métier pour fluidifier les relations entre chercheurs et administration dans les universités et les EPST
https://github.com/abilian/labandco
Last synced: 5 months ago
JSON representation
Lab&Co - solution métier pour fluidifier les relations entre chercheurs et administration dans les universités et les EPST
- Host: GitHub
- URL: https://github.com/abilian/labandco
- Owner: abilian
- License: apache-2.0
- Created: 2019-11-07T15:53:07.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2025-03-03T11:15:38.000Z (over 1 year ago)
- Last Synced: 2025-06-10T17:15:31.670Z (about 1 year ago)
- Language: Python
- Size: 3.36 MB
- Stars: 4
- Watchers: 6
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Lab&Co - solution métier pour fluidifier les relations entre chercheurs et administration
## A propos de Lab&Co
Lab&Co est un progiciel permettant aux établissements de recherche ou d'enseignement et de recherche(universités, EPST, etc.) de fluidifier les relations entre les chercheurs (porteurs de projets) et l'administration.
Il couvre notamment:
- Le recrutement de personnel sur contrat de projets (doctorants, bourses, CDD...)
- Les contrats de recherche (recherche partenariale, ANR, projets européens...)
- La valorisation de la recherche (logiciels, brevets, bases de donnée...)
## Illustration

### Historique
Lab&Co est développé par [Abilian](http://www.abilian.com/) en partenariat avec [Will Strategy](https://willstrategy.com/) depuis 2014 pour l'Université Pierre et Marie Curie (UPMC), devenue depuis Sorbonne Université.
Il est utilisé par plusieurs centaines de chercheurs et la soixantaine de personnes travaillant à la DR&I (Direction de la Recherche et de l'Innovation).
La version du code que vous consultez actuellement est la version "3.0" de l'application, qui été déployée fin 2019 à Sorbonne Université.
### Votre projet
Lab&Co peut être déployé dans votre établissement, après connexion à son annuaire LDAP et adaptation des modèles et des workflows à vos processus métiers.
Contactez-nous à: [contact@abilian.com](mailto:contact@abilian.com) pour toute demande d'information.
## Développement
### Installer en 1 ligne
Si votre machine de développement est "raisonnablement" configurée, vous pouvez installer Lab&Co localement en une ligne avec la commande:
./install.py
De manière alternative, si vous avez [Poetry](https://poetry.eustace.io/) installé, vous pouvez tapper:
poetry install
### Installer un environnement de développement
1) Créer et activer un virtualenv (Python 3.9 pour l'instant)
2) Installer Poetry
3) Dans `/etc/hosts`, faire pointer `labster.local` sur `localhost`.
4) Tapper:
poetry install
yarn --cwd front
### Comment développper
En mode développement, il suffit de lancer `flask devserver`.
Puis lancer le navigateur sur: http://labster.local:5000/
Pour lancer les tests: `pytest` ou mieux `tox`.
Il y d'autres commandes utiles, tapper juste `flask` pour avoir la
liste.
### BDD de prod
Créer une base Postgresql `labster`:
createdb labster
puis:
flask create-db
### Migrations
flask db migrate
flask db upgrade
Doc: http://alembic.zzzcomputing.com/en/latest/tutorial.html
### Tests
1) Tests unitaires:
pytest
yarn --cwd front run test:unit
2) Tests e2e:
flask cypress
flask testcafe
3) Pour tester manuellement en tant qu'un autre utilisateur, utiliser l'url
`backdoor/uid=xxx` (see blueprints/auth/cas.py).
#### Tester l'envoi de mails
Lancer
python -m smtpd -n -c DebuggingServer localhost:1025
et dans `DevConfig`
# MAIL_SUPPRESS_SEND = True
MAIL_SUPPRESS_SEND = False
MAIL_SERVER = 'localhost'
MAIL_PORT = 1025
Ainsi les mais envoyés seront affichés sur stdout.
Autre possibilité, mettre la variable que l'on veux changer (par rapport au défaut)
dans un fichier `.env` (similaire au fichier `.flaskenv` qui existe déjà).
Le fichier `.env` a priorité sur `.flaskenv`.
Pour les tests unitaires, voir la doc de [flask-mail](https://pythonhosted.org/Flask-Mail/).
## Architecture
L'application est constitué d'un backend en Python, utilisant notamment le framework Web Flask, l'ORM SQLAlchemy, et d'un front-end SPA en JavaScript utilisant le framework réactif Vuejs.
La communication entre front-end et back-end se fait soit en utilisant le paradigme REST (sans HATEOAS), soit le protocole JSON-RPC 2.0.
Le backend utilise également le framework Abilian-Core développé par Abilian. Il utilise également l'injection de dépendance grâce à la bibliothèque Injector (+ Flask-Injector).
L'authentification se fait en utilisant le protocole CAS implémenté par l'Université.
### Modèle de données (simplifié)

## FAQ
### L'application s'appelle-t-elle "Labster" ou "Lab&Co" ?
Le projet s'appelait initialement "Labster", d'où le nom encore donné au package principal et à certaines variables ou constantes. Il s'appelle à présent "Lab&Co".