Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New JET ? #389

Closed
Vadorequest opened this issue Feb 24, 2019 · 35 comments
Closed

New JET ? #389

Vadorequest opened this issue Feb 24, 2019 · 35 comments

Comments

@Vadorequest
Copy link

I don't understand what means the message on the main page

We are proud to announce completely new Jet. Please check out Live Demo.
Developing of new features for Django Jet will be frozen, only critical bugs will be fixed

If there is a new version ongoing, where is the repo? Is it not open source? Is it gonna be a SaaS platform?

@SalahAdDin
Copy link
Contributor

It is a SaaS platform.

@f1nality
Copy link
Contributor

f1nality commented Feb 26, 2019

@Vadorequest its partly open source. new jet is now SPA and divided into 2 parts – backend part on your server and frontend part on jet side. the architecture is made so that your private data is secured, it is not going through our servers. this gives a lot of advantages, now jet can work with any languages and frameworks, not only Python + Django, also all users gain new features as soon we add them to jet and now we are free to any much more features because we are not dependant on django anymore. also we provide a lot of ways for customization, you can even integrate your own views into frontend written with any JS frameworks/libraries (React, Vue, Angular, etc.)

The backend part which is installed on your project is open source is it was for django jet, here is the new repository link:
https://github.com/jet-admin/jet-bridge

The frontend part is not open source, it is saas

Even it is saas – there is still free plan available

@Vadorequest
Copy link
Author

Thank you for your detailed reply, I suggest to clarify the README, I knew Django Jet and wasn't expecting a SaaS platform to appear where it was only a Django plugin back then ;)

Looks awesomely good! 🚀

@f1nality f1nality pinned this issue Feb 26, 2019
@mmmcorpsvit
Copy link

i try free use SaaS some time ago, but biggest problem what impossible use to local debug
too don't find how language change or how use any django admin tools

@f1nality
Copy link
Contributor

f1nality commented Mar 5, 2019

@mmmcorpsvit you can use new jet even with your local webserver. Thats because Jet Admin is just frontend application that send requests to any api to get data (even local)

@mmmcorpsvit
Copy link

@mmmcorpsvit you can use new jet even with your local webserver. Thats because Jet Admin is just frontend application that send requests to any api to get data (even local)

ок, but how use in this case offline debug when need strong security, or for offline? This is impossible.
Or how use custom admin parts... idea SaaS cool, but not perfect and have many black box parts? this is not compartible with Open Source logic( sad...

@f1nality
Copy link
Contributor

f1nality commented Mar 5, 2019

@mmmcorpsvit I didn't get how offline debug is connected with security and what type of security do you mean. anyway new jet is secure, database bridge application (which has access to your data) is open source and is installed on your side. frontend part which is not open source is just an interface, it has no direct access to your data.

also about customizing, we did big work on this part. you can read about it here:
https://docs.jetadmin.io/overview/customizing

a lot of can be configured without coding just in frontend interface. when this is not enough you can still edit a lot, you can even write your own view on react/angular/vue/etc. and integrate it inside saas service.

so I don't see any drawbacks here

@mmmcorpsvit
Copy link

i try explain, for example we have based on money some system, many companies use internal LAN and think Internet access for restrict area (usual for work in Remote Desktop), this is typical for many companies? this is real example. So use New JET just will be impossible. So offline version just must be. Very sad what old Jet version dead(((

@f1nality
Copy link
Contributor

f1nality commented Mar 6, 2019

@mmmcorpsvit using jet for closed lan network is possible with enterprise plan

@edmenendez
Copy link
Collaborator

I think the only way would be to create a fork of the project or switching to something like Django Suit.

@f1nality
Copy link
Contributor

f1nality commented Mar 6, 2019

@edmenendez what's the sense of it? nothing changes for this repository

@edmenendez
Copy link
Collaborator

Nothing needs to change for this repository. Creating a fork would allow the community to better update the project and approve PRs and feature updates.

@f1nality
Copy link
Contributor

f1nality commented Mar 6, 2019

@edmenendez GitHub has ability to add members of repository that can approve PRs and edit code. There is no need to add forks and confuse other developers.

@edmenendez
Copy link
Collaborator

Of course, but no one has done that unfortunately :-( My understanding is that this project is staying static with no new development or PRs accepted. Nothing has been accepted/changed in about 5 months.

@edmenendez
Copy link
Collaborator

For example.. see these PRs:

#369
#380
#358

If the project was not dead.. you would think someone would have approved one of those by now. If you're saying the project is not dead, then I would wait to see some movement in the PRs to see if this is true. Also, approving other developers as members to help with PRs would also make the project less dead and not require a fork.

@ddavidebor
Copy link

Guys, it would be best if you were to open source seriously the existing django-jet, so that people could took over it's development.

And i mean seriously. Change the license, move to community management.

Because, let's be honest, no-one asked for this new product, and it's a highly competitive business space. And I'm pretty sure you'll fail because your new business model is not targeting serious companies, only small developers. (99.9% of companies can't afford to split the IP of the frontend of any app the way you are proposing). I'm a small company and can't afford it...

@Vadorequest
Copy link
Author

@ddavidebor Just out of curiosity, what do you mean by "IP" in this context?

@ddavidebor
Copy link

@Vadorequest Intellectual property

Without any control over the intellectual property of the the frontend what should a Company do if the frontend gets dismissed or take a turn incompatible with the business needs?

That's all everyone sees - the frontend. That's what users map their brains to.

@SalahAdDin
Copy link
Contributor

We tried to make a fork, but no one helped us.

@ddavidebor
Copy link

Even if you were to fork it, with the AGPL licence it would be useless to many companies

@SalahAdDin
Copy link
Contributor

Any alternative?

@ddavidebor
Copy link

Only if the copyright holder re-releases it with MIT/BSD/APACHE or equivalent licenses, then it could be rebranded and a community created to support it

@edmenendez
Copy link
Collaborator

edmenendez commented May 14, 2019

It seems like the GNU (Free Software Foundation) license grants us full permission to do that. See section 5.

https://github.com/geex-arts/django-jet/blob/dev/LICENSE

And while it's not as good as an MIT license, it's still good enough for GIT, GNU, MySQL, Joomla, Wordpress and bunch of other packages that are commonly used.

@ddavidebor
Copy link

@edmenendez Don't bother, It's not under the GNU License, it's under the GNU Affero license.

The GNU Affero license under which this code is requires you to fully disclose the whole source code of your app (including in the case it's provided as a networked service such as a SAAS) making it completely useless in anything but a completely open source app.

@guettli
Copy link

guettli commented Mar 29, 2020

@ddavidebor you are right. Time will tell. Which alternatives to jet look promising according to your point of view?

@ddavidebor
Copy link

@guettli If we are talking about a generic SaaS with a modern admin panel, this one was the best usability wise.

If this is something to be used for users to interact, and you want to use django, all other choices are not as good.

Personally, I was working on CMS/ERP style app, and decided to work with a framework oriented in that direction called https://frappe.io/ . It's a full fledged Backend + frontend + admin. Documentation can be spotty and mediocre. It's much bigger than Django in the basic configuration, but it has modern UI paradigms and I would consider it for B2B apps as it comes with EVERYTHING already working.

Honestly I am not sure i would develop an admin interface with django in this decade. There are quite a bunch of "headless cms" (mostly a meaningless term) that feature pretty amazing UI now without writing a line a code.

https://directus.io/ (but it's php)
https://github.com/strapi/strapi (nodejs)

@SalahAdDin
Copy link
Contributor

@ddavidebor I think if we come to this kind of admin templates is because we want to give a good experience even inside ot Django's administration.

@ddavidebor
Copy link

ddavidebor commented Mar 30, 2020 via email

@Vadorequest
Copy link
Author

Thanks @ddavidebor for mentioning Directus and Frappe. They both look so promising and I had never heard of them, such a shame.

I quickly compared both yesterday, couldn't get started with Frappe cloud version because it crashed or something. Directus look very good too, I'm going through the doc right now.

This is a bit out of topic, but may also help readers looking for an alternative to JET. Would you mind giving me your feedback regarding the following requirements? (would you rather advise Frappe or Directus, or something else, why and what to be careful about)

I'm looking for a CMS/BackOffice/Admin site to help me manage my multiple B2B customers.

Our needs are:

  • Providing a backoffice to our customers, where each user can connect to its own tenant and access its tenant's data only.
  • The backoffice must be generated automatically from a data structure (db schema for instance)
  • An API must be generated automatically from the data structure (allows to consume the data from web apps, mobiles, etc.)
  • Ideally, this API would be a GraphQL server because that's what we use already.
  • Advanced permissions and roles for internal users, basically need to configure who can view which tables, or has update/delete permissions on which tables. It must be flexible and non-blocking for our business evolution/future needs
  • The backoffice needs to be flexible about UI components/views so that we can create our own workflows, views and components.
  • Theming capabilities of the backoffice, per tenant, would nice to have.
  • Also, my goal is to have as little to manage as possible, I'd prefer to use a managed cloud version over a custom "have-to-install-and-maintain" one if possible

Thank you!

@ddavidebor
Copy link

ddavidebor commented Mar 30, 2020

Hello @Vadorequest

I quickly compared both yesterday, couldn't get started with Frappe cloud version because it crashed or something. Directus look very good too, I'm going through the doc right now.

Please try https://github.com/frappe/frappe_docker for frappe! If you have any issue you can write me there, I am a maintainer of that repo (only frappe_docker, not the main frappe repo).
Unfortunately frappe itself is not offered in the cloud, only the ERP solutions based on the frappe framework.

Regarding your requirements:

  • Providing a backoffice to our customers, where each user can connect to its own tenant and access its tenant's data only.

frappe does that, all the main configurations are multi tenant out of the box, each tenant gets it's own subsite with optional ssl

  • The backoffice must be generated automatically from a data structure (db schema for instance)

It does that, you create an app, that app contains the data structure, config, and custom code. Create a new site (tenant), install the app et voila'

  • An API must be generated automatically from the data structure (allows to consume the data from web apps, mobiles, etc.)

Generates full rest API https://frappe.io/docs/user/en/api/rest
The API is good but it's not amazing.

  • Ideally, this API would be a GraphQL server because that's what we use already.

It lacks a good standardized API protocol, I've opened an issues about implementing OpenAPI

  • Advanced permissions and roles for internal users, basically need to configure who can view which tables, or has update/delete permissions on which tables. It must be flexible and non-blocking for our business evolution/future needs

Yes it does that on all documents

  • The backoffice needs to be flexible about UI components/views so that we can create our own workflows, views and components.

Workflowss, views (tables, forms) can be configured through the UI.

  • Theming capabilities of the backoffice, per tenant, would nice to have.

I am not sure it support this out of the box but could be implemented with very few lines of code

  • Also, my goal is to have as little to manage as possible, I'd prefer to use a managed cloud version over a custom "have-to-install-and-maintain" one if possible

I've discussed this with the team in the past and they're not interested in offering it. However, if you run it on docker and maybe move Redis and MariaDB to a managed solution like Digitalocean managed DB, maintenance is truly minimal. There is a UI to manage the tenant websites, called bench manager, which can also help.


This is a draft of features frappe offers I wrote for an app similar to yours (please don't copy-paste it, it's copyrighted)

## Integration, expandability and automation

* Webhooks: a webhook can be trigger on any action on any document. Examples:
  * When a new component request is created, turn on a light on the office
  * When a new SKU is added to a MPN, send the SKU to the ERP software to verify
* Full document structure editing. Need two SKU? need color-tagging of something? 
* Data export (excel, csv), data import with validation
* Bulk update with conditions and logic
* REST api and RPC

## Workflow and management

* complete configurable workflow with status, actions, roles
* send preconfigured emails
* can be disabled for simple deployments in small businesses

## Collaboration

* Comment on ANY document
* Add attachment to any document
* Configurable KANBAN boards (by tag, status, any parameter)
* Share document with any user, even if they did not have permission before (you must have share permissions)
* Add tags to any document
* assign a document to a specific individual. "Steven, deal with this component, thanks". Also, assignment rules for automation.
* Send emails from lateralDB to anyone with attached data
* Print documents (please don't waste paper!)
* Every page is a permalink, that means you can just copy the url and send it to your collegues, and they will land to the same page
* Calendar
* Report builder and report scheduling
* ToDo (with date and priority), calendar
* Integrated chat
* Gamification for increased productivity (points for work, scoreboards, social posts integrated within the platform)
* Dashboard with charts
* Webforms (created shared forms that can be accessed by any user)
* Slack-compatible

## Security:

* Complete user role management, preconfigured. Example:
  * User can add new component request, Electronic engineer can create the component, but only head librarian can verify and approve
* Tracking of modifications, views
* Integration with LDAP, Gsuite, Office365, standard SSO protocols
* Backups
* Deleted documents recovery "nothing is lost forever"
* Brute force login prevention
* Password reset after X days
* password strenght policy rules

## Usability

* Awesome bar: one point of quick access to everywhere
* Help and documentation integrated everywhere
* Keyboard shortcuts
* Barcode reader compatible
* Single-page event-driven app: you don't have to wait for the page to load. Events (notifications, errors, stuff you did) are sent/received seamlessly between frontend and backend. 
* Asyncronous: tasks that take a long time to be executed are done so without blocking the app, and can be scheduled for the night shift

  

## Reliability:

* proven tecnology used by thousands of companies
* Automatic error detection (when something crashesh, a snapshot of the status is taken and the data is send to the admin for debugging)
* Error reporting (when something crashesh, the user can report it manually adding useful contextual information)
* Self resetting system: in cause something crashesh, the system will reboot the software (users will be logge out)

@Vadorequest
Copy link
Author

Thank you very much for your in-depth answer! Very useful!

I have more questions but I'll rather ask them on a Frappe-related forum or so.

@guettli
Copy link

guettli commented Mar 30, 2020

If you compare the django and frappe stackoverflow tag trend, then you can hardly see frappe:

http://sotagtrends.com/?tags=django+frappe

image

@ddavidebor
Copy link

One is a specialized tool, the other is a generic framework. Also, frappe has separate forums from stackoverflow.

@SalahAdDin
Copy link
Contributor

I knew frappe as an alternative to Odoo.

@assem-ch
Copy link

assem-ch commented Apr 4, 2022

Hi guys, I want to mention this repo: django-jet-reboot, where we are trying to support Django jet for the latest version of Django and python: Django 3 and Django 4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants