Quel framework JS pour un tableau d'administration CRUD/REST ?

Salut,

Je veux faire une interface d’administration un peu comme celle que j’ai fait avec SmartManaging (La démo est ici). Mon problème avec cet outil est qu’il utilise Smart Listing et je n’aime vraiment pas leur code. Je souhaite donc refaire “from scratch”.

Ce que je veux faire est assez simple. Un tableau permettant de lister, ajouter, modifier et supprimer des enregistrements en faisant des appels à une API REST. J’aimerai aussi pouvoir chercher, paginer, trier et faire des actions en lot dans un second temps.

À votre avis, est-ce que je devrais utiliser Angular qui me semble être fait pour des projets plus gros, Backbone, qui me semble être plus complexe, surtout pour la vue, ou autre ?

Merci!

Je resterais sur AngularJs, surtout si tu le maîtrise.

Vu le screen que tu as envoyé, c’est l’affaire de quelques lignes pour obtenir le résultat que tu souhaites.
Angulars est peut être lourd pour du si simple … mais cela te permettra de le faire évoluer dans un bon contexte si tu le souhaites par la suite.

Je ne maîtrise absolument pas Angular et j’éprouve quelques problèmes. Si Angular est lourd, tu conseils quoi?

Comme dit, je resterais sur de l’AngularJs. Par contre, si tu ne le maîtrise pas, c’est sur qu’il faudra t’y mettre. Je ne suis pas un expert, mais sur des petits problèmes, je peux aider.

Pour l’aspect lourd, c’est juste que prendre un frameworks comme AngularJs, nécessite souvent d’importer pas mal de lib lors du déploiement de ton application … après cela reste très supportable (tout dépend du context de déploiement).

Et j’avoue que je ne suis pas à même de te proposer d’autres environnement, je travaille soit avec AngularJS (que je préfère), soit avec ExtJS, est dans les deux cas, il y a tout un environnement à importer.

j’ai fait ce genre de chose avec Backbone et http://backgridjs.com/
ça supporte la pagination côté client ou côté serveur (si tu as énormément de lignes)
on peut trier les colonnes, rechercher etc
c’est simple à utiliser et assez flexible

ça utilise Backbone et donc l’API que tu as crée sera utilisée quand tu modifie des lignes etc

Backbone est plus simple à utiliser que Angular, selon moi, j’ai appris Backbone en même temps que backgridjs
Si tu as une API, il suffit de créer un modèle Backbone, lui passer ton URL API en attribut et passer ce modèle en paramètre du tableau Backgrid

Si tu choisis AngularJS, tu as l’excellent SmartTable couplé à XEditable pour l’édition.

Après c’est carrément overkill d’utiliser angular/backbone pour faire un simple crud dans un tableau…

Si tu veux te faire tout un back-office avec plein de fonctionnalités pourquoi pas, mais là je vois pas trop l’interêt.

1 « J'aime »

Je vais commiter quelque chose ce week-end. Si vous voulez, vous pourrez refaire ce que j’ai fait avec ce que vous pensez pour que l’on puisse faire une comparaison. Je garderais probablement la meilleure solution pour mon projet open-source.

Salut,

J’ai fait un petit outil d’administration : https://demo-smart-management.herokuapp.com/users.

Le code source est ici : https://github.com/GCorbel/demo-smart-management/.

Pour ceux qui ne connaissent pas Rails, le fichier js ce trouve ici : https://github.com/GCorbel/demo-smart-management/blob/master/app/assets/javascripts/app.coffee et la vue ici : https://github.com/GCorbel/demo-smart-management/blob/master/app/views/users/index.html.erb.

Le principe est de ne pas “Hardcoder”. Toutes les référence à la classe “User” sont passées grâce à des attributs dans le HTML qui sont eux même trouvés grâce à du code Ruby. Au final, il sera possible de générer toute la vue grâce à une ligne de code dans le contrôleur.

C’est vraiment “en développement” et c’est loin d’être fini mais vos avis m’intéressent. N’hésitez pas a émettre vos commentaire ou a faire des pull requests.

Pour les prototypes rapides, j’aime bien Deployd. Un projet en nodejs qui te permet de creer un REST tres rapidement et qui a une interface BO correcte. Apres c’est pas fait pour la prod pour l’instant, meme si techniquement ca ne depend que du scaling.
Ca te force le mongo en back end.
Et dernierement pour le full JS je suis tombé amoureux de Meteor ou on trouve deja pas mal de packet pour faire ce que tu veux : https://github.com/yogiben/meteor-admin
(ca ne te fais pas de REST simplement, mais on peux en mettre un en place avec le packet iron:router)

Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s